我正在集成 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());
}
}
它从付款返回,而不是将订单存储在数据库中。