私は現在、管理している PHP/MySQL ベースの e コマース Web サイトを RBS Worldpay 支払いゲートウェイと統合する作業を行っています。これが私の問題です:
顧客がショッピング バスケットをいっぱいにすると、コンテンツが$_SESSION
グローバル配列に保存されるだけでなく、Cookie にも保存されます。顧客がチェックアウトすると、支払いの詳細を入力するために Worldpay ページに送られます。「支払い応答」/コールバック機能を使用して、成功した支払いを自分のページ「confirmation.php」にリダイレクトします。これは、すべてが順調であることを顧客に伝え、バックグラウンドでいくつかのデータベースクエリを実行します.
大丈夫だ!
ただし、この時点で、$_SESSION
配列からショッピング カートのデータを空にし、Cookie を削除したいと考えています。とてもいいので、私はただ使用します:
$_SESSION['cart'] = array();
setcookie('cart', '', 0, '/');
しかし、これはうまくいきません。そして、このリダイレクトされたページの URL が実際にhttps://secure-test.wp3.rbsworldpay.com/wcc/purchase
はwww.mysite.co.uk/confirmation.php
. テストとして、確認ページに phpinfo() をエコーさせ、$_SERVER vars から、すべて問題ないようです。
_SERVER["DOCUMENT_ROOT"] /var/www/vhosts/mysite.co.uk/httpdocs
_SERVER["SCRIPT_FILENAME"] /var/www/vhosts/mysite.co.uk/httpdocs/confirmation.php
_SERVER["SERVER_PROTOCOL"] HTTP/1.0
_SERVER["REQUEST_METHOD"] POST
_SERVER["QUERY_STRING"] installation=[xxxxxx]&msgType=authResult
_SERVER["REQUEST_URI"] /confirmation.php?installation=xxxxxx&msgType=authResult
_SERVER["SCRIPT_NAME"] /confirmation.php
_SERVER["PHP_SELF"] /confirmation.php
_SERVER["HTTP_USER_AGENT"] WJHRO/1.0 (WorldPay Java HTTP Request Object)
URL が別のドメインを指しているという事実のために、私のスクリプトは $_SESSION および $_COOKIE データにアクセスすることも、操作することもできないようです。この Worldpay システムがどのようにそれを行っているかはわかりません。iframe などではありませんが、ユーザー エージェント「WJHRO/1.0 (WorldPay Java HTTP Request Object)」に関係していると思われます。
誰もこれに精通していますか?どうすればこれを回避できますか?
読んでくれてありがとう!
マイケル