Nuevos cambios hechos de diseño
This commit is contained in:
116
desarrollo2/app/Http/Controllers/Api/V2/KhaltiController.php
Normal file
116
desarrollo2/app/Http/Controllers/Api/V2/KhaltiController.php
Normal file
@@ -0,0 +1,116 @@
|
||||
<?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")]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user