使用PHP+cURL向Shopify私有应用POST请求添加客户失败如何解决?
问题原因
- 请求方法不匹配
你代码中将请求方法指定为了PUT,但Shopify创建客户的/admin/api/2021-07/customers.json接口要求必须使用POST方法,PUT方法仅用于更新已存在的客户信息,方法错误会直接导致接口请求失败。 - 字段类型不规范(可选修复)
你传的accepts_marketing值为字符串类型的"true",该字段在Shopify接口规范中为布尔类型,建议改为布尔值true避免额外的校验失败。
修正后的核心代码
把原来的请求方法配置:
curl_setopt($session, CURLOPT_CUSTOMREQUEST, 'PUT');
替换为:
curl_setopt($session, CURLOPT_POST, true); curl_setopt($session, CURLOPT_CUSTOMREQUEST, 'POST');
同时调整字段类型:
// 把原来的 'accepts_marketing' => 'true' 改为 'accepts_marketing' => true,
通用调试建议
如果后续遇到类似接口调用失败的问题,可以先添加curl错误打印逻辑,快速定位问题:
$response = curl_exec($session); // 新增错误打印 if (curl_errno($session)) { echo 'Curl请求错误:' . curl_error($session); } // 也可以打印HTTP响应状态码排查 $httpCode = curl_getinfo($session, CURLINFO_HTTP_CODE); echo '接口响应状态码:' . $httpCode;
内容的提问来源于stack exchange,提问作者LeoGoodfarm
相关产品推荐
相关产品推荐

