1

我正在集成 Telr 支付网关。付款成功后,它会像这样重定向回来:

/handle-payment/success?cart_id=62f62033-6112-46d1-aec6-205fec101e4e-1643874480

我想设置此cart_id并将其重定向到route('confirmation.index'). 此外,当付款成功时,订单应将其订单表保存在我的数据库中。

配置/telr.php

'create' => [
        'ivp_method' => "create",
        'ivp_store' => env('TELR_STORE_ID', null),
        'ivp_authkey' => env('TELR_STORE_AUTH_KEY', null),
        'return_auth' => '/handle-payment/success',
        'return_can' => '/handle-payment/cancel',
        'return_decl' => '/handle-payment/declined',
    ]

控制器

public function store(CheckoutRequest $request) {
    
    try {
        $prefix = State::where('name', $request->state)->pluck('prefix')->first();
        $cartId = $prefix."-".randomNumbers(10);
        $amount = $this->getNumbers()->get('newTotal');

        $telrManager = new \TelrGateway\TelrManager();

        $billingParams = [
                'first_name' => $request->name,
                'sur_name' => $request->name,
                'address_1' => $request->address,
                'address_2' => $request->area,
                'city' => $request->state,
                'country' => 'UAE',
                'email' => $request->email,
                'ivp_cart'    => $cartId,
            ];

        return $telrManager->pay(2, $amount, 'Second Testing Order', $billingParams)->redirect();
        

        // SUCCESSFUL
        Cart::instance('default')->destroy();

        session()->forget('coupon');
        return redirect()->route('confirmation.index')->with(
            'success', 'Thank you! Your payment has been successfully accepted!');
        
    } catch(CardErrorException $e) {
        return back()->withError('Error ' . $e->getMessage());
    }
}

它从付款返回,而不是将订单存储在数据库中。

4

0 回答 0