私はcURLを使用してPOST情報をusps送料率計算機に送信しています。USPS APIエラーを返す - XMLにエラーがありません
$info = "<?xml version='1.0' encoding='UTF-8'?>
<RateV4Request USERID='xxxx'>
<Package ID='$aucid'>
<Service>Priority</Service>
<ZipOrigination>xxxx</ZipOrigination>
<ZipDestination>$zip</ZipDestination>
<Size>$size</Size>
<Pounds>$pounds</Pounds>
<Ounces>$ounces</Ounces>
<Container>RECTANGULAR</Container>
<Width>$width</Width>
<Length>$length</Length>
<Height>$height</Height>
<SpecialServices><SpecialService>108</SpecialService></SpecialServices>
</Package>
</RateV4Request>";
$array = array("API" => "RateV4", "XML" => $info);
$link = "http://production.shippingapis.com/ShippingAPI.dll";
curl_setopt($ch, CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,$array);
$answer=curl_exec($ch);
echo $answer;
curl_close($ch);
私はUSPS Webツールにサインアップすると、電子メールが(私はその敏感な性質のためのxsに置き換えている)USERIDで送られました。
同じメールでは、レート計算が許可されています。私は先に行って、エコーされたXMLを取り、xmlvalidation.com
にそれを接続し、それがエラーを発見した
80040B19XML Syntax Error:
Please check the XML request to see if it can be parsed.USPSCOM::DoAuth
: がここに返されるエラーです。私はまた、上部に<?xml version="1.0" encoding="UTF-8">
行なしでそれを試してみました。
にその全体をXMLをラップする必要があるかもしれません
<Package ID=\"".$aucid."\">
をあなたはcurl_initを持っていますか? – user2182349
これらの値( '$ pounds'のようなもの)が実際の値(数字)で更新されていて、単に" $ pounds "という文字列ではないと確信していますか? – jonmrich
@ user2182349はい、それは上です。 –