codigo actual del servidor, con avances de joan
This commit is contained in:
154
app/Utility/NagadUtility.php
Normal file
154
app/Utility/NagadUtility.php
Normal file
@@ -0,0 +1,154 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user