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