将元数据附加到 Stripe 支付链接

是否可以将元数据附加到 Stripe 支付链接(指向 Stripe 进行支付)?

我已经设置了一个 Stripe 支付的基本链接,并在我的网站上有一个支付链接。

我希望实现的是将渲染的胡子模板附加到该链接一些额外的参数/查询数据,这将充当元数据集。

即: <a href="www.stripe.com/tk_live_foobarlinktopayment?userid={{user._id}}"> <button>Pay Now</button></a> ...

我希望通过此元数据链接谁的帐户正在付款。

stack overflow Attaching metadata to Stripe Payment Link
原文答案

答案:

作者头像

我用支付链接解决这个问题的方法——我为每次购买生成一个唯一的支付链接,并在链接创建时添加元数据(在我的例子中是 order_id)。这样它就会传播到 webhook。

创建支付链接 cURL 示例:

curl https://api.stripe.com/v1/payment_links 
  -u sk_test_51INcGzGixr<..>  
  -d "line_items[0][price]"=price_1KPia<..> 
  -d "line_items[0][quantity]"=1 
  -d "metadata[order_id]"=6735

这涉及的代码比您对 Payment Links 的预期要多一些,但在实施方面肯定比 Checkout 更轻。

另外,不要忘记之后清理付款链接:

curl https://api.stripe.com/v1/payment_links/plink_1KPoiiGixr8beE1DMeFarexg 
  -u sk_test_51INcGzGixr<..> 
  -d active=false
作者头像

我设法使用 checkout.sessions.create 发布到后端端点。

这会创建一个支付尝试,将您定向到条带支付 UI。

此有效负载示例是传递给 Stripe API 的内容,虽然我使用的是 node-red 和 Stripe 支付节点,但您应该能够在其他地方执行此概念。

msg.payload = {

     payment_intent_data: {    
         metadata : {
            "user_id": msg.user._id,
            "email" : msg.user.user,
         },  
     },
     payment_method_types : ['card'],
     mode: 'payment',
     success_url: 'https://somesite.com/payment_success',
     cancel_url: 'https://somesite.com/payment_cancel',

     line_items : [
         {
             quantity : 1,
             price_data : {
                 currency: 'usd',
                 product_data: {
                     name: 'Some Product'
                 },
                 unit_amount: 1200
             }
         }
     ]
}
作者头像

您现在可以直接在 Stripe Payment Link URL 中添加一些信息。

您可以设置:

  • client_reference_id(您的参考),
  • prefilled_email(在支付链接中预填邮箱),
  • prefilled_promo_code(预填促销代码)。

文档: https://stripe.com/docs/payments/payment-links#url-parameters