0

WorldPay トランザクションからのコールバックを処理するとき、Omnipay に渡された元の transactionId を取得する最良の方法は何ですか?

これは、たとえば、適切なデータベース レコードをトランザクションの結果で更新するために必要です。

応答で使用可能な getTransactionReference() メソッドがあることがわかりますが、getTransactionId() メソッド (おそらく WorldPay によって返される「cartId」値にアクセスする) はありません。

cartId 値に直接アクセスできると思いますが、これを行うゲートウェイに依存しない方法はありますか?

4

1 に答える 1

1

カスタム returnUrl を使用して、transactionId を自分自身に戻す必要があります。

まず、Worldpay を設定するとき:

  1. WorldPay マーチャント管理インターフェースにログインします
  2. [インストール] で、インストール ID の横にある [セットアップ] をクリックします。
  3. [支払い応答 URL] フィールドに、次のように入力します。<wpdisplay item=MC_callback>
  4. 支払い応答が有効になっていることを確認しますか? オプションが選択されています

次に、Omnipay で最初の購入リクエストを行うときに、カスタム を渡しますreturnUrl。例えば:

$response = $gateway->purchase(array(
    'amount' => '10.00',
    'currency' => 'USD',
    'returnUrl' => 'https://www.example.com/return?transactionId=123'
))->send();

そうすれば、コールバック/リターン ページで、元のトランザクションの詳細を呼び出してから読み込むことができますcompletePurchase()

$transaction = Transaction::find($_GET['transactionId']);
$response = $gateway->completePurchase(array(
    'amount' => $transaction->amount,
    'currency' => $transaction->currency,
))->send();
于 2014-01-22T20:30:10.293 に答える