订阅接口返回 userErrors 为空怎么定位
现象#
调用 appSubscriptionCreate 返回 200,但 appSubscription 是 null,只有 userErrors 里一条与 returnUrl 相关的报错,商家看不到确认页。
原因#
- returnUrl 必须是公网 https,localhost 或内网地址会被直接拒绝
- lineItems 结构不对,比如缺 appRecurringPricingDetails 或金额为负
- 店铺已有生效订阅,replacementBehavior 默认值与现有计划冲突
- 拿到 confirmationUrl 却没有跳转,商家未批准,订阅始终不激活
处理步骤#
- 打印完整的
userErrors { field message },按 field 定位参数 - 把 returnUrl 换成公网
https://{domain}/billing/confirm - 用最小 lineItems 重试,只留一个
appRecurringPricingDetails - 先查
activeSubscriptions,再决定要不要替换 - 把
confirmationUrl返回给前端并立即跳转
验收标准#
mutation 返回非空 confirmationUrl,跳转确认后 activeSubscriptions 出现该计划。
本文由 风格技术 技术团队整理,适用于 Shopify 标准版与 Plus 店铺。Shopify 平台能力迭代较快,具体操作路径与字段以官方文档和店铺后台实际版本为准。