在laravel中集成worldpay支付网关

时间:2021-04-05 15:43:10

标签: laravel worldpay

好的,所以我第一次与 worldpay 合作,他们的文档似乎有点模糊。 这是我迄今为止取得的成就: 我有一个工作正常的表单

<form id="paymentToken" name="paymentToken" action="{{URL::to('https://securetest.worldpay.com/wcc/purchase')}}" method="POST">
@csrf
<!-- Specifies the URL for our test environment -->
<input type="hidden" id="testMode" name="testMode" value="">
<!-- 100 instructs our test system -->
<input type="hidden" id="instId" name="instId" value=""> <!-- A mandatory parameter -->
<input type="hidden" id="cartId" name="cartId" value="">
<!-- A mandatory parameter - reference for the item purchased -->
<input type="hidden" id="amount" name="amount" value="">
<!-- A mandatory parameter -->
<input type="hidden" id="currency" name="currency" value="">
<!-- A mandatory parameter. ISO currency code -->
<input type="hidden" id="callback" name="MC_callback" value="">
<input id="payment-btn-hidden" type="submit" value="Proceed To Card Payment">
<!-- Creates the button. When clicked, the form submits the purchase details to us. -->
</form>

我正在使用 jquery/javascript 为这些输入分配值。单击提交按钮后,将进入 worldpay 页面,您必须在其中提供您的卡信息并付款。 现在的问题是我不知道如何在交易后接收响应。我需要的只是状态,即已付款/未付款以及我在此表单中发送的 cardId。

Callback settings

MC_callback 是一个函数,我在其中编写代码来处理当前如下所示的响应:

 public function index(Request $request)
    {

        if (isset($_POST['transStatus'])) {
            $transaction_status = $_POST['transStatus'];
            if (isset($_POST['cartId'])) {
                $order_id = $_POST['cartId'];
                if ($transaction_status == 'Y') {
                    $order = Order::where("id", $order_id)->first();
                    $order->status = 'P';
                    $order->save();
                }
            }
        }
        return view('web/menu');
    }

如果有人能帮我弄清楚我做错了什么,那就太好了。

0 个答案:

没有答案