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

<?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);
}
}