D7net
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
forge
/
mbpharmacy.ghanempharmacy.com
/
app
/
Http
/
Controllers
/
Filename :
SenangPayController.php
back
Copy
<?php namespace App\Http\Controllers; use App\Models\PaymentRequest; use App\User; use App\Traits\Processor; use Illuminate\Http\Request; use Illuminate\Support\Facades\Validator; class SenangPayController extends Controller { use Processor; private $config_values; private PaymentRequest $payment; private $user; public function __construct(PaymentRequest $payment, User $user) { $config = $this->payment_config('senang_pay', 'payment_config'); if (!is_null($config) && $config->mode == 'live') { $this->config_values = json_decode($config->live_values); } elseif (!is_null($config) && $config->mode == 'test') { $this->config_values = json_decode($config->test_values); } $this->payment = $payment; $this->user = $user; } public function index(Request $request) { $validator = Validator::make($request->all(), [ 'payment_id' => 'required|uuid' ]); if ($validator->fails()) { return response()->json($this->response_formatter(GATEWAYS_DEFAULT_400, null, $this->error_processor($validator)), 400); } $payment_data = $this->payment::where(['id' => $request['payment_id']])->where(['is_paid' => 0])->first(); if (!isset($payment_data)) { return response()->json($this->response_formatter(GATEWAYS_DEFAULT_204), 200); } $payer = json_decode($payment_data['payer_information']); $config = $this->config_values; session()->put('payment_id', $payment_data->id); return view('payment-gateway.senang-pay', compact('payment_data', 'payer', 'config')); } public function return_senang_pay(Request $request) { if ($request['status_id'] == 1) { $this->payment::where(['id' => session()->get('payment_id')])->update([ 'payment_method' => 'senang_pay', 'is_paid' => 1, 'transaction_id' => $request['transaction_id'], ]); $data = $this->payment::where(['id' => session()->get('payment_id')])->first(); if (isset($data) && function_exists($data->success_hook)) { call_user_func($data->success_hook, $data); } return $this->payment_response($data,'success'); } $payment_data = $this->payment::where(['id' => session()->get('payment_id')])->first(); if (isset($payment_data) && function_exists($payment_data->failure_hook)) { call_user_func($payment_data->failure_hook, $payment_data); } return $this->payment_response($payment_data,'fail'); } }