payment - 查看 braintree 事务是否具有成功状态

标签 payment braintree

Braintree 提供了一个 pretty massive list of different statuses到交易。如果不对大量状态列表进行硬编码(将来可能会发生变化),是否有推荐的方法来了解 Braintree::Transaction 是否存在?成功了吗?

最佳答案

我也向 Braintree 支持人员提出了一个类似的问题,即使我决定使用 Stripe,答案可能对其他人也有用(我发现在所有测试之后,stripe 好多了;)。

问题

你好,

只是集成了 Braintree,但找不到我应该如何获得交易确认(意味着它已被正确“收费”)。当我创建一个“transaction.sale”(包括 submitForSettlement)时,我总是得到(沙盒)一个指示状态“已提交结算”的响应,并且直到 Braintree 全局处理它(晚上等),交易才会结算。 ).我也找不到相关的 webhook 来获取付款确认(因为我目前正在使用 PayPal - IPN)。

我何时/如何获得付款确认,以便我可以“交付”购买的商品?通过检查您的文档,就好像您要到第二天才能得到确认……它是如何运作的?

谢谢!

回答

嗨,纳乔,

感谢您的联系!

Braintree 交易会经历几个步骤,其中第二个步骤是提交结算。这意味着钱已经开始从客户账户中移动,并且是交易提交后的即时状态;提交时不可能立即获得“已解决”或“完成”状态。处于这种状态的交易通常会在 24 小时内进入结算,然后结算,但这可能取决于您的处理银行。

从提交结算转移到结算时,交易失败是非常罕见的,因为金额在提交结算之前已经被授权。授权交易意味着资金在客户账户中被搁置一段时间,具体时间取决于付款方式,直到结算为止。我们会立即从处理银行获得关于授权是否成功的响应,您将在 Braintree_Transaction 响应对象中看到。

因此,您通常可以依靠提交结算的状态来反射(reflect)有效、成功的交易。

我们不为交易提供 webhooks - 相反,我们的 API 旨在通过响应对象提供即时反馈。因此,我们只为不是由 API 调用触发的异步事件(例如订阅计费或支付资金)提供 webhook。除了我们的报告系统和全面的搜索调用选项之外,我们鼓励我们的客户利用我们的 API 响应来获得他们需要的任何额外功能。

如果您想提取交易的更新状态,例如确认付款已结算,您可以使用 Transaction.find() API 请求,传入交易 ID 并从响应对象中读取状态。这可以很容易地作为脚本运行,循环访问前几天的交易 ID 并每天更新每个交易的状态。

我希望这能更清楚地解释交易流程并为您提供一些选择!

亲切的问候,布伦特里

以防万一它有帮助!

关于payment - 查看 braintree 事务是否具有成功状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43558587/

相关文章:

curl - Paypal 总额高于我创建的 "fixed_price"(通过 curl)

ios - iPhone购物应用程序中的Apple Tax?

ios - 使用 SwiftUI 的 Braintree Drop-In

php - 在 iOS + php 中使用 braintree 生成客户端 token

javascript - 使用 Braintree 的 Javascript SDK 设置客户支付选项?

iOS - 使用 Paypal iOS SDK 的支付问题

java - 支付宝 android 集成有正确的英文文档吗?

php - 如何使用现有的 customerId 处理 Braintree 付款

javascript - 使用托管字段时如何处理现有客户付款方式?

javascript - Braintree dropin 表单问题 - 未生成随机数字符串