【问题标题】:Django - Stripe subscriptionDjango - 条纹订阅
【发布时间】:2018-10-04 16:03:07
【问题描述】:

我有一个视图,它使用 Stripe 收取金额,然后将用户重定向到订阅页面,但如何防止用户直接访问该 url?

充电视图:

def testview(request):

    charge = stripe.Charge.create(
        amount=2000,
        currency="usd",
        source="tok_visa", # obtained with Stripe.js
        description="Charge for jenny.rosen@example.com"
    )

    return render(request, 'test.html')

我的订阅创建视图:

def create_sub(request):
     plan1 = "plan_DiiAhydC7AxqeG"
     plan2 = "plan_DiiAypModfV7VJ"

     plan = request.GET.get('plan')

    if plan == '1':
        active_plan = plan1
    elif plan == '2':
        active_plan = plan2

    sub = stripe.Subscription.create(
        customer=request.user.stripe_id,
        items=[
            {
                "plan": active_plan,
            },
        ]
   )

我的html收费模板:

<form action="/test/create-sub?plan=2" method="POST">
{% csrf_token %}
 <script
    src="https://checkout.stripe.com/checkout.js" class="stripe-button"
    data-key="stripe_api_code"
    data-amount="100000"
    data-name="Bilpard"
    data-description="Paid plan"
    data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
    data-locale="auto">
 </script>
</form>

【问题讨论】:

  • 以下答案是否帮助您解决了问题?如果没有,请对此发表评论以改进它!

标签: python django stripe-payments


【解决方案1】:

testview 视图包装在require_post 装饰器中怎么样?

from django.views.decorators.http import require_POST

@require_POST()
def testview(request):

    charge = stripe.Charge.create(
        amount=2000,
        currency="usd",
        source="tok_visa", # obtained with Stripe.js
        description="Charge for jenny.rosen@example.com"
    )

    return render(request, 'test.html')

这样,只允许 POST 请求访问此视图。

【讨论】:

    猜你喜欢
    • 2020-05-04
    • 2015-11-12
    • 2019-03-31
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多