62 lines
1.6 KiB
PHP
62 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Sarga\Payment\Http\Controllers;
|
|
|
|
use GuzzleHttp\Exception\ConnectException;
|
|
use Sarga\Payment\Methods\AltynAsyr;
|
|
use Webkul\Checkout\Facades\Cart;
|
|
|
|
use Webkul\Checkout\Repositories\CartRepository;
|
|
use Webkul\Sales\Repositories\OrderRepository;
|
|
|
|
class AltynAsyrController extends Controller
|
|
{
|
|
public function __construct(protected OrderRepository $orderRepository, protected AltynAsyr $altynAsyr)
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Redirects to payment gateway
|
|
* @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
|
|
*/
|
|
public function redirect(){
|
|
$result = $this->altynAsyr->registerOrder();
|
|
|
|
if($result['success']){
|
|
return redirect($result['url']);
|
|
}
|
|
|
|
session()->flash('error', $result['message']);
|
|
|
|
return redirect()->route('shop.checkout.onepage.index');
|
|
}
|
|
|
|
/**
|
|
* Success payment
|
|
*
|
|
* @return \Illuminate\Http\RedirectResponse
|
|
*/
|
|
public function success(CartRepository $cartRepository, $cart_id){
|
|
if(!auth()->guard()->check() && !session()->has('cart')){
|
|
Cart::setCart($cartRepository->find($cart_id));
|
|
}
|
|
|
|
$result = $this->altynAsyr->getOrderStatus();
|
|
|
|
if ($result['success'] ) {
|
|
$order = $this->orderRepository->create(Cart::prepareDataForOrder());
|
|
|
|
Cart::deActivateCart();
|
|
|
|
session()->flash('order', $order);
|
|
|
|
// return view('shop::checkout.retry',$result);
|
|
|
|
return redirect()->route('shop.checkout.success');
|
|
}
|
|
|
|
return view('shop::checkout.retry',$result);
|
|
}
|
|
|
|
}
|