以前は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コールの成功を確認してください。
誰でも教えてください。 ありがとうございます。ここで
なぜあなたはのSoapClientを使用していませんか? http://php.net/manual/en/class.soapclient.php –
@IvoP申し訳ありません申し訳ありませんが、私はそれに精通していません。私にそれの例を教えてもらえますか? – Hardik
すでにウラジミールはしました。コードがどれくらい読みやすくなっているかを確認してください。また、入力に特殊文字に関するXMLの整合性を維持する心配が少なくなります。 –