You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-paypal-button-v2沙箱模式三大问题:密钥、资金及回调异常

问题解答

1. PAYPAL_CLIENT_SECRET 的配置位置

  • PAYPAL_CLIENT_SECRET 是后端专用凭证,绝对不能放在前端代码或组件配置里。
  • 你需要在自己的服务器端代码中使用它:调用 PayPal REST API(比如创建订单、捕获支付的接口)时,通过 Basic 认证方式传入——用户名填你的 CLIENT_ID,密码填 CLIENT_SECRET。
  • 前端的 react-paypal-button-v2 只需要配置公开的 clientId 就够了,不需要碰密钥。

2. 付款已扣除但未进入收款人余额

  • 沙箱环境下这种情况大概率是收款人沙箱账户没验证:登录 PayPal 沙箱后台,检查你的商家类型沙箱账户是否完成了邮箱验证、基础信息填写。
  • 去沙箱的交易记录里看状态:如果是「Pending」,可能是用了电子支票付款(沙箱可模拟),这类交易需要等模拟清算;如果状态是「Completed」但余额没变化,检查账户有没有被限制或冻结。
  • 还要确认付款是打到了正确的商家沙箱账户,不是测试买家自己的账户。

3. onApprove() 回调未执行

  • 你代码里同时用了 onSuccess 和 onApprove,但在 react-paypal-button-v2 组件中,onSuccess 是封装好的高阶回调,它会在支付审批通过且交易完成后触发——组件内部已经帮你处理了原生 onApprove 的逻辑(比如捕获支付),所以你自己写的 onApprove 不会被调用。
  • 要处理审批后的逻辑,直接把代码移到 onSuccess 里就行,这个回调会返回完整的交易详情和数据,足够满足后续业务需求。
  • 要是你非要用原生的 onApprove,那就别用组件的 onSuccess,改用自定义渲染按钮的方式,手动传入 onApprove 逻辑,但这种情况下你得自己写代码去完成支付捕获的步骤。

内容的提问来源于stack exchange,提问作者osomaher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:33:11