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

使用PHP UPS API调用Rate接口时遇无效访问许可证号错误求助

解决UPS API "Invalid Access License number" 错误及Access Key获取方法

问题根源

你混淆了UPS的两种认证体系:OAuth2凭证(Client Id/Secret生成的access_token)和传统API凭证(Access Key、UserId、Password)。当前使用的PHP UPS API库默认采用传统凭证模式,而你错误地用access_token替代了Access Key,导致报错。

Access Key 获取路径

  1. 登录UPS开发者门户后,进入**个人资料(My Profile)**页面(而非应用详情页)。
  2. 在个人资料的UPS账户信息板块中,即可找到Access Key(也称为Access License Number)。
  3. 若未找到,需确认:
    • 你是否已将开发者账号与真实UPS商务账户绑定。未绑定的话,在账户设置中找到关联入口完成绑定,系统会自动生成Access Key。
    • 部分地区的开发者账户需要单独申请传统API访问权限,若绑定后仍无Access Key,可联系UPS开发者支持确认权限。

代码调整方案

方案1:改用OAuth2认证(使用你已有的access_token)

调整客户端初始化逻辑,指定OAuth配置:

$config = [
    'oauth' => [
        'client_id' => '你的Client Id',
        'client_secret' => '你的Client Secret',
        'access_token' => '你生成的access_token'
    ],
    'environment' => 'sandbox' // 生产环境改为'production'
];

$rate = new \Ups\Rate($config);

方案2:使用传统凭证认证(获取Access Key后)

用Access Key、UPS账户用户名、登录密码初始化:

$config = [
    'access_key' => '获取到的Access Key',
    'user_id' => '你的UPS账户用户名',
    'password' => '你的UPS登录密码',
    'environment' => 'sandbox' // 生产环境改为'production'
];

$rate = new \Ups\Rate($config);

注意事项

  • 测试环境(sandbox)与生产环境的凭证完全独立,务必匹配使用。
  • 若使用OAuth2,access_token有有效期,需实现自动刷新逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 02:25:23