mirror of
https://github.com/samuelclay/NewsBlur.git
synced 2025-08-31 21:41:33 +00:00
Adding Android premium activation and receipt saving. For #1343.
This commit is contained in:
parent
35a781fbc4
commit
d2045b7d06
3 changed files with 48 additions and 4 deletions
|
@ -493,7 +493,7 @@ class Profile(models.Model):
|
|||
|
||||
return ipn[0].payer_email
|
||||
|
||||
def activate_ios_premium(self, product_identifier, transaction_identifier, amount=36):
|
||||
def activate_ios_premium(self, transaction_identifier=None, amount=36):
|
||||
payments = PaymentHistory.objects.filter(user=self.user,
|
||||
payment_identifier=transaction_identifier,
|
||||
payment_date__gte=datetime.datetime.now()-datetime.timedelta(days=3))
|
||||
|
@ -513,7 +513,30 @@ class Profile(models.Model):
|
|||
if not self.is_premium:
|
||||
self.activate_premium()
|
||||
|
||||
logging.user(self.user, "~FG~BBNew iOS premium subscription: $%s~FW" % product_identifier)
|
||||
logging.user(self.user, "~FG~BBNew iOS premium subscription: $%s~FW" % amount)
|
||||
return True
|
||||
|
||||
def activate_android_premium(self, order_id=None, amount=36):
|
||||
payments = PaymentHistory.objects.filter(user=self.user,
|
||||
payment_identifier=order_id,
|
||||
payment_date__gte=datetime.datetime.now()-datetime.timedelta(days=3))
|
||||
if len(payments):
|
||||
# Already paid
|
||||
logging.user(self.user, "~FG~BBAlready paid Android premium subscription: $%s~FW" % amount)
|
||||
return False
|
||||
|
||||
PaymentHistory.objects.create(user=self.user,
|
||||
payment_date=datetime.datetime.now(),
|
||||
payment_amount=amount,
|
||||
payment_provider='android-subscription',
|
||||
payment_identifier=order_id)
|
||||
|
||||
self.setup_premium_history()
|
||||
|
||||
if not self.is_premium:
|
||||
self.activate_premium()
|
||||
|
||||
logging.user(self.user, "~FG~BBNew Android premium subscription: $%s~FW" % amount)
|
||||
return True
|
||||
|
||||
@classmethod
|
||||
|
|
|
@ -22,6 +22,7 @@ urlpatterns = patterns('',
|
|||
url(r'^never_expire_premium/?', views.never_expire_premium, name='profile-never-expire-premium'),
|
||||
url(r'^upgrade_premium/?', views.upgrade_premium, name='profile-upgrade-premium'),
|
||||
url(r'^save_ios_receipt/?', views.save_ios_receipt, name='save-ios-receipt'),
|
||||
url(r'^save_android_receipt/?', views.save_android_receipt, name='save-android-receipt'),
|
||||
url(r'^update_payment_history/?', views.update_payment_history, name='profile-update-payment-history'),
|
||||
url(r'^delete_account/?', views.delete_account, name='profile-delete-account'),
|
||||
url(r'^forgot_password_return/?', views.forgot_password_return, name='profile-forgot-password-return'),
|
||||
|
|
|
@ -334,7 +334,7 @@ def save_ios_receipt(request):
|
|||
|
||||
logging.user(request, "~BM~FBSaving iOS Receipt: %s %s" % (product_identifier, transaction_identifier))
|
||||
|
||||
paid = request.user.profile.activate_ios_premium(product_identifier, transaction_identifier)
|
||||
paid = request.user.profile.activate_ios_premium(transaction_identifier)
|
||||
if paid:
|
||||
logging.user(request, "~BM~FBSending iOS Receipt email: %s %s" % (product_identifier, transaction_identifier))
|
||||
subject = "iOS Premium: %s (%s)" % (request.user.profile, product_identifier)
|
||||
|
@ -346,6 +346,26 @@ def save_ios_receipt(request):
|
|||
|
||||
return request.user.profile
|
||||
|
||||
@ajax_login_required
|
||||
@json.json_view
|
||||
def save_android_receipt(request):
|
||||
order_id = request.POST.get('order_id')
|
||||
product_id = request.POST.get('product_id')
|
||||
|
||||
logging.user(request, "~BM~FBSaving Android Receipt: %s %s" % (product_id, order_id))
|
||||
|
||||
paid = request.user.profile.activate_android_premium(order_id)
|
||||
if paid:
|
||||
logging.user(request, "~BM~FBSending Android Receipt email: %s %s" % (product_id, order_id))
|
||||
subject = "Android Premium: %s (%s)" % (request.user.profile, product_identifier)
|
||||
message = """User: %s (%s) -- Email: %s, product: %s, order: %s, receipt: %s""" % (request.user.username, request.user.pk, request.user.email, product_id, order_id, receipt)
|
||||
mail_admins(subject, message, fail_silently=True)
|
||||
else:
|
||||
logging.user(request, "~BM~FBNot sending Android Receipt email, already paid: %s %s" % (product_id, order_id))
|
||||
|
||||
|
||||
return request.user.profile
|
||||
|
||||
@login_required
|
||||
def stripe_form(request):
|
||||
user = request.user
|
||||
|
|
Loading…
Add table
Reference in a new issue