【问题标题】:Passing Metadata While Generating Stripe Payment Link生成条带支付链接时传递元数据
【发布时间】:2022-12-06 06:53:31
【问题描述】:

我想通过 stripe url 传递一些特定于应用程序的凭据以进行结帐。

我试过类似下面的东西,

  const paymentLink = await stripe.paymentLinks.create({
    line_items: [{price: "price_1XXXXK", quantity: 1}],
    metadata: {
        author_id: "author_id",
        server_id: "server_id",
    },
    
  });

但是在付款选项卡中,元数据仍然是空的。

我只能在生成的支付链接部分看到那些元数据。但是我找不到关于用于在付款响应数据上进行购买的链接的任何关系或参考。

那么有没有更好的方法在创建支付链接时向结帐添加元数据,而不是只为生成的链接添加元数据?

【问题讨论】:

    标签: node.js stripe-payments


    【解决方案1】:

    在创建支付链接时传递 metadata parameter 只会在生成的 Checkout Session 对象上持续存在,并且不是基础支付:

    与此支付链接关联的元数据将自动复制到由此支付链接创建的结帐会话中。

    但是我找不到关于用于在付款响应数据上进行购买的链接的任何关系或参考。

    要将付款意向 object 与作为付款来源的关联付款链接进行核对:

    1. 列出所有结帐会话,传递payment_intent parameter
    2. 在返回的 Checkout Session 对象上扩展 payment_link field

    【讨论】:

    • 那么.. 在链接创建期间是否有其他直接的方式将元数据传递给底层支付?还是手动获取支付链接引用然后再次请求获取支付链接的元数据是唯一的方法?
    • 您不能直接从付款链接中设置付款元数据。您可以为此设置一个 webhook 处理程序:侦听 checkout.session.completed 事件,并使用 Checkout Session 对象中的元数据字段更新关联的 Payment Intent/Charge。
    【解决方案2】:

    Checkout Session 的 Create 方法支持这些参数:

    • payment_intent_data
    • setup_intent_data
    • 订阅数据

    这让您可以将数据传递给底层的 payment_intent/setup_intent/subscription 对象,并且它支持元数据。

    因此,您可以通过这种方式将元数据传递给 PaymentIntent。

    (不会让您将元数据传递给 Charge。)

    见:https://support.stripe.com/questions/using-metadata-with-checkout-sessions

    【讨论】:

      猜你喜欢
      • 2021-11-19
      • 2020-10-08
      • 2023-04-10
      • 2020-09-05
      • 2020-11-18
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多