Python + Stripe.js付款集成导致错误的payment_page ID无效

时间:2019-03-10 13:08:08

标签: stripe-payments

我正在尝试使用Stripe Checkout将付款集成到我的Web应用程序中。我遵循了their website上的指南,当我致电stripe.checkout.Session.create时,它会将我重定向到付款页面https://checkout.stripe.com/pay/xxx,但是从不加载。我已经使用Chrome的F12阅读了网络请求,并且正在获取此信息。

  

{错误:{消息:“无效的付款页面ID:test123”,键入:“ invalid_request_error”}}

Stripe文档指出,重定向到结帐时必须包含id。然后,我只是设置了一个名为"test123"的临时字符串,但这似乎不是一个有效的字符串。我怎么从这里继续?

我当前的代码(Python)

stripe.api_key = "sk_test_xxxxxxxxxxxxxx"
stripe.api_version = "2018-11-08; checkout_sessions_beta=v1"

stripe.checkout.Session.create(
  success_url="https://mypage.com/success",
  cancel_url="https://mypage.com/cancel",
  payment_method_types=["card"],
   client_reference_id="test123", #not sure if this one is needed
  line_items=[
    {
      "amount": 2000,
      "quantity": 2,
      "name": "Blue banana",
      "currency": "usd",
    }
  ]
)

我的html页面上的js代码

<script src="https://js.stripe.com/v3/"></script>
<script>
var stripe = Stripe(
  'pk_test_xxxxxxxxxxxx',
  {
    betas: ['checkout_beta_4']
  }
);
</script>

<script>
stripe.redirectToCheckout({
  sessionId: "test123",
}).then(function (result) {
  // Diplay result.error.message to your customer
});
</script>

无限加载循环的屏幕快照,我在network标签中发现了错误。 enter image description here

编辑:我还注意到,当以下脚本位于HTML中时,它将立即将用户重定向到Stripe检出。我该如何阻止它执行此操作,而仅在按下“提交/付款”按钮时发生。

编辑2 我发现对于上层编辑,我需要创建一个事件处理程序/侦听器。我将自己进行研究,尽管非常感谢,但无需回答这一部分。

<script>
    stripe.redirectToCheckout({
      sessionId: "test123",
    }).then(function (result) {
      // Diplay result.error.message to your customer
    });
    </script>

1 个答案:

答案 0 :(得分:0)

payment = stripe.checkout.Session.create(
  success_url="https://mypage.com/success",
  cancel_url="https://mypage.com/cancel",
  payment_method_types=["card"],
  line_items=[
    {
      "amount": 2000,
      "quantity": 2,
      "name": "Blue banana",
      "currency": "usd",
    }
  ]
)   
context = payment.id

Printing(payment.id)从条带返回响应ID。我保存了此变量,并将其添加为上下文,以用作HTML中的变量。页面现已完全加载。