Stripe测试环境存在活跃订阅 调用GET /v1/subscriptions接口返回空数据
排查解决步骤
- 确认环境变量读取正确:直接输出
env('STRIPE_SECRET')的返回值,和Stripe后台测试环境密钥逐位比对,确认没有空格、字符错漏。如果你使用的是Laravel类框架,先执行php artisan config:clear清除配置缓存,避免配置缓存导致env()函数读取到旧值或者空值。 - 排查Connect平台归属问题:如果你的Stripe账户是Connect平台方,你在后台看到的订阅属于关联的子商户账户,调用接口时需要额外传入
stripe_account参数指定对应的子商户ID,示例代码如下:
// 拉取订阅列表 $list = $stripe->subscriptions->all([], ['stripe_account' => 'acct_你的子商户ID']); // 拉取单个订阅 $stripe->subscriptions->retrieve('sub_你的订阅ID', [], ['stripe_account' => 'acct_你的子商户ID']);
- 确认模式匹配:Stripe后台右上角可切换测试/生产模式,你复制的订阅ID必须和当前密钥的模式完全对应,测试密钥无法查询生产模式下创建的订阅,反之同理。
- 确认API版本兼容:如果你的Stripe PHP SDK版本和后台设置的API版本差异过大,也可能出现查询异常,你可以在初始化客户端时手动指定和后台一致的API版本:
$stripe = new \Stripe\StripeClient([ 'api_key' => env('STRIPE_SECRET'), 'stripe_version' => '2024-06-20' // 替换为你Stripe后台显示的API版本号 ]);
内容的提问来源于stack exchange,提问作者Linesofcode
相关产品推荐
相关产品推荐

