使用PayPal REST API创建订阅后状态显示EXPIRED的原因咨询
PayPal订阅创建后状态显示EXPIRED的问题排查
我正在使用PayPal REST API创建订阅,用沙箱账户完成支付后,网站查询该订阅状态为EXPIRED。开发者测试工具收到两条通知:一条是支付已收到,另一条是配置文件已取消。其他订阅均正常工作,支付也能成功,仅该订阅出现状态异常。
用于创建定价计划的PHP代码如下:
$request_body = [ "product_id" => 'PROD-61H55966BE620723A, "name" => "SIMPLE PLAN, "billing_cycles" => [[ "tenure_type" => 'REGULAR', "sequence" => 1, "frequency" => [ "interval_unit" => 'YEAR', "interval_count"=> 1 ], "pricing_scheme" => [ "fixed_price" => [ "value" => 199, "currency_code" => 'USD' ] ], ]], "payment_preferences" => [ "auto_bill_outstanding" => true, "setup_fee_failure_action" => "CONTINUE", "payment_failure_threshold" => 2 ] ]; $args = [ 'method' => 'POST', 'headers' => [ 'Content-Type' => "application/json", 'Authorization'=> 'Bearer ' . $this->access_token, ], 'body' => json_encode($request_body), ];
附相关截图:

可能的原因分析
- 代码语法错误:代码中
product_id和name字段的字符串引号未闭合,会导致json_encode失败,创建出的定价计划存在异常,进而引发订阅状态错误。 - 订阅周期配置问题:仅设置了一个
REGULAR类型的年度计费周期,若订阅创建后未正确触发后续周期的计费逻辑,可能导致首次支付后订阅被标记为过期。 - 沙箱环境特殊逻辑:沙箱测试账户可能触发了自动取消规则,或是webhook通知存在延迟/异常,导致订阅状态被错误更新。
- 支付偏好配置冲突:
payment_preferences中的参数组合在沙箱环境下触发了未预期的取消逻辑,比如自动扣费规则与失败阈值的交互异常。
内容的提问来源于stack exchange,提问作者Tick Twitch
相关产品推荐
相关产品推荐

