OmniPay:使用WorldPay回调时如何检索原始交易ID



处理来自WorldPay交易的回调时,检索传递给OmniPay的原始TransactionID的最佳方法是什么?

这将需要以交易结果更新适当的数据库记录。

我可以看到响应上有一个getTransactionReference()方法,但不能使用getTransactionId()方法(大概可以访问WorldPay返回的" Cartid"值)。

我猜想可以直接访问Cartid值,但是是否有网关不合时宜的方法来执行此操作?

您应该使用自定义返回url将事务授予。

首先,当您设置WorldPay时:

  1. 登录您的WorldPay Merchant Admin界面
  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();

最新更新