.NET Core 6调用Braintree沙箱接口 有效API密钥仍报认证异常
Braintree沙箱对接认证异常修复方案
问题描述
对接Braintree沙箱环境时,使用后台生成的沙箱API密钥调用接口,持续抛出Braintree.Exceptions.AuthenticationException认证异常,相关业务代码如下:
public Customer CreateCustomer(User user) { var request = new CustomerRequest { FirstName = user.Firstname, LastName = user.Lastname, Email = user.Email }; try{ var gateway = new BraintreeGateway { Environment = Braintree.Environment.SANDBOX, MerchantId = "rmzzy8txvc2w35pg", PublicKey = "wqgg52tmkhsfmn9t", PrivateKey = "86ab47514a195d393db6d1b12350facf" }; Braintree.Result<Customer> result = gateway.Customer.Create(request); return result.Target; }catch(Exception ex){ Console.WriteLine(ex.Message); return null!; } }
捕获的异常信息:
Exception of type 'Braintree.Exceptions.AuthenticationException' was thrown.
异常堆栈显示实际报错触发位置为FindCustomer方法调用客户查询接口的逻辑,而非贴出的CreateCustomer方法。
排查修复步骤
按优先级逐一排查以下问题:
- 全局校验所有网关初始化配置
异常实际出在FindCustomer方法,说明项目中存在多处BraintreeGateway初始化逻辑,不要仅检查CreateCustomer方法内的配置,全局搜索所有new BraintreeGateway的代码块,确认每一处的环境、MerchantId、公钥、私钥配置完全一致,没有错填生产凭据、漏填参数、密钥前后带空格/不可见字符的问题。 - 校验凭据匹配性
三个认证参数必须属于同一套沙箱凭据,禁止跨沙箱账号混用公钥、私钥、MerchantId;如果是刚生成的新密钥,等待2-3分钟待凭据生效后再测试,刚生成的密钥存在秒级延迟。 - 升级.NET SDK版本
版本号低于5.12.0的Braintree .NET SDK对沙箱强制TLS 1.2+的要求适配存在缺陷,会直接触发认证失败,通过NuGet升级SDK到最新稳定版即可:Install-Package Braintree - 不要混用客户端凭据
ClientId/ClientSecret是给前端Drop-in、客户端令牌化SDK使用的凭据,不能用于服务端网关初始化,服务端调用必须使用MerchantId+公钥+私钥的组合。 - 排查网络拦截
本地开启的代理、抓包工具(Fiddler、Charles等)会篡改请求签名导致认证失败,测试时完全退出这类工具;同时确认本地网络没有拦截Braintree沙箱域名的请求。
验证方式
完成上述排查后,可先在初始化网关后调用无业务参数的基础接口测试连通性,确认认证通过后再接入业务逻辑。
内容的提问来源于stack exchange,提问作者bardhyl sllamniku
相关产品推荐
相关产品推荐

