您應該通過使用自定義returnUrl將transactionId傳回給自己。
首先,當你設置WorldPay的:
- 登錄到您的WorldPay的商戶管理界面
- 在安裝,點擊下一步安裝到您的安裝ID
- 在支付響應URL字段中輸入
<wpdisplay item=MC_callback>
- 確保支付響應啓用?選項
然後,當您使用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();
這可能有效,但是它違背了目的的「全球支付提供商'!你怎麼能用Omnipay的現有抽象方法來做到這一點?目標例如使用'trxid'作爲參數。 – twicejr