You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							64 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
	
	
							64 lines
						
					
					
						
							1.9 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
namespace App\Http\Controllers;
 | 
						|
 | 
						|
use App\Models\Order;
 | 
						|
use App\Models\User;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
 | 
						|
class PaymentController extends Controller
 | 
						|
{
 | 
						|
    public function payment(Request $request)
 | 
						|
    {
 | 
						|
        if ($request->has('callback')) {
 | 
						|
            Order::where(['id' => $request->order_id])->update(['callback' => $request['callback']]);
 | 
						|
        }
 | 
						|
 | 
						|
        session()->put('customer_id', $request['customer_id']);
 | 
						|
        session()->put('order_id', $request->order_id);
 | 
						|
 | 
						|
        $customer = User::find($request['customer_id']);
 | 
						|
 | 
						|
        $order = Order::where(['id' => $request->order_id, 'user_id' => $request['customer_id']])->first();
 | 
						|
 | 
						|
        if (isset($customer) && isset($order)) {
 | 
						|
            $data = [
 | 
						|
                'name' => $customer['f_name'],
 | 
						|
                'email' => $customer['email'],
 | 
						|
                'phone' => $customer['phone'],
 | 
						|
            ];
 | 
						|
            session()->put('data', $data);
 | 
						|
            return view('payment-view');
 | 
						|
        }
 | 
						|
 | 
						|
        return response()->json(['errors' => ['code' => 'order-payment', 'message' => 'Data not found']], 403);
 | 
						|
    }
 | 
						|
 | 
						|
    public function success()
 | 
						|
    {
 | 
						|
        $callback = null;
 | 
						|
 | 
						|
        $order = Order::where(['id' => session('order_id'), 'user_id'=>session('customer_id')])->first();
 | 
						|
 | 
						|
        if(isset($order)) $callback = $order->callback;
 | 
						|
 | 
						|
        if ($callback != null) {
 | 
						|
            return redirect($order->callback . '&status=success');
 | 
						|
        }
 | 
						|
        return response()->json(['message' => 'Payment succeeded'], 200);
 | 
						|
    }
 | 
						|
 | 
						|
    public function fail()
 | 
						|
    {
 | 
						|
        $callback = null;
 | 
						|
        
 | 
						|
        $order = Order::where(['id' => session('order_id'), 'user_id'=>session('customer_id')])->first();
 | 
						|
        
 | 
						|
        if(isset($order)) $callback = $order->callback;
 | 
						|
 | 
						|
        if ($callback != null) {
 | 
						|
            return redirect($order->callback . '&status=fail');
 | 
						|
        }
 | 
						|
        return response()->json(['message' => 'Payment failed'], 403);
 | 
						|
    }
 | 
						|
}
 | 
						|
 |