我如何知道用户使用Stripe的Checkout.js选择的计划?

时间:2015-09-22 11:29:43

标签: django stripe-payments checkout

我使用订阅按钮列出了我们所有的计划,如下所示(django模板语法):

class SubscribePageView(generic.TemplateView):
  def post(self, request, *args, **kwargs):
    stripe.api_key = settings.STRIPE_SECRET_KEY
    user = self.request.user
    token = request.POST.get('stripeToken')

    customer = stripe.Customer.create(
      source=token,
      plan=[[WHERE DOES THIS COME FROM??]],
      email=user.email,
    )
    user.customer_id = customer.id
    user.save()

然后我创建客户/订阅以响应此表单的POST:

/*** load the router ***/
$registry->router = new router($registry);

但是在那时我没有计划ID传回Stripe。 :/

我这样做有各种错误吗?

1 个答案:

答案 0 :(得分:5)

所有Stripe结帐脚本都会将令牌插入表单中的隐藏字段,然后将整个表单提交到您的服务器。如果您需要任何其他信息,例如计划,您也应该在表单中包含该信息:

<form method="POST" action=".">
    {% csrf_token %}
    <input type="hidden" name="plan" value="{{ plan.id }}">
    <script....>
</form>

现在,您可以通过request.POST['plan']访问该计划。