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

集成PayPal Create Order API遇问题:返回/取消URL及请求ID报错

解决PayPal Orders v2 Create Order API的PAYPAL_REQUEST_ID_REQUIRED错误

问题分析

你遇到的PAYPAL_REQUEST_ID_REQUIRED错误,核心原因是请求缺少PayPal要求的幂等性请求头,和payment_source里的URL配置无关。PayPal Orders v2 API要求所有创建订单的请求必须携带PayPal-Request-Id头,这个值是唯一字符串(比如UUID),用来防止重复创建订单。

修复步骤

1. 添加必填请求头

在API请求中必须携带以下HTTP头:

  • PayPal-Request-Id: 生成一个唯一字符串(建议用UUID),每个请求的该值需唯一
  • Content-Type: application/json(确保请求体为标准JSON格式)

2. 修正请求体格式

你之前的请求体混用了PHP数组语法和JSON语法,正确的JSON请求体如下:

{
  "intent": "CAPTURE",
  "purchase_units": [
    {
      "amount": {
        "currency_code": "USD",
        "value": "100.00"
      }
    }
  ],
  "payment_source": {
    "paypal": {
      "experience_context": {
        "return_url": "你的返回URL",
        "cancel_url": "你的取消URL"
      }
    }
  }
}

3. 验证逻辑匹配需求

你的场景是创建订单引导用户进入结账页,当前配置完全符合要求:experience_context中的return_url和cancel_url就是用来指定用户完成/取消支付后的跳转地址,无需额外支付信息,只要订单金额配置正确即可。

示例请求(cURL)

curl -v POST https://api-m.sandbox.paypal.com/v2/checkout/orders \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer 你的访问令牌" \
  -H "PayPal-Request-Id: 5f8a7d6c-4b3a-2s1d-0f9e-8g7h6j5k4l3m" \
  -d '{
    "intent": "CAPTURE",
    "purchase_units": [
      {
        "amount": {
          "currency_code": "USD",
          "value": "100.00"
        }
      }
    ],
    "payment_source": {
      "paypal": {
        "experience_context": {
          "return_url": "https://yourdomain.com/return",
          "cancel_url": "https://yourdomain.com/cancel"
        }
      }
    }
  }'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 18:46:43