Viewing file: TopUpController.php (33.71 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace Modules\PaymentGateway\Http\Controllers;
use App\Models\Customer; use App\Models\CustomerNumber; use App\Models\Number; use App\Models\NumberRequest; use App\Models\Report; use App\Models\SmsTemplate; use App\Models\TopUpRequest; use App\Models\Transactions; use App\Models\User; use Carbon\Carbon; use Illuminate\Contracts\Support\Renderable; use Illuminate\Http\Request; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\Str; use Modules\PaymentGateway\Services\PaymentCredentials; use Modules\PaymentGateway\TopUpProvider\ProcessPayment; use Omnipay\Omnipay; use PayPal\Api\Payment;
class TopUpController extends Controller { public function index() { return view('paymentgateway::index'); }
public function process(Request $request) {
$customer=auth('customer')->user(); $currPlan=$customer->plan()->first(); if (!$currPlan){ return redirect()->route('customer.billing.index')->withErrors(['failed'=>'Please purchase a plan first']); }
$data['total']= $currPlan->sms_unit_price > 0?$request->amount:0; if(!$currPlan->sms_unit_price || $currPlan->sms_unit_price==0){ return redirect()->route('customer.billing.index')->withErrors(['failed'=>'Please upgrade your plan']); }
if($currPlan->sms_unit_price > 0) { $credit = $request->amount / $currPlan->sms_unit_price; }else{ $credit=$request->amount; } $data['unit']= floor($credit);
return view('paymentgateway::top_up.index', $data); }
public function payNow(Request $request) { if (env("APP_DEMO")){ return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('admin.app_demo_message')]); } $customer = auth('customer')->user(); $currPlan=$customer->plan()->first();
$total=$request->total; if($currPlan->sms_unit_price > 0) { $credit = floor($request->total / $currPlan->sms_unit_price); }else{ $credit = floor($request->total); } DB::beginTransaction(); try { $topUpReq= new TopUpRequest(); $topUpReq->credit=$credit; $topUpReq->customer_id=$customer->id; $topUpReq->admin_id=$customer->admin_id; $topUpReq->payment_status='unpaid'; $topUpReq->customer_type=$customer->type; $topUpReq->customer_type=$customer->type; $topUpReq->transaction_id=$request->transaction_id; $topUpReq->save();
//Transaction Report $transaction= new Transactions(); $transaction->customer_id=$customer->id; $transaction->type='top_up'; $transaction->added_by=auth('customer')->user()->type; $transaction->amount=$request->total; $transaction->status='unpaid'; $transaction->ref_id=$topUpReq->id; $transaction->transaction_id=Str::random(12); $transaction->save();
if($currPlan->sms_unit_price <= 0) { DB::commit(); return redirect()->route('customer.dashboard')->with('success', trans('Congratulations! top-up request under review, wait until approved')); }
if (!in_array($request->payment_type,['flutterwave','vogue_pay', 'offline', 'coinpay'])) { $processPayment = new ProcessPayment(); $processResult = $processPayment->set_gateway($request->payment_type) ->topUpReq($topUpReq) ->credit($credit) ->creditType($request->topup_type) ->amount($total) ->request($request) ->process(); DB::commit(); if ($processResult->error_message) { return redirect()->route('customer.dashboard')->withErrors(['failed' => $processResult->error_message]); } if ($processResult->return_view) { return $processResult->return_view; } elseif ($processResult->will_redirect && $processResult->redirect_url) { return redirect()->to($processResult->redirect_url); } } else{ DB::commit(); return redirect()->route('customer.dashboard')->with('success', trans('Congratulations! top-up request under review, wait until approved')); } } catch (\Exception $ex) { Log::error($ex); DB::rollBack(); return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid Payment')]); }
//end
}
public function paymentSuccess(Request $request) { try { $credentials = PaymentCredentials::get();
if (!isset($credentials) || !isset($credentials->paypal_payment_mode) || !$credentials->paypal_payment_mode || (!$credentials->paypal_client_id || !$credentials->paypal_client_secret)) { throw new \Exception('Credentials not found. Please contact with the administrator'); } $mode = isset($credentials->paypal_payment_mode) && $credentials->paypal_payment_mode && $credentials->paypal_payment_mode == 'live' ? 'false' : 'true'; $gateway = Omnipay::create('PayPal_Rest'); $gateway->setClientId($credentials->paypal_client_id); $gateway->setSecret($credentials->paypal_client_secret); $gateway->setTestMode($mode);
if ($request->paymentId && $request->PayerID) { $transaction = $gateway->completePurchase(array( 'payer_id' => $request->input('PayerID'), 'transactionReference' => $request->input('paymentId'), )); $response = $transaction->send();
if (!$response->isSuccessful()) { return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment')]); } } else { return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Transaction is declined')]); }
$paymentId = $request->paymentId; $topup_request = $request->topup_request; $user = $request->user; if (!$paymentId || !$topup_request || !$user) { return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment')]); }
$topup_request = TopUpRequest::where('id', $request->topup_request)->first();
if (!$topup_request) { return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment')]); }
try { $customer = Customer::where('id', $topup_request->customer_id)->first(); if (!$customer) { return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment Request')]); }
$transaction = Transactions::where('type', 'top_up')->where('customer_id', $customer->id)->where('ref_id', $topup_request->id)->first();
if ($transaction) { $transaction->transaction_id = $paymentId; $transaction->status = 'paid'; $transaction->save(); }
$wallet = $customer->wallet()->first();
if ($topup_request->credit > 0 && $customer->added_by != 'admin') { $seller = Customer::where('id', $topup_request->admin_id)->where('type', $customer->added_by)->first(); if (!$seller) { return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment Request')]); } $sellerWallet = $seller->wallet()->first(); if ($sellerWallet->credit > $topup_request->credit) { $wallet->credit = $wallet->credit + $topup_request->credit; $wallet->save();
$sellerWallet->credit = $sellerWallet->credit - $topup_request->credit; $sellerWallet->save();
// For Customer //Report $report = new Report(); $report->customer_id = $customer->id; $report->ref_id = $topup_request->id; $report->type = 'topup'; $report->sub_type = 'topup'; $report->amount = '+' . $topup_request->credit; $report->save(); //For Seller //Report $report = new Report(); $report->customer_id = $sellerWallet->customer_id; $report->ref_id = $topup_request->id; $report->type = 'topup'; $report->sub_type = 'topop'; $report->amount = '-' . $topup_request->credit; $report->save(); } else { $topUpReq = new TopUpRequest(); $topUpReq->credit = $topup_request->credit; $topUpReq->credit_type = 'non_masking'; $topUpReq->customer_id = $customer->id; $topUpReq->admin_id = $customer->admin_id; $topUpReq->payment_status = 'unpaid'; $topUpReq->customer_type = $customer->type; $topUpReq->transaction_id = $request->transaction_id; $topUpReq->save(); } } else { $wallet->credit = $wallet->credit + $topup_request->credit; $wallet->save(); $report = new Report(); $report->customer_id = $customer->id; $report->ref_id = $topup_request->id; $report->type = 'topup'; $report->sub_type = 'topup'; $report->amount = '+' . $topup_request->credit; $report->save(); }
$topup_request->payment_status = 'paid'; $topup_request->status = 'approved'; $topup_request->transaction_id = $request->paymentId; $topup_request->save();
return redirect()->route('customer.dashboard')->with('success', trans('Congratulations! Credit successfully added your wallet')); } catch (\Exception $ex) { return redirect()->route('customer.dashboard')->withErrors(['msg' => $ex->getMessage()]); }
return redirect()->route('customer.dashboard')->with('success', trans('Congratulations! Top-Up request under review, wait until approved')); } catch (\Exception $ex) { return redirect()->route('customer.dashboard')->withErrors(['msg' => $ex->getMessage()]); } }
public function stripeSuccess(Request $request) {
try {
// $paymentId = $request->paymentId; $topup_request = $request->topup_request; $user = $request->user; if (!$topup_request || !$user) { return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment')]); }
$topup_request = TopUpRequest::where('id', $request->topup_request)->first();
if (!$topup_request) { return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment')]); }
try { $customer = Customer::where('id', $topup_request->customer_id)->first(); if (!$customer) { return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment Request')]); }
$transaction = Transactions::where('type', 'top_up')->where('customer_id', $customer->id)->where('ref_id', $topup_request->id)->first();
if ($transaction) { // $transaction->transaction_id = $paymentId; $transaction->status = 'paid'; $transaction->save(); }
$wallet = $customer->wallet()->first();
if ($topup_request->credit > 0 && $customer->added_by != 'admin') { $seller = Customer::where('id', $topup_request->admin_id)->where('type', $customer->added_by)->first(); if (!$seller) { return redirect()->route('customer.dashboard')->withErrors(['msg' => trans('Invalid payment Request')]); } $sellerWallet = $seller->wallet()->first(); if ($sellerWallet->credit > $topup_request->credit) { $wallet->credit = $wallet->credit + $topup_request->credit; $wallet->save();
$sellerWallet->credit = $sellerWallet->credit - $topup_request->credit; $sellerWallet->save();
// For Customer //Report $report = new Report(); $report->customer_id = $customer->id; $report->ref_id = $topup_request->id; $report->type = 'topup'; $report->sub_type = 'topup'; $report->amount = '+' . $topup_request->credit; $report->save(); //For Seller //Report $report = new Report(); $report->customer_id = $sellerWallet->customer_id; $report->ref_id = $topup_request->id; $report->type = 'topup'; $report->sub_type = 'topop'; $report->amount = '-' . $topup_request->credit; $report->save(); } else { $topUpReq = new TopUpRequest(); $topUpReq->credit = $topup_request->credit; $topUpReq->credit_type = 'non_masking'; $topUpReq->customer_id = $customer->id; $topUpReq->admin_id = $customer->admin_id; $topUpReq->payment_status = 'unpaid'; $topUpReq->customer_type = $customer->type; $topUpReq->transaction_id = $request->transaction_id; $topUpReq->save(); } } else { $wallet->credit = $wallet->credit + $topup_request->credit; $wallet->save(); $report = new Report(); $report->customer_id = $customer->id; $report->ref_id = $topup_request->id; $report->type = 'topup'; $report->sub_type = 'topup'; $report->amount = '+' . $topup_request->credit; $report->save(); }
$topup_request->payment_status = 'paid'; $topup_request->status = 'approved'; $topup_request->transaction_id = $request->paymentId; $topup_request->save();
return redirect()->route('customer.dashboard')->with('success', trans('Congratulations! Credit successfully added your wallet')); } catch (\Exception $ex) { return redirect()->route('customer.dashboard')->withErrors(['msg' => $ex->getMessage()]); }
return redirect()->route('customer.dashboard')->with('success', trans('Congratulations! Top-Up request under review, wait until approved')); } catch (\Exception $ex) { return redirect()->route('customer.dashboard')->withErrors(['msg' => $ex->getMessage()]); } }
function getPayPalApiContext($client_id, $secret_key) {
return new \PayPal\Rest\ApiContext( new \PayPal\Auth\OAuthTokenCredential( $client_id, // ClientID $secret_key // ClientSecret ) ); }
public function paymentCancel() { return redirect()->route('customer.numbers.purchase')->withErrors(['msg' => trans('Payment has been cancelled')]); }
public function checkValidPayment(Request $request){ $number = Number::where('id', $request->number_id)->first(); if ($number->price==$request->price){ return response()->json(['status'=>'success']); }else{ return abort(404); } }
function edie($error_msg) { \Log::error($error_msg); exit(); }
public function webhook(Request $request){ $settings = json_decode(get_settings('payment_gateway')); $merchant_id = isset($settings->merchate_id)?$settings->merchate_id:''; $ipn_secret = isset($settings->ipn_secret)?$settings->ipn_secret:'';
$txn_id = isset($request->txn_id)?$request->txn_id:''; if($txn_id){ $payment = CustomerNumber::where("transaction_id", $txn_id)->first(); $number = Number::where("id", $payment->number_id)->first(); }else{ abort('404'); }
$order_total = isset($number->sell_price)?$number->sell_price:0; //BTC if (!isset($request->ipn_mode) || $request->ipn_mode != 'hmac') { $this->edie("IPN Mode is not HMAC"); }
if (!isset($_SERVER['HTTP_HMAC']) || empty($_SERVER['HTTP_HMAC'])) { $this->edie("No HMAC Signature Sent."); }
if (!isset($request->merchant) || $request->merchant != trim($merchant_id)) { $this->edie("No or incorrect merchant id."); }
$hmac = hash_hmac("sha512", $request, trim($ipn_secret)); if (!hash_equals($hmac, $_SERVER['HTTP_HMAC'])) { $this->edie("HMAC signature does not match."); }
$amount1 = floatval($request->amount1); //IN USD $amount2 = floatval($request->amount2); //IN BTC
$status = intval($request->status);
if ($amount1 < $order_total) { $this->edie("Amount is lesser than order total"); }
if ($status >= 100 || $status == 2) { // Payment is complete $payment->status = 'accepted'; $payment->save(); } die("IPN OK"); }
public function coinPayment(Request $request){ $user = auth('customer')->user(); $number = Number::find($request->number_id); if (!$number) return response()->json(['status'=>'failed','message' => trans('Number not found')]);
$numberReq = new NumberRequest(); $numberReq->admin_id = $number->admin_id; $numberReq->customer_id = $user->id; $numberReq->number_id = $number->id; $numberReq->save();
$settings = json_decode(get_settings('payment_gateway')); $private_key = isset($settings->private_key)?$settings->private_key:''; $public_key = isset($settings->public_key)?$settings->public_key:'';
$cps_api = new \CoinpaymentsAPI($private_key, $public_key,'json');
// Enter amount for the transaction $settings = json_decode(get_settings('local_setting')); $currency1=isset($settings->currency_code)?$settings->currency_code:'USD'; $currency2=isset($request->coin_payment_type)?strtoupper($request->coin_payment_type):'BTC';
// Enter buyer email below $amount = $number->sell_price;
$url= route('paymentgateway::number.coin.payment'); $userName= $user->full_name; $userEmail= $user->email; $itemName= $number->number;
$data=[ 'amount'=>$amount, 'currency1'=>$currency1, 'currency2'=>$currency2, 'buyer_name'=>$userName, 'buyer_email'=>$userEmail, 'item_name'=>$itemName, 'ipn_url'=>$url, ];
$transaction_response = $cps_api->CreateCustomTransaction($data);
if ($transaction_response['error'] == 'ok') {
if(isset($transaction_response['result']) && isset($transaction_response['result']['txn_id'])) { $numberReq->transaction_id = $transaction_response['result']['txn_id']; $numberReq->save(); }
$status_url = isset($transaction_response['result']) && isset($transaction_response['result']['status_url']) ? $transaction_response['result']['status_url'] : ''; $responseAmount=isset($transaction_response['result']) && isset($transaction_response['result']['amount'])?$transaction_response['result']['amount']:'';
$data=[ 'status_url'=>$status_url, 'amount'=>$responseAmount, 'currency'=>$currency2, ]; return response()->json(['status'=>'success', 'data'=>$data]); } else { throw new \Exception($transaction_response['error']); return response()->json(['status'=>'failed', 'message'=>$transaction_response['error']]); } }
public function topUpSsl(Request $request){ DB::beginTransaction();
try { if(!$request->value_a || !$request->value_b){ return abort(404); } $topUpRequest=TopUpRequest::where('id', $request->value_b)->first(); if($topUpRequest){ //Credit Added in customer $customer = Customer::where('id', $topUpRequest->customer_id)->firstOrFail(); $wallet = $customer->wallet()->first(); $maskingPreCredit = $wallet->masking_credit;
$nonMaskingPreCredit = $wallet->non_masking_credit; $whatsappPreCredit = $wallet->whatsapp_credit; if ($topUpRequest->credit_type == 'masking') { $wallet->masking_credit = $maskingPreCredit + $topUpRequest->credit; $wallet->save(); } else if ($topUpRequest->credit_type == 'whatsapp') { $wallet->whatsapp_credit = $whatsappPreCredit + $topUpRequest->whatsapp_credit; $wallet->save(); } else if ($topUpRequest->credit_type == 'non_masking') { $wallet->non_masking_credit = $nonMaskingPreCredit + $topUpRequest->credit; $wallet->save(); }
$topUpRequest->payment_status='paid'; $topUpRequest->status = 'approved'; $topUpRequest->save();
$seller = Customer::where('id', $customer->admin_id)->first();
if ($customer->added_by !='admin') { $sellerWallet = $seller->wallet()->first(); $maskingCredit = $sellerWallet->masking_credit; $nonMaskingCredit = $sellerWallet->non_masking_credit; $whatsappCredit = $sellerWallet->whatsapp_credit;
$pMaskingCredit = $maskingCredit - $topUpRequest->credit; $pNonMaskingCredit = $nonMaskingCredit - $topUpRequest->credit; $pWhatsappCredit = $whatsappCredit - $topUpRequest->credit; $approvedCredit = 0; if ($topUpRequest->credit_type == 'masking' && $topUpRequest->credit <= $maskingCredit) { $sellerWallet->masking_credit = $pMaskingCredit; $sellerWallet->save(); $approvedCredit = $pMaskingCredit; } else if ($topUpRequest->credit_type == 'whatsapp' && $topUpRequest->credit <= $whatsappCredit) { $sellerWallet->whatsapp_credit = $pWhatsappCredit; $sellerWallet->save(); $approvedCredit = $pWhatsappCredit; } else if ($topUpRequest->credit_type == 'non_masking' && $topUpRequest->credit <= $nonMaskingCredit) { $sellerWallet->non_masking_credit = $pNonMaskingCredit; $sellerWallet->save(); $approvedCredit = $pNonMaskingCredit; } else { throw new \Exception('Low credit, please top-up and try again'); } } } auth('customer')->loginUsingId($customer->id); DB::commit(); return redirect()->route('customer.dashboard')->with('success', 'Congratulations! Top-Up Request Successfully Sent'); } catch (\Throwable $ex) { DB::rollback(); return redirect()->route('customer.dashboard')->withErrors(['fail' => $ex->getMessage()]); } }
public function uddoktapayTopUpSuccess(Request $request){
if(isset($request->product_id) && isset($request->transaction_id)){ $topUpRequest=TopUpRequest::where('id', $request->product_id)->first(); if ($topUpRequest){ $topUpRequest->transaction_id=$request->transaction_id; $topUpRequest->save();
if($request->status && $request->status=='COMPLETED'){ $customer = Customer::where('id', $topUpRequest->customer_id)->firstOrFail(); $wallet = $customer->wallet()->first(); $maskingPreCredit = $wallet->masking_credit;
$nonMaskingPreCredit = $wallet->non_masking_credit; $whatsappPreCredit = $wallet->whatsapp_credit; if ($topUpRequest->credit_type == 'masking') { $wallet->masking_credit = $maskingPreCredit + $topUpRequest->credit; $wallet->save(); }else if ($topUpRequest->credit_type == 'whatsapp') { $wallet->whatsapp_credit = $whatsappPreCredit + $topUpRequest->whatsapp_credit; $wallet->save(); } else if ($topUpRequest->credit_type == 'non_masking') { $wallet->non_masking_credit = $nonMaskingPreCredit + $topUpRequest->credit; $wallet->save(); }
$topUpRequest->payment_status='paid'; $topUpRequest->status = 'approved'; $topUpRequest->save();
$seller = Customer::where('id', $customer->admin_id)->first();
if ($customer->added_by !='admin') { $sellerWallet = $seller->wallet()->first(); $maskingCredit = $sellerWallet->masking_credit; $nonMaskingCredit = $sellerWallet->non_masking_credit;
$pMaskingCredit = $maskingCredit - $topUpRequest->credit; $pNonMaskingCredit = $nonMaskingCredit - $topUpRequest->credit;
$whatsappCredit = $sellerWallet->whatsapp_credit; $pWhatsappCredit = $whatsappCredit - $topUpRequest->credit;
$approvedCredit = 0; if ($topUpRequest->credit_type == 'masking' && $topUpRequest->credit <= $maskingCredit) { $sellerWallet->masking_credit = $pMaskingCredit; $sellerWallet->save(); $approvedCredit = $pMaskingCredit; } else if ($topUpRequest->credit_type == 'whatsapp' && $topUpRequest->credit <= $whatsappCredit) { $sellerWallet->whatsapp_credit = $pWhatsappCredit; $sellerWallet->save(); $approvedCredit = $pWhatsappCredit; } else if ($topUpRequest->credit_type == 'non_masking' && $topUpRequest->credit <= $nonMaskingCredit) { $sellerWallet->non_masking_credit = $pNonMaskingCredit; $sellerWallet->save(); $approvedCredit = $pNonMaskingCredit; } else { throw new \Exception('Low credit, please top-up and try again'); } // Credit Minus $creditHistory = new CreditHistory(); $creditHistory->credit = '-'.$approvedCredit; $creditHistory->user_id = $seller->id; $creditHistory->ref_id = $sellerWallet->id; $creditHistory->ref = 'Request Approved by ' . ucfirst(str_replace('_', '-', $seller->type)); $creditHistory->save(); }
$creditHistory = new CreditHistory(); $creditHistory->credit = '+'.$topUpRequest->credit; $creditHistory->user_id = $topUpRequest->customer_id; $creditHistory->ref_id = $wallet->id; $creditHistory->ref = 'Top-Up Request Approved'; $creditHistory->save(); } } } return redirect()->route('customer.dashboard')->with('success', 'Congratulations! Top-Up Request Successfully Sent'); }
public function processPaystackPayment(Request $request){ DB::beginTransaction(); try { if (isset($request->topup_req) && isset($request->trxref)) { $topUpRequest = TopUpRequest::where('id', $request->product_id)->first(); if ($topUpRequest) { $topUpRequest->transaction_id = $request->transaction_id; $topUpRequest->save();
$customer = Customer::where('id', $topUpRequest->customer_id)->firstOrFail(); $wallet = $customer->wallet()->first(); $maskingPreCredit = $wallet->masking_credit;
$nonMaskingPreCredit = $wallet->non_masking_credit; $whatsappPreCredit = $wallet->whatsapp_credit; if ($topUpRequest->credit_type == 'masking') { $wallet->masking_credit = $maskingPreCredit + $topUpRequest->credit; $wallet->save(); } else if ($topUpRequest->credit_type == 'whatsapp') { $wallet->whatsapp_credit = $whatsappPreCredit + $topUpRequest->whatsapp_credit; $wallet->save(); } else if ($topUpRequest->credit_type == 'non_masking') { $wallet->non_masking_credit = $nonMaskingPreCredit + $topUpRequest->credit; $wallet->save(); }
$topUpRequest->transaction_id = $request->trxref; $topUpRequest->payment_status = 'paid'; $topUpRequest->status = 'approved'; $topUpRequest->save();
$seller = Customer::where('id', $customer->admin_id)->first();
if ($customer->added_by != 'admin') { $sellerWallet = $seller->wallet()->first(); $maskingCredit = $sellerWallet->masking_credit; $nonMaskingCredit = $sellerWallet->non_masking_credit;
$pMaskingCredit = $maskingCredit - $topUpRequest->credit; $pNonMaskingCredit = $nonMaskingCredit - $topUpRequest->credit;
$whatsappCredit = $sellerWallet->whatsapp_credit; $pWhatsappCredit = $whatsappCredit - $topUpRequest->credit;
$approvedCredit = 0; if ($topUpRequest->credit_type == 'masking' && $topUpRequest->credit <= $maskingCredit) { $sellerWallet->masking_credit = $pMaskingCredit; $sellerWallet->save(); $approvedCredit = $pMaskingCredit; } else if ($topUpRequest->credit_type == 'whatsapp' && $topUpRequest->credit <= $whatsappCredit) { $sellerWallet->whatsapp_credit = $pWhatsappCredit; $sellerWallet->save(); $approvedCredit = $pWhatsappCredit; } else if ($topUpRequest->credit_type == 'non_masking' && $topUpRequest->credit <= $nonMaskingCredit) { $sellerWallet->non_masking_credit = $pNonMaskingCredit; $sellerWallet->save(); $approvedCredit = $pNonMaskingCredit; } else { throw new \Exception('Low credit, please top-up and try again'); } // Credit Minus $creditHistory = new CreditHistory(); $creditHistory->credit = '-' . $approvedCredit; $creditHistory->user_id = $seller->id; $creditHistory->ref_id = $sellerWallet->id; $creditHistory->ref = 'Request Approved by ' . ucfirst(str_replace('_', '-', $seller->type)); $creditHistory->save(); }
$creditHistory = new CreditHistory(); $creditHistory->credit = '+' . $topUpRequest->credit; $creditHistory->user_id = $topUpRequest->customer_id; $creditHistory->ref_id = $wallet->id; $creditHistory->ref = 'Top-Up Request Approved'; $creditHistory->save();
} } DB::commit(); return redirect()->route('customer.dashboard')->with('success', 'Congratulations! Top-Up Request Successfully Sent'); }catch(\Exception $ex){ DB::rollback(); return redirect()->route('customer.dashboard')->withErrors(['failed', $ex->getMessage()]); } } }
|