2013-07-09 49 views
0

我試圖實現3D安全。我有一個包含一些數據所要求的3D secure.Like一個xml:使用php發送3D安全請求

<CardinalMPI> 
<MsgType>cmpi_lookup</MsgType> 
<Version>1.7</Version> 
<ProcessorId>xxx</ProcessorId> 
<MerchantId>xxxxxx</MerchantId> 
<TransactionPwd>xxxxxxxxxxx</TransactionPwd> 
<TransactionType>C</TransactionType> 
<Amount>56999</Amount> 
<CurrencyCode>xxxxx</CurrencyCode> 
<OrderNumber>xxxx</OrderNumber> 
<CardNumber>xxx</CardNumber> 
<CardExpMonth>xxx</CardExpMonth> 
<CardExpYear>xxx</CardExpYear> 
</CardinalMPI> 

那我該怎麼請求http://msgtest.bankserv.co.za/maps/txns.asp以上XML,並得到他們的答覆回來嗎?我嘗試捲曲,肥皂等,並得到錯誤。請幫助我詳細解答一些問題。

我試過以下代碼。請讓我知道這個代碼是否不正確。

$writer = new XMLWriter(); 
$writer->openMemory(); 

$writer->startElement("CardinalMPI"); 
$writer->writeElement("MsgType","cmpi_lookup"); 
$writer->writeElement("Version","1.7"); 
$writer->writeElement("ProcessorId","xxxxx"); 
$writer->writeElement("MerchantId","xxxxxxx"); 
$writer->writeElement("TransactionPwd","xxxxx"); 
$writer->writeElement("TransactionType","C"); 
$writer->writeElement("Amount",$xxxx); 
$writer->writeElement("CurrencyCode","xxxx"); 
$writer->writeElement("OrderNumber","xxxxxxxxxx"); 
$writer->writeElement("CardNumber","'xxxxxxxxx"); 
$writer->writeElement("CardExpMonth","xx"); 
$writer->writeElement("CardExpYear","xxxx"); 
$writer->endElement(); 
$writer->endElement(); 
$writer->endDocument(); 
$request = $writer->outputMemory(true); 

$serviceArguments =  array("validateRequest"=>"0","protocol"=>"v_xml","protocolVersion"=>"2.0","request"=> $request); 
$client = new SoapClient("msgtest.bankserv.co.za/maps/txns.asp", array('local_cert'=> "certificate.pem")); 
$result = $client->Execute($serviceArguments); 
$xml=$result->ExecuteResult; 

當我運行此代碼時,我收到異常。

+2

我們可以看到您的cURL和SOAP解決方案嗎?我們可以幫助解決您嘗試的問題。 (將其中一個編輯到您的問題中,並在問題文本中提供與該腳本有關的錯誤消息,如果您願意的話)。 – halfer

+3

我不能成爲這裏唯一一個稍微擔心自己無法自己解決這個問題,並且正在處理敏感信用卡詳細信息的人...... – Tomdarkness

+0

@Tomdarkness,你不是,web開發仍然像某種用電腦愛好任何人都可以做,而不是真正的職業。 – 2013-07-09 21:45:15

回答

0

對於發佈值,我們可以使用PHP中的CURL。您可以在此使用:

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
curl_setopt($ch, CURLOPT_URL, "your url"); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, "yr_variable=".$your xml); 
$result=curl_exec($ch); 
curl_close($ch);