支払い確認モジュールを開発しています。買い手が支払いを正常に確認すると、ゲートウェイは彼/彼女を次の成功 URL にリダイレクトします。
http://mysite.com/success.php?oid=P01&amt=100&refId=TXN3456
ゲートウェイには、トランザクション検証 URL を次のように使用して現在のトランザクションを検証する機能があります。
https://paymentgateway.com/epay/transverify.php?oid=P01&amt=100&refId=TXN3456
この URL は POST/GET リクエストを受け入れ、xml レスポンスを次のように返します。
<response>
<status>Success</status>
</response>
また
<response>
<status>Failed</status>
</response>
今私の問題は、確認応答が成功したときに注文の支払いステータスを更新できるように、サイトを離れずにゲートウェイに確認要求を送信するにはどうすればよいかということです。解決策として、支払いゲートウェイに ajax リクエストを送信しようとしましたが、クロス ドメイン リクエストの制限が原因である可能性があり、送信できませんでした。このリクエストを送信してレスポンスを取得する他の方法はありますか?
提案に従って、cURLを使用して応答を正常に取得しました:)
私のコード:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://paymentgateway.com/epay/transverify.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
$data = array(
'oid' => 'P01',
'amt' => '100',
'rid' => 'TXN3456'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$contents = curl_exec($ch);
curl_close($ch);
echo $contents;
?>
成功または失敗の結果を比較する方法は?返された結果($contents)はxmlデータですか?ありがとう!