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

Postman可运行的Google Merchant Center GET请求在PHP Curl中失效求助

Google Merchant Center接口请求失败排查方案

下面是按优先级排序的排查步骤和修正方案:

  • 第一步:添加Curl错误检测逻辑,先定位具体错误类型
    你当前代码没有捕获curl层面的错误,无法区分是网络问题、证书问题还是接口返回的业务错误,先添加错误检测代码定位问题。
  • 第二步:检查Bearer Token有效性
    谷歌OAuth2生成的Bearer Token默认有效期仅1小时,你代码中硬编码了固定Token,大概率已经过期。Postman如果配置了自动OAuth2授权会自动刷新Token,这是Postman正常、代码请求失败的高频原因。
  • 第三步:调整Curl配置适配接口规则
  1. 你当前设置了CURLOPT_FOLLOWLOCATION => false,谷歌接口可能返回3xx重定向,Postman默认自动跟随重定向,建议将该参数改为true
  2. 本地PHP环境如果未配置根CA证书,curl发起HTTPS请求时会校验失败,Postman内置了根证书列表不会触发该问题,可临时添加关闭SSL校验的参数测试(生产环境建议配置正确CA证书,不要关闭校验)
  3. 补充Accept: application/json请求头,避免接口返回非预期格式
  • 修正后的测试代码如下:
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://shoppingcontent.googleapis.com/content/v2.1/436306321/products',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true, // 修改为跟随重定向
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'GET',
  // 临时关闭SSL校验,仅测试用,生产环境请删除这两行、配置正确的CA证书
  CURLOPT_SSL_VERIFYPEER => false,
  CURLOPT_SSL_VERIFYHOST => false,
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer 这里替换成你最新生成的有效Token',
    'Accept: application/json' // 补充Accept头
  ),
));

$response = curl_exec($curl);
// 新增Curl错误检测
if(curl_errno($curl)){
    echo 'Curl错误:' . curl_error($curl);
}
curl_close($curl);
echo $response;
  • 长期使用建议:不要硬编码Bearer Token,接入谷歌官方的PHP版API客户端,动态获取有效期内的授权Token。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 10:12:01