【问题标题】:How to end-to-end test Stripe's new Checkout Sessions如何端到端测试 Stripe 的新 Checkout Sessions
【发布时间】:2020-01-05 19:11:24
【问题描述】:

我正在寻找一种方法来为使用 Stripe 的 new(er) Checkout Sessions 的应用程序设置集成测试。

一般的工作流程是:

  1. 发布/backend/create-session

返回一个checkout session ID

  1. 用户将在 Stripe 的域上完成购买

这是我无法自动化的部分

  1. Stripe 使用会话 ID 重定向回我的网站

发布/backend/fulfill-session-id/$SESSION_ID

我可以为第 1 步设置测试,并检查会话是否已成功创建。

我无法获取给定的会话 ID 并告诉 stripe 假装它已成功支付,这使我无法测试第 3 步

有什么方法可以在不添加浏览器的情况下自动执行第 2 步?

【问题讨论】:

    标签: stripe-payments


    【解决方案1】:

    这里的答案不是测试 Stripe 的系统,而是测试您自己的系统。

    您应该模拟成功和失败状态,而不是在代码中实际重定向到 Stripe Checkout。

    【讨论】:

    • 我同意,但我不想根据产品/订阅的不同组合重新创建 Stripe 的不同可能结果。我宁愿运行端到端测试,让他们管理购买状态。我想确认我正在阅读/更新正确的数据,但必须完成购买才能确认。
    • Stripe Checkout 有 3 种可能的结束状态: 1. 重定向失败,promise 中给出错误 (stripe.com/docs/js/checkout/redirect_to_checkout) 2. 付款成功,用户被重定向到 success_url 3. 付款被取消并且用户被重定向到cancel_url。在这种情况下,您只需要测试 1 中的失败以及 2 和 3 的 URL 是否存在并且可以访问。
    • 如果是你要测试的webhook,你可以用Stripe cli触发checkout.session.completed进行测试:github.com/stripe/stripe-cli
    【解决方案2】:

    stripeCLI 可用于重新发送事件 - https://stripe.com/docs/cli/events/resend

    实现 3 的快速方法是

    1. 手动完成2,注意Stripe events dashboard中的事件ID

    2. 使用 CLI 假装会话支付成功:

      stripe events resend the_event_id

    【讨论】:

      猜你喜欢
      • 2021-02-10
      • 2021-04-02
      • 2020-10-05
      • 1970-01-01
      • 2018-06-26
      • 1970-01-01
      • 2019-02-21
      • 2019-08-31
      • 2014-03-20
      相关资源
      最近更新 更多