调用App Store Connect API添加内购定价遇UNEXPECTED_ERROR求助
排查App Store Connect API创建内购定价计划时的500服务器错误
以下是针对你的问题的具体排查和修正方案:
1. 修正资源类型不匹配问题
你的请求中存在内购资源类型不一致的冲突:
- 主数据块
data.relationships.inAppPurchase使用的是inAppPurchases类型 - 但
included关联块里用的是inAppPurchasesV2类型
新版App Store Connect API中,内购项目的标准类型是inAppPurchasesV2,请将主数据块中的类型统一修改为inAppPurchasesV2,保持ID一致。
2. 简化请求结构,避免冗余关联
官方文档示例与Swagger定义不一致属于文档滞后问题,实际请求中无需手动生成inAppPurchasePrices的ID并通过included关联。正确的做法是直接在manualPrices的关系中关联价格点和地区,去掉多余的included块。
3. 价格点的正确使用逻辑
- Tier对应的多地区价格点无需全部添加,若需全球统一定价,可采用「基准地区+自动换算」的方式,无需逐个地区配置;
- 确保你使用的价格点ID是从
GET /v1/inAppPurchasePricePoints接口获取的、与当前内购项目匹配的有效ID(你的价格点ID中包含内购ID1640694240,这部分格式是正确的)。
4. 修正后的请求示例
{ "data": { "type": "inAppPurchasePriceSchedules", "relationships": { "inAppPurchaseV2": { "data": { "type": "inAppPurchasesV2", "id": "1640694240" } }, "manualPrices": { "data": [ { "type": "inAppPurchasePrices", "relationships": { "inAppPurchasePricePoint": { "data": { "type": "inAppPurchasePricePoints", "id": "eyJzIjoiMTY0MDY5NDI0MCIsInQiOiJHQlIiLCJwIjoiNiJ9" } }, "territory": { "data": { "type": "territories", "id": "GBR" } } } } ] } } } }
其他排查方向
- 权限验证:确认你的API令牌拥有
inAppPurchases:write权限,且关联的开发者账号对该内购项目有编辑权限; - 内购状态检查:若内购项目已上架,无法直接修改基础定价,需创建定时价格变更计划(设置
startDate为未来时间); - 简化测试:先尝试添加单个地区的价格点(比如美国区
USA),排除批量操作导致的服务器错误; - 苹果支持工单:若以上操作均无效,500错误属于服务器端问题,需向苹果开发者支持提交工单,提供请求详情和响应中的请求ID(若有)。
内容的提问来源于stack exchange,提问作者Steve
相关产品推荐
相关产品推荐

