0
我想通過XML請求作爲一個變量在PHP如何提供XML請求作爲變量在PHP
我的XML請求看起來像
$XPost ="<ENVELOPE>
<HEADER>
<VERSION>1</VERSION>
<REQVERSION>1</REQVERSION>
<TALLYREQUEST>EXPORT</TALLYREQUEST>
<TYPE>COLLECTION</TYPE>
<SESSIONID>" .$session. "</SESSIONID>
<TOKEN>" .$token. "</TOKEN>
<ID>GetProfitnLossColl</ID>
</HEADER>
<BODY>
<DESC>
<STATICVARIABLES>
<SVCURRENTCOMPANY>" .$company. "</SVCURRENTCOMPANY>
<SVEXPORTFORMAT> $$SysName:XML </SVEXPORTFORMAT>
</STATICVARIABLES>
<TDL>
<TDLMESSAGE>
<COLLECTION NAME= \" GetProfitnLossColl \" ISMODIFY= \" No \" ISFIXED= \" No \" ISINITIALIZE= \" No \" ISOPTION= \" No \" ISINTERNAL= \" No \">
<TYPE>Group</TYPE>
<CHILDOF> Primary</CHILDOF>
<NATIVEMETHOD>parent, MasterID</NATIVEMETHOD>
<NATIVEMETHOD>BSDrClosing</NATIVEMETHOD>
<NATIVEMETHOD>BSCrClosing</NATIVEMETHOD>
<Method>VSPLName : $$Name</Method>
<Method>isGroup : $$IsGroup</Method>
<Method>cmpName : ##SVCurrentCompany</Method>
<Filters>CLDrBalNotZero</Filters>
</COLLECTION>
<SYSTEM TYPE= \" Formulae \" NAME= \" CLDrBalNotZero \" ISMODIFY= \" No \" ISFIXED= \" No \" ISINTERNAL= \" No \">$BSDrClosing != 0 Or $BSCrClosing != 0 </SYSTEM>
</TDLMESSAGE>
</TDL>
</DESC>
</BODY>
</ENVELOPE>";
我使用PHP這個請求連接理貨服務器作爲
<?php
$response = array("error" => FALSE);
if(isset($_REQUEST['session1']) && isset($_REQUEST['token']) && isset($_REQUEST['company'])){ //&& !empty($_POST['session1']) && !empty($_POST['token']) && !empty($_POST['company'])){
$url = "https://dev1.tallyenterprise.com";
//$url = "https://tallynet.tallyenterprise.com";
$session = $_REQUEST['session1'];
$token = $_REQUEST['token'];
$company = $_REQUEST['company']; ///_POST['company'];
$XPost = "above xml request"
$headers = array();
$headers[] = 'ID:GETPROFITNLOSSCOLL'; //GetProfitnLossColl
$headers[] = 'SOURCE:VISIONSERVER';
$headers[] = 'TARGET: TALLY';
$headers[] = 'CONTENT-TYPE:text/xml;charset=utf-8';
$headers[] = 'Accept-Encoding:identity';
$headers[] = 'TARGETACCOUNTINTERNALID:201214173';
//$headers[] = 'TARGETCOMPANYNAME:Vision Solutions App';
$headers[] = 'TARGETCOMPANYNAME:'.$company;
// http://www.hackingwithphp.com/15/10/2/your-first-curl-scripts
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_TIMEOUT, 40);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, $XPost);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
}
else{
$response["error"] = TRUE;
$response["error_msg"] = "Required parameters (session or token) is missing!";
echo json_encode($response);
}
?>
它給我的瀏覽器警告 注意:未定義的變量:SYSNAME在C:\ wamp64 \ WWW \ VisionServer \ TallyPhp \詢價\ getProfitnLoss.php上線36
和名稱,IsGroup,BSCrClosing
和響應的無效請求
請幫我.....
謝謝@Bert我所做的更改,現在它不是推搡錯誤,但它顯示「無效的請求」,如果我在瀏覽器中通過傳遞參數在URL中測試它,而在我的應用程序中,我發送POST請求,然後顯示「缺少必需的參數(會話或令牌)!」。任何解決方案......? – user6344335Tejpal