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)有效、成功的交易。

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

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

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

亲切的问候,布伦特里

以防万一它有帮助!

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

相关文章:

concurrency - 使用 PayPal : Prevent multiple visitors from buying same ticket 在线订票

paypal - Paypal 定期付款-突然死亡

javascript - 使用 Braintree 插入式 UI 选择定期计费的付款方式 -- 或 : finding the payment method of a paymentMethodNonce

javascript - 在rails内部调用javascript函数hidden_​​field_tag

android - UPI(统一支付接口(interface))集成android

payment-gateway - 自动 BIN 范围更新/检测服务

php - 为 Braintree webhook 构建 PHPUnit 测试时间接修改重载属性

braintree - Braintree 沙盒 API : 'Billing state format is invalid' 上的突然失败请求

php - Braintree - 使用过期的信用卡创建订阅不会导致错误

android - 通过应用内结算获取Google Analytics(分析)税