2011-11-15 13 views
1

stapiを使用してsecuretradingといくつかの統合を行った人はいますか?私は現在、ペイパルを統合し、自分のコンソールに戻されて、次のXML応答を持ってしようとしています:セキュアトレーディング統合 - stapiとpaypalを使用してPHP

<responseblock version="3.67"> 
<requestreference>X3556qikiki32155</requestreference> 
<response type="ORDERDETAILS"> 
<merchant> 
<merchantname>test account</merchantname> 
<orderreference>aaaa123</orderreference> 
</merchant> 
<customer> 
<town>PAYPAL City</town> 
<street>MORE STREET</street> 
<name> 
<last>PayPalShipToName</last> 
</name> 
<premise>1 PayPalStreet</premise> 
<country>US</country> 
<ip>127.0.0.1</ip> 
</customer> 
<transactionreference>412-32323222-2323235284</transactionreference> 
<billing> 
<name> 
<last>PAYPALLastName</last> 
<first>Andr©©</first> 
</name> 
<country>GB</country> 
<email>[email protected]</email> 
</billing> 
<paypal> 
<addressstatus>Confirmed</addressstatus> 
<payerstatus>verified</payerstatus> 
<payerid>c6e9460f5232uijijd2dweqa6591pid</payerid> 
</paypal> 
<live>0</live> 
<error> 
<message>Ok</message> 
<code>0</code> 
</error> 
<timestamp>2011-11-14 22:36:50</timestamp> 
<settlement> 
<settleduedate>2011-11-14</settleduedate> 
<settlestatus>0</settlestatus> 
</settlement> 
<operation> 
<parenttransactionreference>42332-323232-52332279</parenttransactionreference> 
<accounttypedescription>ECOM</accounttypedescription> 
</operation> 
</response> 


<response type="AUTH"> 
<merchant> 
<merchantname>test account</merchantname> 
<orderreference>aa72323</orderreference> 
</merchant> 
<transactionreference>4qwdwd-w323232-34fd5285</transactionreference> 
<billing> 
<amount currencycode="GBP">19995</amount> 
<payment type="PAYPAL"/> 
</billing> 
<authcode>41685-dwww233qwd</authcode> 
<timestamp>2011-11-14 22:36:50</timestamp> 
<settlement> 
<settleduedate>2011-11-14</settleduedate> 
<settlestatus>0</settlestatus> 
</settlement> 
<live>0</live> 
<error> 
<message>Ok</message> 
<code>0</code> 
</error> 
<acquirerresponsecode>None</acquirerresponsecode> 
<operation> 
<parenttransactionreference>4233-dae3232-5232284</parenttransactionreference> 
<accounttypedescription>ECOM</accounttypedescription> 
</operation> 
</response> 
</responseblock> 

私は応答を得れば基本的に私は、XMLから値を取得するには、以下の使用しています:

$p = xml_parser_create(); 
xml_parser_set_option($p, XML_OPTION_CASE_FOLDING, 0); 
xml_parser_set_option($p, XML_OPTION_SKIP_WHITE, 1); 
xml_parse_into_struct($p, $return_xml, $vals, $index); 
xml_parser_free($p); 
print_r($vals); 

しかし、私が値をprint_rすると、私は表示されているORDERDETAILSブロックの値だけを取得し、authブロックの値は取得しません。

これについてのお手伝いをいただければ幸いです。それが使用することを少し明確だよう

おかげ

答えて

0

私は、SimpleXMLををラップするPHPクラスを書いた:

https://github.com/homer6/altumo/blob/master/source/php/Xml/XmlElement.md

$xml_element = new \Altumo\Xml\XmlElement($response_contents); 
var_dump($xml_element->xpath('response[@type=AUTH]/merchant/merchantname')); 

string(12) "test account" 

を参照してください:より多くのXPathの例についてhttp://www.w3schools.com/xpath/xpath_syntax.asp

希望のこと...

+0

ありがとうございました。 Xpathとxml_parse_into_structの両方が機能しています。返されるXMLは検証されていないため、問題が発生していました。 (これは私のコードがXMLを編集していたためです)。 – Dino

関連する問題