stripe-payments - Stripe Payment Intents 和 charge.succeeded webhook 有时不会触发
问题描述
capture_method=manual
当用户下订单时,我们会在我们的 iOS/Android 应用程序中创建 PaymentIntents(以防万一)。
charge.succeeded
一旦webhook 触发,我们就会将订单发送到连接的场所。如果这在几分钟内没有发生,我们就已经过期了我们这边的订单。
有趣的是,十分之二的时候我们没有让这个 webhook 被触发。
我想知道听这个 webhook 是否真的是明智的,以便决定我们是否将订单发送到连接帐户的场所,或者是否有更好的方法来确定一旦我们尝试捕获它,付款是否真的有效。
解决方案
Webhook 是获取付款意图状态的推荐方式,但您也可以使用 API 获取其状态。
来自 Stripe文档的引述:
从技术上讲,可以使用轮询而不是 webhook 来监视由异步操作引起的更改——重复检索 PaymentIntent 以便您可以检查其状态——但这明显不太可靠,并且如果大规模使用可能会带来挑战。Stripe 对 API 请求实施速率限制,因此如果您决定使用轮询,请谨慎行事。
在您的情况下,我建议您等待 webhook,然后在几分钟后调用PaymentIntents API或Charges API (如果您尚未收到 webhook)。
推荐阅读
- python - Python 进程启动但并未实际运行目标函数
- amazon-web-services - AWS ECS 服务类型守护程序和约束“每个主机一个任务”之间的区别
- sql - 将内连接查询转换为子查询
- javascript - 基于值格式化单元格
- html - 在悬停时更改 svg 的填充
- sql - 我从 BigQuery 谷歌平台上传的数据集中错误地删除了表中的一些重要行,我该如何恢复表?
- r - 如何在 R 中对数据框的一列进行 grep 并返回多个子集?
- laravel - Centos 8中的Laravel 8错误403禁止
- loops - 在迭代器 inRust 上的嵌套循环
- javascript - 我可以让这个菜单动画更流畅吗?