我无法使用PHP和Curl发布XML数据到Shopify.我有:
$xml = '<?xml version="1.0" encoding="UTF-8"?><variant><id type="integer">260293006</id><fulfillment-service>manual</fulfillment-service><inventory-management>shopify</inventory-management><inventory-policy>deny</inventory-policy><sku>s136</sku><inventory-quantity type="integer">48</inventory-quantity><price>17.95</price></variant>';
$url = 'https://' . $API_KEY . ':' . $PASSWORD . '@' . $STORE_URL . '/admin/variants/#260293006.xml';
Run Code Online (Sandbox Code Playgroud)
我的代码是:
$session = curl_init();
curl_setopt($session, CURLOPT_URL, $url);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($session, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($session, CURLOPT_MAXREDIRS, 3);
curl_setopt($session, CURLOPT_POST, 1);
curl_setopt($session, CURLOPT_POSTFIELDS, $xml);
curl_setopt($session, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8'));
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($session);
echo $response;
curl_close($session);
Run Code Online (Sandbox Code Playgroud)
Shopify页面返回的是什么:
<title>Shopify » Please Log In</title>
Run Code Online (Sandbox Code Playgroud)
我想我可能错过了一些明显的东西.一旦我使这个功能工作,其他一切都应该很容易构建.非常感谢.
感谢大家.根据这些反馈,我能够解决问题.大部分问题:
CURL的一些其他更改:
$fp = tmpfile();
fwrite($fp, $xml);
fseek($fp, 0);
$session = curl_init();
curl_setopt($session, CURLOPT_URL, $url);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
curl_setopt($session, CURLOPT_PUT, true);
curl_setopt($session, CURLOPT_BINARYTRANSFER, true);
curl_setopt($session, CURLOPT_INFILE, $fp); // file pointer
curl_setopt($session, CURLOPT_INFILESIZE, strlen($xml));
curl_setopt($session, CURLOPT_HTTPHEADER, array('Content-Type: application/xml'));
$response = curl_exec($session);
fclose($fp);
curl_close($session);
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
377 次 |
| 最近记录: |