在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);
我错过了什么?
我在Braintree工作。如果您有任何其他问题,请直接与我们的支持团队联系。
当您试图使用您的用户没有访问权限的商家帐户时,可能会发生此错误。在这种情况下,您传递的商家帐户ID(您在上面X出的)不存在。
查看我们的支持页面,了解有关商家帐户id的更多信息:
商户账号ID
使用Braintree,您可以通过同一个网关帐户处理多个商家帐户。您可以在一个帐户下设置和处理多个地点、多个企业和多种货币。这使得通过统一的报告和访问来跟踪您的所有处理变得容易,甚至可以节省您的资金。
您可以通过以下步骤找到网关帐户中所有商家帐户的值:
- 登录控制面板
- 导航到设置->处理
- 滚动到页面底部,找到标记为Merchant Accounts
的部分如果我只有一个商家账户,我还需要发送这个值与API请求吗?
不,这是一个可选值,所有API请求都支持它。如果您只有一个商家帐户,则不需要包含此值。如果你有多个商家账户,你可以指定每个API请求应该使用哪个商家账户。如果省略此值,所有请求将自动通过您的默认帐户路由。