【问题标题】:Stripe Checkout- How to pass a value through to webhook?Stripe Checkout - 如何将值传递给 webhook?
【发布时间】:2016-10-14 09:27:12
【问题描述】:

如何将自定义值(在本例中为来自 Firebase 的用户 ID)传递到 Stripe webhook?

我正在尝试将 charge.succeeded 事件与用户 ID 相关联,以便我可以将值从节点服务器写入数据库并更改用户在站点上的路由。

这是可行的还是有更好的方法来做到这一点?

  <form action="/charge" method="POST">
    <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
      data-key="pk_"
      data-amount="3495"
      data-zip-code="true"
      metadata="test metadata test"
      data-description="Download and save your document"
      data-locale="auto">
    </script>
  </form>

【问题讨论】:

  • 将元数据放在表单的隐藏字段中,然后在创建费用的服务器脚本中使用。
  • 请记住,Checkout 本身并不会实际产生费用。它只是将 CC# 转换为令牌,然后您可以在服务器脚本中使用它来创建客户并收费。

标签: javascript stripe-payments webhooks


【解决方案1】:

在构建费用 [2] 时创建元数据 [1] 字段。当您收到charge.succeeded-event 时,它应该在 Charge 对象上。

如果您要从结帐中接受此值,则需要将另一个字段与要提交的表单一起传递,然后使用它来构建元数据。我在下面提供了一个示例,说明如何将附加字段与结帐提交的表单一起传递:

<form action="/charge" method="POST">

    <script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
      data-key="pk_"
      data-amount="3495"
      data-zip-code="true"
      metadata="test metadata test"
      data-description="Download and save your document"
      data-locale="auto">
    </script>

    <!-- THE STUFF YOU'RE MISSING IS BELOW -->

    <input type="text" name="extra-field"></input>

</form>

但请记住,您需要在后端实际发出 Create a Charge [2] API 请求才能进行收费。这就是向用户显示的内容。

这有意义吗?


[1]https://stripe.com/docs/api#metadata

[2]https://stripe.com/docs/api#create_charge

【讨论】:

    猜你喜欢
    • 2022-08-23
    • 2021-11-08
    • 2018-05-12
    • 2021-01-24
    • 2019-08-31
    • 1970-01-01
    • 2021-07-14
    • 2014-03-09
    • 1970-01-01
    相关资源
    最近更新 更多