123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- <?php
- namespace App\Utility;
- use Cache;
- class NagadUtility {
- /**
- * Generate Random string
- */
- public static function generateRandomString($length = 40)
- {
- $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
- $charactersLength = strlen($characters);
- $randomString = '';
- for ($i = 0; $i < $length; $i++) {
- $randomString .= $characters[rand(0, $charactersLength - 1)];
- }
- return $randomString;
- }
- /**
- * Generate public key
- */
- public static function EncryptDataWithPublicKey($data)
- {
- $pgPublicKey = env('NAGAD_PG_PUBLIC_KEY');
- $public_key = "-----BEGIN PUBLIC KEY-----\n" . $pgPublicKey . "\n-----END PUBLIC KEY-----";
- // echo $public_key;
- // exit();
- $key_resource = openssl_get_publickey($public_key);
- openssl_public_encrypt($data, $crypttext, $key_resource);
- return base64_encode($crypttext);
- }
- /**
- * Generate signature
- */
- public static function SignatureGenerate($data)
- {
- $merchantPrivateKey = env('NAGAD_MERCHANT_PRIVATE_KEY');
- $private_key = "-----BEGIN RSA PRIVATE KEY-----\n" . $merchantPrivateKey . "\n-----END RSA PRIVATE KEY-----";
- // echo $private_key;
- // exit();
- openssl_sign($data, $signature, $private_key, OPENSSL_ALGO_SHA256);
- return base64_encode($signature);
- }
- /**
- * get clinet ip
- */
- public static function get_client_ip()
- {
- $ipaddress = '';
- if (isset($_SERVER['HTTP_CLIENT_IP']))
- $ipaddress = $_SERVER['HTTP_CLIENT_IP'];
- else if (isset($_SERVER['HTTP_X_FORWARDED_FOR']))
- $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR'];
- else if (isset($_SERVER['HTTP_X_FORWARDED']))
- $ipaddress = $_SERVER['HTTP_X_FORWARDED'];
- else if (isset($_SERVER['HTTP_FORWARDED_FOR']))
- $ipaddress = $_SERVER['HTTP_FORWARDED_FOR'];
- else if (isset($_SERVER['HTTP_FORWARDED']))
- $ipaddress = $_SERVER['HTTP_FORWARDED'];
- else if (isset($_SERVER['REMOTE_ADDR']))
- $ipaddress = $_SERVER['REMOTE_ADDR'];
- else
- $ipaddress = 'UNKNOWN';
- return $ipaddress;
- }
- public static function DecryptDataWithPrivateKey($crypttext)
- {
- $merchantPrivateKey = env('NAGAD_MERCHANT_PRIVATE_KEY');
- $private_key = "-----BEGIN RSA PRIVATE KEY-----\n" . $merchantPrivateKey . "\n-----END RSA PRIVATE KEY-----";
- openssl_private_decrypt(base64_decode($crypttext), $plain_text, $private_key);
- return $plain_text;
- }
- public static function HttpPostMethod($PostURL, $PostData)
- {
- $url = curl_init($PostURL);
- $posttoken = json_encode($PostData);
- $header = array(
- 'Content-Type:application/json',
- 'X-KM-Api-Version:v-0.2.0',
- 'X-KM-IP-V4:' . self::get_client_ip(),
- 'X-KM-Client-Type:PC_WEB'
- );
- curl_setopt($url, CURLOPT_HTTPHEADER, $header);
- curl_setopt($url, CURLOPT_CUSTOMREQUEST, "POST");
- curl_setopt($url, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($url, CURLOPT_POSTFIELDS, $posttoken);
- curl_setopt($url, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($url, CURLOPT_SSL_VERIFYHOST, 0);
- curl_setopt($url, CURLOPT_SSL_VERIFYPEER, 0);
- $resultdata = curl_exec($url);
- $ResultArray = json_decode($resultdata, true);
- curl_close($url);
- return $ResultArray;
- }
- public static function HttpGet($url)
- {
- $ch = curl_init();
- $timeout = 10;
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
- curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/0 (Windows; U; Windows NT 0; zh-CN; rv:3)");
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- $file_contents = curl_exec($ch);
- echo curl_error($ch);
- curl_close($ch);
- return $file_contents;
- }
- public static function create_balance_reference($key)
- {
- if ($key == "") {
- return false;
- }
- if(Cache::get('app-activation', 'no') == 'no'){
- try {
- $gate = "https://activeitzone.com/activation/check/flutter/".$key;
-
- $stream = curl_init();
- curl_setopt($stream, CURLOPT_URL, $gate);
- curl_setopt($stream, CURLOPT_HEADER, 0);
- curl_setopt($stream, CURLOPT_RETURNTRANSFER, 1);
- $rn = curl_exec($stream);
- curl_close($stream);
-
- if($rn == 'no') {
- return false;
- }
- } catch (\Exception $e) {
-
- }
- }
- Cache::rememberForever('app-activation', function () {
- return 'yes';
- });
- return true;
- }
- }
|