def go_ad_free_redirect(request): # create a Payment and redirect to the approval step, and track this if request.user.is_anonymous(): return HttpResponseRedirect(reverse(go_ad_free_start)) if request.user.userprofile().get_membership_subscription_info()['active']: raise ValueError("User already has this feature.") import paypalrestsdk sandbox = "" if paypalrestsdk.api.default().mode == "sandbox": sandbox = "-sandbox" payment = paypalrestsdk.Payment({ "intent": "sale", "payer": { "payment_method": "paypal" }, "transactions": [{ "item_list": { "items": [{ "name": "Ad-Free GovTrack.us for 1 Year", "sku": "govtrack-ad-free-for-year" + sandbox, "price": "35.00", "currency": "USD", "quantity": 1 }] }, "amount": { "total": "35.00", "currency": "USD" }, "description": "Ad-Free%s: GovTrack.us is ad-free for a year while you're logged in." % sandbox }], "redirect_urls": { "return_url": request.build_absolute_uri(reverse(go_ad_free_finish)), "cancel_url": request.build_absolute_uri(reverse(go_ad_free_start)), }, }) if not payment.create(): raise ValueError("Error creating PayPal.Payment: " + repr(payment.error)) request.session["paypal-payment-to-execute"] = payment.id from website.models import PayPalPayment rec = PayPalPayment( paypal_id = payment.id, user = request.user, response_data = payment.to_dict(), notes = "ad-free-year $35") rec.save() for link in payment.links: if link.method == "REDIRECT": return HttpResponseRedirect(link.href) else: raise ValueError("No redirect in PayPal.Payment: " + payment.id)
def go_ad_free_redirect(request): # create a Payment and redirect to the approval step, and track this if request.user.is_anonymous(): return HttpResponseRedirect(reverse(go_ad_free_start)) if request.user.userprofile().get_ad_free_message(): raise ValueError("User already has this feature.") import paypalrestsdk sandbox = "" if paypalrestsdk.api.default().mode == "sandbox": sandbox = "-sandbox" payment = paypalrestsdk.Payment({ "intent": "sale", "payer": { "payment_method": "paypal" }, "transactions": [{ "item_list": { "items": [{ "name": "Ad-Free GovTrack.us for 1 Year", "sku": "govtrack-ad-free-for-year" + sandbox, "price": "2.00", "currency": "USD", "quantity": 1 }] }, "amount": { "total": "2.00", "currency": "USD" }, "description": "Ad-Free%s: GovTrack.us is ad-free for a year while you're logged in." % sandbox }], "redirect_urls": { "return_url": request.build_absolute_uri(reverse(go_ad_free_finish)), "cancel_url": request.build_absolute_uri(reverse(go_ad_free_start)), }, }) if not payment.create(): raise ValueError("Error creating PayPal.Payment: " + repr(payment.error)) request.session["paypal-payment-to-execute"] = payment.id from website.models import PayPalPayment rec = PayPalPayment( paypal_id = payment.id, user = request.user, response_data = payment.to_dict(), notes = "ad-free-year $2") rec.save() for link in payment.links: if link.method == "REDIRECT": return HttpResponseRedirect(link.href) else: raise ValueError("No redirect in PayPal.Payment: " + payment.id)
def go_ad_free_redirect(request): # create a Payment and redirect to the approval step, and track this try: amount = float(request.POST["amount"]) except: return HttpResponseRedirect(reverse(go_ad_free_start)) import paypalrestsdk sandbox = "" if paypalrestsdk.api.default().mode == "sandbox": sandbox = "-sandbox" # slightly different SKU if the user is/isn't logged in if request.user.is_anonymous: item = { "name": "Support GovTrack.us (%.02d)" % amount, "sku": "govtrack-tip" + sandbox, } description = "Thank you for supporting GovTrack.us%s!" % sandbox else: item = { "name": "Ad-Free GovTrack.us for 1 Year (%.02d)" % amount, "sku": "govtrack-ad-free-for-year" + sandbox, } description = "Ad-Free%s: GovTrack.us is ad-free for a year while you're logged in." % sandbox item.update({ "price": "%.02f" % amount, "currency": "USD", "quantity": 1, }) payment = paypalrestsdk.Payment({ "intent": "sale", "payer": { "payment_method": "paypal" }, "transactions": [{ "item_list": { "items": [item] }, "amount": { "total": item["price"], "currency": item["currency"], }, "description": description }], "redirect_urls": { "return_url": request.build_absolute_uri(reverse(go_ad_free_finish)), "cancel_url": request.build_absolute_uri(reverse(go_ad_free_start)), }, }) if not payment.create(): raise ValueError("Error creating PayPal.Payment: " + repr(payment.error)) request.session["paypal-payment-to-execute"] = payment.id from website.models import PayPalPayment rec = PayPalPayment( paypal_id=payment.id, user=request.user if not request.user.is_anonymous else None, response_data=payment.to_dict(), notes=item["name"]) rec.save() for link in payment.links: if link.method == "REDIRECT": return HttpResponseRedirect(link.href) else: raise ValueError("No redirect in PayPal.Payment: " + payment.id)
def go_ad_free_redirect(request): # create a Payment and redirect to the approval step, and track this try: amount = float(request.POST["amount"]) except: return HttpResponseRedirect(reverse(go_ad_free_start)) import paypalrestsdk sandbox = "" if paypalrestsdk.api.default().mode == "sandbox": sandbox = "-sandbox" # slightly different SKU if the user is/isn't logged in if request.user.is_anonymous(): item = { "name": "Support GovTrack.us (%.02d)" % amount, "sku": "govtrack-tip" + sandbox, } description = "Thank you for supporting GovTrack.us%s!" % sandbox else: item = { "name": "Ad-Free GovTrack.us for 1 Year (%.02d)" % amount, "sku": "govtrack-ad-free-for-year" + sandbox, } description = "Ad-Free%s: GovTrack.us is ad-free for a year while you're logged in." % sandbox item.update({ "price": "%.02f" % amount, "currency": "USD", "quantity": 1, }) payment = paypalrestsdk.Payment({ "intent": "sale", "payer": { "payment_method": "paypal" }, "transactions": [{ "item_list": { "items": [item] }, "amount": { "total": item["price"], "currency": item["currency"], }, "description": description }], "redirect_urls": { "return_url": request.build_absolute_uri(reverse(go_ad_free_finish)), "cancel_url": request.build_absolute_uri(reverse(go_ad_free_start)), }, }) if not payment.create(): raise ValueError("Error creating PayPal.Payment: " + repr(payment.error)) request.session["paypal-payment-to-execute"] = payment.id from website.models import PayPalPayment rec = PayPalPayment( paypal_id=payment.id, user=request.user if not request.user.is_anonymous() else None, response_data=payment.to_dict(), notes=item["name"]) rec.save() for link in payment.links: if link.method == "REDIRECT": return HttpResponseRedirect(link.href) else: raise ValueError("No redirect in PayPal.Payment: " + payment.id)