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

PayPal订阅创建后webhook回调数据缺少custom_id如何解决

问题根因

你提交的订阅创建请求参数结构错误:custom_id 是PayPal订阅创建接口的顶级请求参数,和 plan_id、start_time 平级,你错误将该字段放到了 shipping_amount 内部。而 shipping_amount 仅支持 currency_code、value 两个合法字段,PayPal会直接忽略该字段下的非法参数,因此你传递的custom_id没有被存储,自然不会在webhook回调中返回。

修复方案

调整你请求的JSON结构,将custom_id移到顶级参数位置即可,修正后的请求体示例如下:

// 仅展示调整后的CURLOPT_POSTFIELDS部分,其余代码保持不变
curl_setopt($ch, CURLOPT_POSTFIELDS, '{
  "plan_id": "P-97A61885CU957844JMFV",
  "start_time": "2021-10-19T00:00:00Z",
  "custom_id": "xxxxdxxx",
  "shipping_amount": {
    "currency_code": "USD",
    "value": "10.00"
  },
  "subscriber": {
    "name": {
      "given_name": "John",
      "surname": "Doe"
    },
    "email_address": "customer@example.com",
    "shipping_address": {
      "name": {
        "full_name": "John Doe"
      },
      "address": {
        "address_line_1": "2211 N First Street",
        "address_line_2": "Building 17",
        "admin_area_2": "San Jose",
        "admin_area_1": "CA",
        "postal_code": "95131",
        "country_code": "US"
      }
    }
  },
  "application_context": {
    "brand_name": "SAMPLEBRAND",
    "locale": "en-US",
    "shipping_preference": "SET_PROVIDED_ADDRESS",
    "user_action": "SUBSCRIBE_NOW",
    "payment_method": {
      "payer_selected": "PAYPAL",
      "payee_preferred": "IMMEDIATE_PAYMENT_REQUIRED"
    },
    "return_url": "https://sample.com/webhook_paypal.php",
    "cancel_url": "https://sample.com/webhook_paypal.php"
  }
}');

注意事项

  • 调整参数后发起请求,后续所有和该订阅相关的webhook回调(包括订阅创建、扣款成功、订阅状态变更等事件)的resource字段下,都会携带你传入的custom_id
  • custom_id最大支持127个字符,超出长度会被截断或导致请求报错
  • 你可以在订阅创建成功后,直接调用订阅查询接口提前验证custom_id是否被正确存储,无需等待webhook触发

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:57:03