繁体   English   中英

如何确定是否已从Stripe操作或用户操作中调用Stripe Webhook'invoice.payment_failed'?

[英]How to determine whether Stripe webhook 'invoice.payment_failed' has been called from Stripe action or user action?

我对的条纹事件网络挂接invoice.payment_failed 每当发票的客户付款失败时,都会触发此Webhook。

例如,如果用户资金不足,则可以每月多次调用Webhook。

我的应用程序允许用户登录其帐户,并在该月尝试付款失败的情况下尝试手动付款。 它通过以下调用启动:

stripe.invoices.pay(invoiceId);

文件: https//stripe.com/docs/api/invoices/pay

上面的方法还调用了invoice.payment_failed Webhook。 据我所知,无法确定webhook是由Stripe内部操作(如付款重试)还是由手动API操作(如上述我的调用)启动的。

我比较了两种调用类型之间的事件对象,它们是相同的。 还有其他方法可以确定触发网络挂钩的原因吗?

在调用stripe.invoices.pay(invoiceId)之前,您可以在metadata字段中添加一些内容,以便以后可以识别发票: https : stripe.invoices.pay(invoiceId)

解决此问题的一种简单方法是代理由Stripe内部操作启动的Webhook请求。 您可以使用免费的Webhook路由工具(例如Pipedream(或类似工具)),并将字段附加到请求中。

首先,创建一个端点来代理Webhook

其次,处理事件:

{
      "id": "in_1DGXg2BSZsoltGfCP90zepqA",
      "object": "invoice",
      "account_country": "US",
      "account_name": null,
      "amount_due": 999,
.... 

第三,添加标识符Stripe内部动作:

$event.body.identifier = 'internal_action'

然后将数据路由到应用程序中的端点。

这是运行此过程的示例管道-https: //urlzs.com/nGd1a

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM