这是由Volusion对ProductSync的支持提供的方法,但是C#中的代码我希望在PHP中实现但是如何实现它我不知道。
https://support.volusion.com/hc/en-us/articles/209637767-API-Integration-ProductSync-Developer-
所以任何人都可以帮助我如何在PHP中实现,因为我正在研究PHP我不知道C#。我只是在我的PHP中粘贴这段代码,它给我一个像这样的错误
致命错误:第5行的/home/tlztech/public_html/volusion/productSync.php中找不到“XMLHTTP”类。
我的代码如下。
<?php
$api_url = "http://tebkq.mvlce.servertrust.com/net/WebService.aspx?Login=mylogin&EncryptedPassword=mypass&API_Name=Generic\\Products&SELECT_Columns=p.ProductCode,p.ProductID,p.ProductName,p.StockStatus";
$xml_http = new XMLHTTP();
$xml_http.open("POST", $api_url, false, "", "");
$xml_http.send(null);
$api_response = $xml_http.responseText;
$api_url = "http://tebkq.mvlce.servertrust.com/net/WebService.aspx?Login=mylogin&EncryptedPassword=mypass&Import=Update";
$api_request = "";
$api_request = $api_request + "<?xml version=\"1.0\" encoding=\"utf-8\" ?>";
$api_request = $api_request + "<xmldata>";
$api_request = $api_request + " <Products>";
$api_request = $api_request + " <ProductCode>0001</ProductCode>";
$api_request = $api_request + " <StockStatus>5</StockStatus>";
$api_request = $api_request + " </Products>";
$api_request = $api_request + "</xmldata>";
$xml_http = new XMLHTTP();
$xml_http.open("POST", $api_url, false, "", "");
$xml_http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=utf-8");
$xml_http.setRequestHeader("Content-Action", "Volusion_API");
$xml_http.send(api_request);
$xml_http = $xml_http.responseText;
$api_url = "http://tebkq.mvlce.servertrust.com/net/WebService.aspx?Login=mylogin&EncryptedPassword=mypass&API_Name=Generic\\Products&SELECT_Columns=p.ProductCode,p.ProductID,p.ProductName,p.StockStatus&WHERE_Column=p.ProductCode&WHERE_Value=0002";
$xml_http = new XMLHTTP();
$xml_http.open("POST", $api_url, false, "", "");
$xml_http.send(null);
$api_response = $xml_http.responseText;
?>
答案 0 :(得分:1)
您正在尝试引用PHP中不存在的Microsoft类。
我在你最近的其他帖子中看到你试图用cURL调用Volusion API。这是我在PHP中使用的有效方法。没有必要将C#示例改编为PHP。
以下是使用cURL和您的URL示例的PHP中的有效示例:
$api_url = "http://tebkq.mvlce.servertrust.com/net/WebService.aspx?Login=mylogin&EncryptedPassword=mypass&Import=Update";
$api_request = '<?xml version="1.0" encoding="utf-8" ?>';
$api_request .= '<xmldata>';
$api_request .= ' <Products>';
$api_request .= ' <ProductCode>0001</ProductCode>';
$api_request .= ' <StockStatus>5</StockStatus>';
$api_request .= ' </Products>';
$api_request .= '</xmldata>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $api_url);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $api_request);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type:application/x-www-form-urlencoded; charset=utf-8", "Content-Action:Volusion_API"));
$head = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
答案 1 :(得分:0)
我认为这是因为您需要使用XMLHTTP类的命名空间:
$xml_http = new Your\Namespace\XMLHTTP();
因为您的文件中没有XMLHTTP类。这就是找不到它的原因
然后,如果您只想使用XMLHTTP()
,则需要在文件的开头添加一个用途:
use <NAMESPACE>;
如果这个类来自全局命名空间,那就这样做:
$xml_http = new \XMLHTTP();