.NET Braintree:按结算收费发送的交易从未结算

.NET Braintree : Transactions sent as charged for settlement never settled

我正在将 Braintree 支付选项集成到当前处于沙盒中的站点中。设置很简单,文档帮助很大,但我对一件事感到困惑。

当我提交交易作为结算时,它会处理交易并显示在控制面板的交易中,但从未结算。我想知道如何确定客户是否已付费,以便我可以提供他要求的服务。

如果金额没有结算,而我已经交付了产品,那么这对我的客户来说将是一个问题。

所有的交易都是这样显示的,包括paypal的。 请参阅随附的屏幕截图。

我使用的代码:

    var request = new TransactionRequest
                {
                    Amount = 33.22,
                    PaymentMethodNonce = nonce,
                    OrderId = CustomerOrderId,
                    Options = new TransactionOptionsRequest
                    {
                        SubmitForSettlement = true
                    }
                };

通常BrainTree会在一个时间段内(可能需要一天)结算所有交易。

submitted_for_settlement: 这意味着一笔交易已经完成,但不会在交易发生时立即结算。

真正的结算发生在支付下,每天运行,他们将在这里支付所有在submitted_for_settlement[=43=中的交易] 状态和仅在此过程中

我建议您将 Disbursement Webhook 添加到您的应用程序中,这有助于您从 braintree 获取支付的所有详细信息。

不要忘记保存 支付 ID 值,您只能从 支付 webhook 获得该值。我们在他们的控制台中看不到支付 ID。

使用支付 ID - 此 ID 将出现在买家 CC Billing

要实现这一点,请遵循此文档。

  1. https://developers.braintreepayments.com/reference/general/webhooks/disbursement/dotnet

  2. https://developers.braintreepayments.com/guides/webhooks/parse/dotnet