⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.94
Server IP:
178.33.27.10
Server:
Linux cpanel.dev-unit.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Server Software:
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
PHP Version:
8.2.11
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
id
/
hrms.dev-unit.com
/
app
/
Http
/
Controllers
/
View File Name :
AuthorizeNetController.php
<?php namespace App\Http\Controllers; use App\Models\Coupon; use App\Models\Order; use App\Models\Plan; use App\Models\UserCoupon; use App\Models\Utility; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Log; use net\authorize\api\contract\v1 as AnetAPI; use net\authorize\api\controller as AnetController; class AuthorizeNetController extends Controller { public function planPayWithAuthorizeNet(Request $request) { $payment_setting = Utility::getAdminPaymentSetting(); $currency = isset($payment_setting['currency']) ? $payment_setting['currency'] : 'USD'; $planID = \Illuminate\Support\Facades\Crypt::decrypt($request->plan_id); $plan = Plan::find($planID); $authuser = Auth::user(); $coupon_id = ''; if($plan) { $net = $plan->price; $price = intval($net); if (isset($request->coupon) && !empty($request->coupon)) { $coupons = Coupon::where('code', strtoupper($request->coupon))->where('is_active', '1')->first(); if(!empty($coupons)) { $usedCoupun = $coupons->used_coupon(); $discount_value = ($plan->price / 100) * $coupons->discount; $price = $plan->price - $discount_value; if($coupons->limit == $usedCoupun) { return redirect()->back()->with('error', __('This coupon code has expired.')); } } else{ return redirect()->back()->with('error', __('This coupon code is invalid or has expired.')); } } if($price <= 0) { $authuser->plan = $plan->id; $authuser->save(); $assignPlan = $authuser->assignPlan($plan->id); if ($assignPlan['is_success'] == true && !empty($plan)) { if (!empty($authuser->payment_subscription_id) && $authuser->payment_subscription_id != '') { try { $authuser->cancel_subscription($authuser->id); } catch (\Exception $exception) { Log::debug($exception->getMessage()); } } $orderID = strtoupper(str_replace('.', '', uniqid('', true))); $userCoupon = new UserCoupon(); $userCoupon->user = $authuser->id; $userCoupon->coupon = $coupons->id; $userCoupon->order = $orderID; $userCoupon->save(); Order::create( [ 'order_id' => $orderID, 'name' => null, 'email' => null, 'card_number' => null, 'card_exp_month' => null, 'card_exp_year' => null, 'plan_name' => $plan->name, 'plan_id' => $plan->id, 'price' => $price == null ? 0 : $price, 'price_currency' => isset($payment_setting['currency']) && !empty($payment_setting['currency']) ? $payment_setting['currency'] : 'USD', 'txn_id' => '', 'payment_type' => 'Authorizenet', 'payment_status' => 'success', 'receipt' => null, 'user_id' => $authuser->id, ] ); $assignPlan = $authuser->assignPlan($plan->id); return redirect()->route('plans.index')->with('success', __('Plan Successfully Activated')); } } try { $data = [ 'id' => $plan->id, 'amount' => $price, 'coupon' => $request->coupon, ]; $data = json_encode($data); return view('AuthorizeNet.request', compact('plan', 'price', 'data', 'currency')); } catch (\Exception $e) { return redirect()->back()->with('error', $e); } } else{ return redirect()->route('plans.index')->with('error', __('Plan is deleted.')); } } public function planGetAuthorizeNetStatus(Request $request) { $input = $request->all(); $admin_settings = Utility::getAdminPaymentSetting(); $data = json_decode($input['data'], true); $amount = $data['amount']; $plan = Plan::find($data['id']); $authuser = Auth::user(); $orderID = strtoupper(str_replace('.', '', uniqid('', true))); $admin_currancy = isset($admin_settings['currency']) ? $admin_settings['currency'] : 'USD'; try { $merchantAuthentication = new AnetAPI\MerchantAuthenticationType(); $merchantAuthentication->setName($admin_settings['authorizenet_merchant_login_id']); $merchantAuthentication->setTransactionKey($admin_settings['authorizenet_merchant_transaction_key']); $refId = 'ref' . time(); // Create the payment data for a credit card $creditCard = new AnetAPI\CreditCardType(); $creditCard->setCardNumber($input['cardNumber']); $creditCard->setExpirationDate($input['year'] . '-' . $input['month']); $creditCard->setCardCode($input['cvv']); $paymentOne = new AnetAPI\PaymentType(); $paymentOne->setCreditCard($creditCard); // Create a TransactionRequestType object and add the previous objects to it $transactionRequestType = new AnetAPI\TransactionRequestType(); $transactionRequestType->setTransactionType("authCaptureTransaction"); $transactionRequestType->setAmount($amount); $transactionRequestType->setPayment($paymentOne); // Assemble the complete transaction request $requestNet = new AnetAPI\CreateTransactionRequest(); $requestNet->setMerchantAuthentication($merchantAuthentication); $requestNet->setRefId($refId); $requestNet->setTransactionRequest($transactionRequestType); } catch (\Exception $e) { return redirect()->route('plans.index')->with('error', __('something Went wrong!')); } $controller = new AnetController\CreateTransactionController($requestNet); if (!empty($admin_settings['authorizenet_mode']) && $admin_settings['authorizenet_mode'] == 'live') { $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::PRODUCTION); // change SANDBOX to PRODUCTION in live mode } else { $response = $controller->executeWithApiResponse(\net\authorize\api\constants\ANetEnvironment::SANDBOX); // change SANDBOX to PRODUCTION in live mode } if ($response != null) { if ($response->getMessages()->getResultCode() == "Ok") { $tresponse = $response->getTransactionResponse(); if ($tresponse != null && $tresponse->getMessages() != null) { $order = new Order(); $order->order_id = $orderID; $order->name = $authuser->name; $order->card_number = ''; $order->card_exp_month = ''; $order->card_exp_year = ''; $order->plan_name = $plan->name; $order->plan_id = $plan->id; $order->price = $amount; $order->price_currency = $admin_currancy; $order->txn_id = $orderID; $order->payment_type = 'Authorizenet'; $order->payment_status = 'success'; $order->receipt = ''; $order->user_id = $authuser->id; $order->save(); if (isset($data['coupon']) && $data['coupon']) { $coupons = Coupon::where('code', strtoupper($data['coupon']))->where('is_active', '1')->first(); if (!empty($coupons)) { $userCoupon = new UserCoupon(); $userCoupon->user = $authuser->id; $userCoupon->coupon = $coupons->id; $userCoupon->order = $orderID; $userCoupon->save(); $usedCoupun = $coupons->used_coupon(); if ($coupons->limit <= $usedCoupun) { $coupons->is_active = 0; $coupons->save(); } } } $assignPlan = $authuser->assignPlan($plan->id); Utility::referralTransaction($plan); if ($assignPlan['is_success']) { return redirect()->route('plans.index')->with('success', __('Plan activated Successfully!')); } else { return redirect()->route('plans.index')->with('error', __($assignPlan['error'])); } if ($tresponse->getErrors() != null) { return redirect()->route('plans.index')->with('error', __('Transaction Failed!')); } } } else { $tresponse = $response->getTransactionResponse(); if ($tresponse != null && $tresponse->getErrors() != null) { return redirect()->route('plans.index')->with('error', __('Transaction Failed!')); } else { return redirect()->route('plans.index')->with('error', __('No reponse returned!')); } } } else { return redirect()->route('plans.index')->with('error', __('No reponse returned!')); } } }