⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.77
Server IP:
13.127.59.50
Server:
Linux ip-172-31-46-210 5.15.0-1033-aws #37~20.04.1-Ubuntu SMP Fri Mar 17 11:39:30 UTC 2023 x86_64
Server Software:
Apache/2.4.41 (Ubuntu)
PHP Version:
7.4.3-4ubuntu2.29
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
var
/
www
/
ecommerce_pg
/
app
/
Http
/
Controllers
/
View File Name :
PayInstantController.php
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Log; use Carbon\Carbon; class PayInstantController extends Controller { public function index(Request $request) { \Log::info($request->all()); $data = []; $params = $request->all(); $params['city'] = 'Bangalore'; $params['zip_code'] = '560001'; $params['country'] = 'India'; // dd($params); $validator = self::validator($params); if ($validator->fails()) { return Response()->json([ 'status'=>201, 'message'=>$validator->errors()->first() ]); } $order_id = $request['orderId']; $amount = $request['amount']; $description = 'Order #'.$request['orderId']; $cust_name = $request['name']; $cust_email = $request['email']; $cust_phone = $request['phone']; $cust_city = 'NA'; $cust_zip = 'NA'; $cust_country = 'India'; // Do not change anything below this $data = $params = []; $salt = config('app.pay_instant_salt'); $params['api_key'] = config('app.pay_instant_app_key'); $params['return_url'] = \URL::to('/pi/checkout/cb/callback'); $params['order_id'] = $order_id; $params['amount'] = $amount; $params['currency'] = 'INR'; $params['description'] = $description; $params['name'] = $cust_name; $params['email'] = $cust_email; $params['phone'] = $cust_phone; $params['city'] = $cust_city; $params['zip_code'] = $cust_zip; $params['country'] = $cust_country; // Hash Generation $hash = self::hashCalculate($salt, $params); $params['hash'] = $hash; $data['fields'] = $params; $data['action_url'] = 'https://api.payinstance.com/v2/paymentrequest'; return view('payments.PayInstant.checkout',$data); } static public function validator(array $data) { return Validator::make($data, [ 'name' => ['required', 'string', 'max:255'], 'email' => ['required', 'email', 'max:255'], 'phone' => ['required', 'string', 'min:10', 'max:10'], 'orderId' => ['required', 'string', 'max:255'], 'amount' => ['required', 'string', 'max:255'], ]); } static public function hashCalculate($salt,$input) { $hash_columns = ['address_line_1', 'address_line_2', 'amount', 'api_key', 'city', 'country', 'currency', 'description', 'email', 'mode', 'name', 'order_id', 'phone', 'return_url', 'state', 'udf1', 'udf2', 'udf3', 'udf4', 'udf5', 'zip_code',]; sort($hash_columns); $hash_data = $salt; foreach ($hash_columns as $column) { if (isset($input[$column])) { if (strlen($input[$column]) > 0) { $hash_data .= '|' . trim($input[$column]); } } } $hash = strtoupper(hash("sha512", $hash_data)); return $hash; } public function callback(Request $request) { try { $client = new \GuzzleHttp\Client(); // $response = $client->request('POST', \DB::table('redirection_links')->first()->link, [ // $response = $client->request('POST', 'https://stylemirror.in/pi/checkout/PayInstant/callback', [ // $response = $client->request('POST', 'http://localhost:8002/pi/checkout/PayInstant/callback', [ $client__ = 'https://stylezones.in'; $response = $client->request('POST', $client__.'/pi/checkout/PayInstant/callback', [ 'headers'=>$headers, 'form_params' => ['data'=>$request->all()] ]); $response=json_decode($response->getBody()->getContents(),true); } catch (\Exception $e) { } $client__ = 'https://stylezones.in'; $redirection_url = $client__.'/appcheckout/check/?orderId='.$request->order_id; // if ($response['status'] == 'success') { // return redirect('/pi/payment/success?r='.$redirection_url); // } // else { // return redirect('/pi/payment/fail?r='.$redirection_url); // } if ($request['response_message'] == 'Transaction successful') { return redirect('/pi/payment/success?r='.$redirection_url); } else { return redirect('/pi/payment/fail?r='.$redirection_url); } } public static function fetchTransactionStatus($order_id) { $salt = config('app.pay_instant_salt'); $params = []; $params['api_key'] = config('app.pay_instant_app_key'); $params['order_id'] = $order_id; $hash = self::hashCalculate($salt, $params); $params['hash'] = $hash; try { $endpoint = 'https://api.payinstance.com/v2/paymentstatus'; $client = new \GuzzleHttp\Client(); $response = $client->request('POST', $endpoint, [ 'form_params'=>$params, ]); $response=json_decode($response->getBody()->getContents(),true); } catch (\GuzzleHttp\Exception $e) { $response = $e->getResponse()->getBody()->getContents(); } catch (\Exception $e) { $response = $e->getMessage(); } $statusCode = 303; $data = []; if (isset($response['data'])) { $statusCode = 200; $data = $response['data']; } return [ 'status'=>200, 'message'=>'Data fetched successfully', 'data' => $data, 'actual_response' => $response ]; } }