如何在PayPal Express Checkout沙箱配置客户端ID及授权密钥?
解决PayPal Braintree集成的密钥配置与沙箱问题
一、给代码添加生产环境授权密钥
直接修改你提供的代码,把client对象里的production字段替换成你的实际生产授权密钥即可。另外要注意,当切换到生产环境时,记得把env的值从sandbox改成production:
<script> // Render the PayPal button paypal.Button.render({ // Pass in the Braintree SDK braintree: braintree, // Pass in your Braintree authorization key client: { sandbox: paypal.request.get('/demo/checkout/api/braintree/client-token/'), production: '你的生产环境Braintree授权密钥' // 替换为你的实际生产密钥 }, // Set your environment env: 'sandbox', // 生产环境请改为 'production' // Wait for the PayPal button to be clicked payment: function(data, actions) { // Make a call to create the payment return actions.payment.create({ payment: { transactions: [ { amount: { total: '10', currency: 'USD' } } ] } }); }, // Wait for the payment to be authorized by the customer onAuthorize: function(data, actions) { return actions.payment.tokenize().then(function(data) { console.log('Braintree nonce:', data.nonce); }); } }, '#paypal-button-container'); </script>
二、从PayPal沙箱获取客户端ID与授权密钥的正确步骤
你提到输入沙箱密钥后出现错误,大概率是混淆了静态密钥和动态客户端令牌,或者获取步骤有误。以下是正确的操作流程:
- 登录你的PayPal开发者账号,进入开发者仪表盘
- 在左侧菜单选择「我的应用和凭据」(My Apps & Credentials)
- 切换到**沙箱(Sandbox)**标签页,找到你创建的沙箱应用(如果没有,点击「创建应用」生成一个)
- 展开该应用的详情面板,你会看到两个关键信息:
- 客户端ID(Client ID):沙箱环境的客户端标识
- 密钥(Secret):沙箱环境的授权密钥(注意:这个密钥是后端用的,绝对不能直接暴露在前端代码里!)
关键注意点:
你代码里的sandbox字段是通过paypal.request.get调用后端接口获取动态Braintree客户端令牌,而不是直接填静态的PayPal Client ID。后端需要用沙箱的Secret去调用Braintree的API生成这个动态令牌,前端再请求这个令牌来完成授权。如果直接把静态的Client ID或Secret填在这里,必然会报错。
三、你遇到报错的常见排查方向
针对你输入沙箱密钥后出错的情况,建议从这几个方面检查:
- 令牌类型错误:不要把静态的Client ID/Secret直接替换
paypal.request.get的接口请求,必须由后端生成动态的Braintree客户端令牌返回给前端 - 环境不匹配:确保
env设置为sandbox时,后端生成的是沙箱环境的令牌;如果用生产密钥,env要改成production - 应用权限问题:检查你的沙箱应用是否已经启用了Braintree集成功能,在应用设置里确认相关权限已开启
- 密钥复制错误:检查你复制的密钥是否完整,有没有多余的空格、换行符,确保复制的是沙箱标签下的对应密钥
内容的提问来源于stack exchange,提问作者Sushnat Kasaudhan




