使用paypal-rest-sdk收信用卡款遇PAYEE_ACCOUNT_INVALID错误咨询
解决PayPal REST SDK信用卡收款的PAYEE_ACCOUNT_INVALID错误
问题场景
尝试通过Node.js的paypal-rest-sdk直接使用客户信用卡信息收款,代码如下:
const paymentData = { intent: 'sale', payer: { payment_method: 'credit_card', funding_instruments: [ { credit_card: { number: '****', type: 'visa', expire_month: **, expire_year: ***, cvv2: '***', first_name: 'John', last_name: 'Doe', }, }, ], }, transactions: [ { amount: { total: '10.00', currency: 'USD', }, payee: { merchant_id: 'mymerchantid', }, description: 'Some description', }, ], }; paypal.payment.create(paymentData, ....)
运行时触发PAYEE_ACCOUNT_INVALID错误,需解决沙箱账户设置问题,且无需使用托管UI(因付款通过电话收取)。
解决方案
1. 启用沙箱商家账户的信用卡收款权限
登录PayPal沙箱后台,找到对应merchant_id的商家账户:
- 进入账户设置页面,找到「付款接收」或「商家功能」板块
- 确认「信用卡支付」选项已开启
- 检查账户状态为「正常」,无收款限制
2. 验证merchant_id的正确性
merchant_id必须是沙箱商家类型账户的唯一商户ID,不能使用账户邮箱或个人账户ID- 可在沙箱账户的「账户详情」页面获取该ID
3. 完成沙箱商家账户的基础验证
- 确保账户邮箱已验证(沙箱默认通常已完成,但需确认)
- 部分地区的沙箱商家账户需添加测试银行账户/信用卡完成验证,否则会限制收款权限
关于无托管UI的说明
你使用的直接传入信用卡信息的方式属于直接信用卡集成,沙箱测试阶段只要完成上述设置即可正常测试。但生产环境需确保你的业务符合PCI DSS合规标准,避免直接处理信用卡敏感信息(沙箱测试可暂不考虑此合规要求)。
额外代码提示
初始化paypal-rest-sdk时,必须使用沙箱商家账户的客户端ID和秘钥:
const paypal = require('paypal-rest-sdk'); paypal.configure({ mode: 'sandbox', client_id: '你的沙箱商家客户端ID', client_secret: '你的沙箱商家秘钥' });
内容的提问来源于stack exchange,提问作者Travis Delly
相关产品推荐
相关产品推荐

