2017-07-13 10 views
0

以前はSOAP APIを使用していませんでした。 XMLデータリクエストを使用してSOAP APIを実行します。 私は試しましたが、成功しませんでした。 https://www.getpayments.com/docs/#processrealtimetokenpayment これは私が電話したい支払いゲートウェイのURLです。XMLリクエストを使用したPHP SOAP APIコール

私はコードの下に使用している:

それはエラーの下にスロー
$xml = '<?xml version="1.0" encoding="utf-8"?> 
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:px="https://px.ezidebit.com.au/"> 
    <soapenv:Header /> 
    <soapenv:Body> 
    <px:ProcessRealtimeTokenPayment> 
     <px:digitalKey>715C0799-307B-4BF4-7B1D-4153201FC0A1</px:digitalKey> 
     <px:token>3723758</px:token> 
     <px:paymentAmountInCents>1600</px:paymentAmountInCents> 
     <px:customerName>Hiren Patel</px:customerName> 
     <px:paymentReference>123456789</px:paymentReference> 
    </px:ProcessRealtimeTokenPayment> 
    </soapenv:Body> 
</soapenv:Envelope>'; 
$soapUrl = "https://api.demo.ezidebit.com.au/v3-5/pci?singleWsdl"; 
$soap_do = curl_init(); 
curl_setopt($soap_do, CURLOPT_URL,   $soapUrl); 
curl_setopt($soap_do, CURLOPT_CONNECTTIMEOUT, 10); 
curl_setopt($soap_do, CURLOPT_TIMEOUT,  10); 
curl_setopt($soap_do, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($soap_do, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($soap_do, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($soap_do, CURLOPT_POST,   true); 
curl_setopt($soap_do, CURLOPT_POSTFIELDS, $xml); 
curl_setopt($soap_do, CURLOPT_HTTPHEADER,  array('Content-Type: text/xml; charset=utf-8', 'Content-Length: '.strlen($xml))); 
$result = curl_exec($soap_do); 
$err = curl_error($soap_do); 
curl_close($soap_do); 
echo "<pre>";print_r($result); 
die; 

:ContractFilterに起因する 、受信機で処理できないアクション 'ProcessRealtimeTokenPayment' がActionNotSupportedTheメッセージEndpointDispatcherでの不一致。契約の不一致( 送信者と受信者の間の不一致の操作)または送信者 と受信者の間のバインディング/セキュリティの不一致のいずれかが原因で、これが である可能性があります。送信者と受信者が同じ 契約と同じバインディング(セキュリティ要件を含む、たとえば メッセージ、トランスポート、なし).Curlコールの成功を確認してください。

誰でも教えてください。 ありがとうございます。ここで

+0

なぜあなたはのSoapClientを使用していませんか? http://php.net/manual/en/class.soapclient.php –

+0

@IvoP申し訳ありません申し訳ありませんが、私はそれに精通していません。私にそれの例を教えてもらえますか? – Hardik

+0

すでにウラジミールはしました。コードがどれくらい読みやすくなっているかを確認してください。また、入力に特殊文字に関するXMLの整合性を維持する心配が少なくなります。 –

答えて

1

はのSoapClientを持つ例です。

<?php 

$soap = new SoapClient(
    'https://api.demo.ezidebit.com.au/v3-5/pci?singleWsdl', 
    array(
     'trace' => 1, 
     'exceptions' => 1 
    ) 
); 

$soap->ProcessRealtimeCreditCardPayment(
    array(
     'DigitalKey' => '715C0799-307B-4BF4-7B1D-4153201FC0A1', 
     'Token' => '3723758', 
     'PaymentAmountInCents' => '1600', 
     'CustomerName' => 'Hiren Patel', 
     'PaymentReference' => '123456789' 
    ) 
); 

echo $soap->__getLastRequest() . "\n"; 
echo $soap->__getLastResponse() . "\n"; 

あなたはそれをファイルに保存して実行することができます。

php file.php 
関連する問題