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

订单捕获COMPLETED但PayPal支付状态PENDING(unilateral)问题排查

解决PayPal沙盒中捕获订单后资金Pending且商家账户未收到的问题

看起来你遇到的是沙盒环境下常见的资金流转验证问题,我来帮你一步步排查和解决:

1. 核心问题定位

你提到订单捕获状态显示COMPLETED但具体的capture状态是PENDING,客户账户显示“等待卖家认领”,但商家沙盒账户无记录——这大概率是商家沙盒账户未完成必要的身份/邮箱验证,导致PayPal暂时冻结资金,等待账户验证完成后再释放。

2. 具体排查步骤

(1)检查商家沙盒账户的验证状态

登录你通过PayPal Connect关联的商家沙盒账户(不是你的开发者平台账户),完成以下操作:

  • 确认账户邮箱已验证:在账户设置里查看邮箱状态,若未验证,点击发送验证邮件并完成确认。
  • 补充必要的账户信息:沙盒商家账户需要填写基本的身份信息(模拟真实场景的KYC要求),否则会限制资金接收。

(2)验证PayPal Connect的授权权限

确保你在获取商家AccessToken时,请求了足够的操作权限:

  • 授权时的scope参数必须包含payment:write和payment:read,这样你才能代表商家创建并捕获订单。
  • 可以通过调用/v1/identity/oauth2/userinfo接口,传入商家的AccessToken,返回结果里的scope字段会显示已授权的权限列表,确认是否包含上述两个权限。

(3)核对订单创建时的merchant_id是否正确

有时候会不小心传入错误的商家ID,导致资金流向错误:

  • 同样调用/v1/identity/oauth2/userinfo接口,返回的payer_id就是商家的真实merchant_id,对比你在订单创建请求中payee.merchant_id的值是否一致。

(4)检查沙盒账户的待认领交易

登录商家沙盒账户后,进入“活动”页面,查找是否有状态为“待认领”的交易记录。如果有,手动点击认领(沙盒环境中部分场景需要手动触发,真实环境验证通过后会自动到账)。

3. 代码层面的确认

确保你的后端捕获订单逻辑正确:

  • 如果你是用平台的API密钥创建的PayPal客户端,确认在捕获订单时没有遗漏商家ID的关联(不过你创建订单时已经指定了payee.merchant_id,这一步通常没问题)。
  • 捕获订单的代码示例(确保和你的实现一致):
const request = new paypal.orders.OrdersCaptureRequest(orderId);
request.requestBody({});
try {
  const response = await client.execute(request);
  console.log('捕获响应:', response.result);
} catch (error) {
  console.error('捕获失败:', error);
}

4. 沙盒环境的特殊说明

沙盒环境会模拟真实PayPal的风控和验证流程,未验证的商家账户会触发资金pending状态。完成上述验证步骤后,你可以重新发起测试支付,此时资金应该会正常流入商家沙盒账户。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 11:22:54