在Sandbox上使用braintree发送支付请求时,AuthorizationException

本文关键字:请求 AuthorizationException Sandbox braintree | 更新日期: 2023-09-27 18:09:15

无论我做什么,我总是得到相同的AuthorizationException在沙箱上的有效密钥的以下请求:

请求:

{"CreditCard": 
  {
   "CVV":"123",
   "ExpirationMonth":"10",
   "ExpirationYear":"2016",
   "Number":"4111 1111 1111 1111"
  },
 "Amount":195.000000,
 "OrderId":"bb461ebb-b894-4716-9ea2-7317f9e8c8d9",
 "MerchantAccountId":"xxxxx",
 "TaxAmount":0,
 "Type":{},
 "CustomFields":
  {
    "correlation_id":"bb461ebb-b894-4716-9ea2-7317f9e8c8d9"
  },
 "Options":
  {
    "StoreInVault":true,
    "SubmitForSettlement":true
  },
 "CustomerId":"2012f124-2f00-477f-85fb-f6bc3f5fe275"
}
下面是我用来创建这个请求的代码:
    var request = new TransactionRequest
    {
        OrderId = message.Id.ToString(),
        Amount = message.Amount,
        CustomerId = message.CustomerId.ToString(),
        MerchantAccountId = message.MerchantAccountId,
        Options = new TransactionOptionsRequest
        {
            SubmitForSettlement = message.SubmitForSettlement
        }
    };
    string expirationMonth = message.ExpirationMonth.GetValueOrDefault().ToString(CultureInfo.InvariantCulture);
    string expirationYear = message.ExpirationYear.GetValueOrDefault().ToString(CultureInfo.InvariantCulture);
    request.CreditCard = new TransactionCreditCardRequest
    {
        Token = message.CreditCardId.ToString(),
        CardholderName = message.CardholderName,
        Number = message.CardNumber,
        ExpirationMonth = expirationMonth,
        ExpirationYear = expirationYear,
        CVV = message.CVV
    };
    request.Options.StoreInVault = true;
    var result = _gateway.Transaction.Sale(request);

我错过了什么?

在Sandbox上使用braintree发送支付请求时,AuthorizationException

我在Braintree工作。如果您有任何其他问题,请直接与我们的支持团队联系。

当您试图使用您的用户没有访问权限的商家帐户时,可能会发生此错误。在这种情况下,您传递的商家帐户ID(您在上面X出的)不存在。

查看我们的支持页面,了解有关商家帐户id的更多信息:

商户账号ID

使用Braintree,您可以通过同一个网关帐户处理多个商家帐户。您可以在一个帐户下设置和处理多个地点、多个企业和多种货币。这使得通过统一的报告和访问来跟踪您的所有处理变得容易,甚至可以节省您的资金。

您可以通过以下步骤找到网关帐户中所有商家帐户的值:

  • 登录控制面板
  • 导航到设置->处理
  • 滚动到页面底部,找到标记为Merchant Accounts
  • 的部分

如果我只有一个商家账户,我还需要发送这个值与API请求吗?

不,这是一个可选值,所有API请求都支持它。如果您只有一个商家帐户,则不需要包含此值。如果你有多个商家账户,你可以指定每个API请求应该使用哪个商家账户。如果省略此值,所有请求将自动通过您的默认帐户路由。