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

PHP调用Shopee RefreshAccessToken接口始终返回error_param报错求助

PHP调用Shopee RefreshAccessToken接口返回error_param错误排查

你的代码存在3处直接触发参数错误的问题,逐一列示:

  • 签名计算变量名不匹配:你定义的密钥变量为$partner_key,但调用hash_hmac计算签名时传入的是未定义的$key变量,直接导致签名计算结果错误。
  • POST参数键名错误:请求体数组中refresh_token:、partner_id:两个键名末尾多写了多余的冒号,接口无法识别这两个参数。
  • 请求体格式不匹配:你在请求头中声明Content-Type: application/json,但直接将PHP数组传入CURLOPT_POSTFIELDS时,cURL会默认将数据编码为multipart/form-data格式,和声明的JSON类型不符,接口无法正确解析参数。
  • 补充注意:计算签名时传入的时间戳必须是10位秒级时间戳,不能传毫秒级,你当前用time()获取的数值符合要求,无需修改。

修正后的可运行代码

<?php
$partner_id   = '你的partner_id';
$partner_key  = '你的partner_key';
$timest       = time();
$shop_id      =  '你的shop_id';
$refresh_token = '你的refresh_token';
$host         = 'https://partner.shopeemobile.com';
$path         = '/api/v2/auth/access_token/get';
$base_string  = sprintf("%s%s%s",$partner_id,$path,$timest);
// 修正:传入正确的密钥变量$partner_key
$sign         = hash_hmac('sha256', $base_string, $partner_key, false);

$url  = $host.$path.sprintf("?timestamp=%s&partner_id=%s&sign=%s",$timest,$partner_id,$sign);   
  
// 修正:去掉参数键名多余的冒号,对ID类参数做整数类型转换更稳妥
$data = array( 
    'shop_id' => intval($shop_id),
    'refresh_token' => $refresh_token,
    'partner_id' => intval($partner_id),
);

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_SSL_VERIFYHOST => false,
    // 修正:将数组转为JSON字符串传入,匹配Content-Type要求
    CURLOPT_POSTFIELDS => json_encode($data),    
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => array(
        'Content-Type: application/json'
    ),
));

$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);

if ($err) {
    echo "cURL请求错误: " . $err;
} else {
    echo $response;
}
?>

接口请求成功时返回示例:

{"access_token":"新生成的access_token","expire_in":14400,"refresh_token":"新的refresh_token","request_id":"请求唯一ID"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 19:31:11