0

根据我所理解的文档,当我们从托管中释放资金时,如果我们设置了一个 webhook 子商户有任何问题,Disbursement Exception那么它将通知我们。Braintree 将使用请求参数访问我们在控制面板中配置的端点 url,我想查找引发了哪些交易和子商户问题。从这个文档中可以清楚地看到他们将在请求参数中发送的交易ID,但在文档中的任何地方都没有明确给出关于子商家的详细信息。

我什至尝试了sample payload,payload 不反映实际的请求参数。为了了解自己在发生时 Braintree 将发送哪些参数,我使用 asDisbursement Exception在沙箱中创建了一个子商户,之后我创建了一些销售交易,其中资金必须从托管中释放以新创建子商户。从两天开始,我一直在等待 Braintree 将点击我在控制面板中配置的端点 url,当它尝试向子商户释放资金时,但 Braintee 从未点击过端点 url,并且托管状态仍然是.PHP SDKdestinationBraintree_Test_MerchantAccount::$bankRejectedUpdateFundingInformationRelease Pending

我的问题简而言之:当braintree webhook命中端点url时,如何知道发生了哪个子商户支付异常?

4

1 回答 1

0

全面披露:我在布伦特里工作。如果您还有其他问题,请随时联系支持人员

在支付异常的情况下,生成的 webhook 有效负载仍将包含一个disbursement对象。支付对象会有一个merchantAccount参数,其中包含支付失败id的子商户账户信息,包括子商户的商户ID。 这是 Braintree 开发文档中的相关页面

在代码中,如下所示:一旦您解析了 webhook 通知并确认它$webhookNotification->kindBraintree_WebhookNotification::DISBURSEMENT_EXCEPTION,那么您可以使用

$webhookNotification->disbursement->merchantAccount->id

得到身份证。在支付对象上,您还可以使用 获取失败的原因,使用 获取exceptionMessage失败支付中的交易列表transactionIds,以及使用 建议的下一步操作followUpAction

如果您使用的是最新版本的 Braintree PHP SDK(当前为 3.22.0),那么在示例通知中,$webhookNotification->disbursement->merchantAccount->id将设置为“merchant_account_token”。

于 2017-03-15T20:06:23.577 回答