Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
def go_ad_free_finish(request):
    from website.models import PayPalPayment
    (payment, rec) = PayPalPayment.execute(request)

    if rec.user:
        prof = rec.user.userprofile()

        try:
            # Update the user profile.
            if prof.paid_features == None: prof.paid_features = {}
            prof.paid_features["ad_free_year"] = (payment.id, None)
            prof.save()

        except Exception as e:
            raise ValueError(str(e) + " while processing " + payment.id)

    # Send user back to the start.
    request.session["go-ad-free-payment"] = payment.id
    return HttpResponseRedirect(reverse(go_ad_free_start))
def go_ad_free_finish(request):
    from website.models import PayPalPayment
    (payment, rec) = PayPalPayment.execute(request)

    if rec.user:
        prof = rec.user.userprofile()

        try:
            # Update the user profile.
            if prof.paid_features == None: prof.paid_features = { }
            prof.paid_features["ad_free_year"] = (payment.id, None)
            prof.save()
          
        except Exception as e:
            raise ValueError(str(e) + " while processing " + payment.id)

    # Send user back to the start.
    request.session["go-ad-free-payment"] = payment.id
    return HttpResponseRedirect(reverse(go_ad_free_start))
Exemple #5
0
def go_ad_free_finish(request):
    if request.user.is_anonymous():
        raise ValueError("User got logged out!")

    # Do as much before we destroy state.
    prof = request.user.userprofile()

    from website.models import PayPalPayment
    (payment, rec) = PayPalPayment.execute(request, "ad-free-year $35")
    
    try:
        # Update the user profile.
        if prof.paid_features == None: prof.paid_features = { }
        prof.paid_features["ad_free_year"] = (payment.id, None)
        prof.save()
      
        # Send user back to the start.
        return HttpResponseRedirect(reverse(go_ad_free_start))
     
    except Exception as e:
        raise ValueError(str(e) + " while processing " + payment.id)
Exemple #6
0
def go_ad_free_finish(request):
    if request.user.is_anonymous():
        raise ValueError("User got logged out!")

    # Do as much before we destroy state.
    prof = request.user.userprofile()

    from website.models import PayPalPayment
    (payment, rec) = PayPalPayment.execute(request, "ad-free-year $35")

    try:
        # Update the user profile.
        if prof.paid_features == None: prof.paid_features = {}
        prof.paid_features["ad_free_year"] = (payment.id, None)
        prof.save()

        # Send user back to the start.
        return HttpResponseRedirect(reverse(go_ad_free_start))

    except Exception as e:
        raise ValueError(str(e) + " while processing " + payment.id)
Exemple #7
0
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)