ok
Direktori : /home2/selectio/public_html/limpiar.in.net/updates/app/Http/Controllers/Api/V2/ |
Current File : /home2/selectio/public_html/limpiar.in.net/updates/app/Http/Controllers/Api/V2/KhaltiController.php |
<?php namespace App\Http\Controllers\Api\V2; use App\Models\CombinedOrder; use Illuminate\Http\Request; use Redirect; class KhaltiController extends Controller { public function pay(Request $request) { if ($request->payment_type == 'cart_payment') { $combined_order = CombinedOrder::find($request->combined_order_id); $purchase_order_id = $combined_order->id; $amount = $combined_order->grand_total; } elseif ($request->payment_type == 'wallet_payment') { $amount = $request->amount; $purchase_order_id = $request->user_id; } elseif ($request->payment_type == 'seller_package_payment' || $request->payment_type == 'customer_package_payment') { $amount = $request->amount; $purchase_order_id = $request->package_id; } $return_url = route('api.khalti.success'); //must be changed $args = http_build_query([ 'return_url' => $return_url, 'website_url' => route('home'), 'amount' => $amount * 100, "modes" => [ "KHALTI", "EBANKING", "MOBILE_BANKING", "CONNECT_IPS", "SCT" ], 'purchase_order_id' => $purchase_order_id, 'purchase_order_name' => $request->payment_type, ]); if (get_setting('khalti_sandbox') == 1) { $url = 'https://a.khalti.com/api/v2/epayment/initiate/'; } else { $url = 'https://khalti.com/api/v2/epayment/initiate/'; } # Make the call using API. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $args); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $headers = ['Authorization: Key ' . env('KHALTI_SECRET_KEY')]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // Response $response = json_decode(curl_exec($ch), true); curl_close($ch); // return response()->json([ // "result" => true, // "url" => $response['payment_url'] // ]); return Redirect::to($response['payment_url']); } public function paymentDone(Request $request) { $args = http_build_query([ 'pidx' => $request->pidx, ]); if (get_setting('khalti_sandbox') == 1) { $url = 'https://a.khalti.com/api/v2/epayment/lookup/'; } else { $url = 'https://khalti.com/api/v2/epayment/lookup/'; } # Make the call using API. $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $args); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $headers = ['Authorization: Key ' . env('KHALTI_SECRET_KEY')]; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); // Response $response = json_decode(curl_exec($ch)); curl_close($ch); if ($response->status == 'Completed') { if ($request->payment_type == 'cart_payment') { checkout_done($request->combined_order_id, json_encode($response)); } if ($request->payment_type == 'wallet_payment') { wallet_payment_done($request->user_id, $request->amount, 'khalti', json_encode($response)); } if ($request->payment_type == 'seller_package_payment') { seller_purchase_payment_done($request->user_id, $request->package_id, $request->amount, 'khalti', json_encode($response)); } if ($request->payment_type == 'customer_package_payment') { customer_purchase_payment_done($request->user_id, $request->package_id); } return response()->json(['result' => true, 'message' => translate("Payment is successful")]); } else { return response()->json(['result' => false, 'message' => translate("Payment is failed")]); } } }