您应该通过使用自定义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