Exemple #1
0
def payment(request, user=None, access_token=None):
    post_data = request.POST or json.loads(request.body)
    coupon_code = post_data.get("coupon_code")

    # TODO move to its own function or something
    if coupon_code:
        coupon = Coupon.get_by_code(coupon_code)
        if coupon.valid and coupon.stripe_plan_id is None:
            user.make_free_membership()
            return render_to_json({"access_token": access_token}, status=200)

    stripe_token = post_data['tokenId']
    stripe_email = post_data['tokenEmail']
    if user.stripe_customer_id is None:
        success, customer_id_or_message = create_subscription(stripe_token, stripe_email)
        if not success:
            return render_to_json({
                "error": customer_id_or_message
            }, status=400)

        user.update_stripe_customer_id(customer_id_or_message)
    else:
        change_credit_card(user)

    return render_to_json({"access_token": access_token}, status=200)
Exemple #2
0
def coupon(request, coupon_code):
    return render_to_json(
        Coupon.get_by_code(coupon_code).to_json(),
        status=200)