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

Apple App Store Connect API请求401未授权问题求助

排查App Store Connect API 401未授权错误的可能原因

以下是针对你遇到的401错误的具体排查方向:

  • 密钥文件读取异常
    你读取的API密钥文件(.p8格式)必须完整包含首尾标记行:-----BEGIN PRIVATE KEY----- 和 -----END PRIVATE KEY-----,且中间密钥内容不能有多余换行或空格。检查读取后的Secret_key变量是否完整保留这些内容,避免因文件读取截断或格式错误导致签名无效。

  • Issuer ID 拼写错误
    你的代码中Issuer_ID = "XXXXXXXXx"末尾有小写x,但苹果的Issuer ID是全大写字母数字组合,不存在小写字符。确认Issuer ID是否完全匹配App Store Connect中显示的内容,修正后重新生成Token。

  • API Key 权限不足
    在App Store Connect创建API Key时,必须勾选Sales and Trends下的「Download Sales and Trends Reports」权限。如果Key未分配该权限,即使Token有效,也无法访问销售报表接口。

  • 冗余请求头干扰
    你的GET请求添加了Content-type: application/json头,但GET请求无请求体,该头属于冗余内容。苹果API可能对冗余头敏感,尝试移除该头后重新请求。

  • Token过期时间格式错误
    JWT的exp字段要求是整数型Unix时间戳,但你用time.time() + token_duration生成的是浮点数。苹果服务器可能无法正确解析浮点数格式的过期时间,导致Token被判定无效。修改代码为:

    payload = {
        'iss': Issuer_ID,
        'exp': int(time.time() + token_duration),
        'aud': Audience
    }
    
  • Vendor Number 不匹配
    确认filter[vendorNumber]的值是否与当前Issuer ID关联账号下的Vendor Number完全一致。若账号存在多个Vendor Number,选错会导致权限验证失败。

  • Token签名有效性验证
    虽然你通过无签名验证的方式解码了Token,但建议用苹果公钥实际验证签名是否有效。可使用pyjwt库结合苹果公钥完成验证,确保签名过程无错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:57:27