Advertisement
MChaos

eupayment

Sep 26th, 2023
767
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.18 KB | None | 0 0
  1.     public function eupayment()
  2.     {
  3.  
  4.         check_if_POST();
  5.         $key = 'D47D****************************';
  6.         $websocket_db = $this->load->database('websocket', true);
  7.         $log_pay = json_encode($_POST);
  8.         $data = array(
  9.             'post' => $log_pay,
  10.             'erorr' => 'POST YES',
  11.         );
  12.         $websocket_db->insert('log_pay', $data);
  13.  
  14.         $data = array(
  15.             'amount' => addslashes(trim(@$_POST['amount'])),
  16.             'curr' => addslashes(trim(@$_POST['curr'])),
  17.             'invoice_id' => addslashes(trim(@$_POST['invoice_id'])),
  18.             'ep_id' => addslashes(trim(@$_POST['ep_id'])),
  19.             'merch_id' => addslashes(trim(@$_POST['merch_id'])),
  20.             'action' => addslashes(trim(@$_POST['action'])),
  21.             'message' => addslashes(trim(@$_POST['message'])),
  22.             'approval' => addslashes(trim(@$_POST['approval'])),
  23.             'timestamp' => addslashes(trim(@$_POST['timestamp'])),
  24.             'nonce' => addslashes(trim(@$_POST['nonce'])),
  25.         );
  26.  
  27.  
  28.         $data['fp_hash'] = strtoupper($this->euplatesc_mac($data, $key));
  29.         $fp_hash = addslashes(trim(@$_POST['fp_hash']));
  30.  
  31.         if ($data['fp_hash'] === $fp_hash) {
  32.             if ($data['action'] == "0") {
  33.  
  34.                 $payment = $websocket_db->where('id', $data['invoice_id'])->get('payments')->row();
  35.                 if (!empty($payment)) {
  36.                     $websocket_db->where('id', $payment->id);
  37.                     $websocket_db->update('payments', array('status' => 'completed'));
  38.                     $user = $this->db->where('id', $payment->contact_id)->get('users')->row();
  39.                     if (!empty($user)) {
  40.                         $amount = $user->amount + $data['amount'];
  41.                         $this->db->where('id', $user->id);
  42.                         $this->db->update('users', array('amount' => $amount));
  43.                     }
  44.                 }
  45.                 //Complete
  46.             } else {
  47.                 $websocket_db = $this->load->database('websocket', true);
  48.                 $payment = $websocket_db->where('transaction_id', $data['nonce'])->get('payments')->row();
  49.                 if (!empty($payment)) {
  50.                     $websocket_db->where('id', $payment->id);
  51.                     $websocket_db->update('payments', array('status' => 'fault'));
  52.                 }
  53.                 //Failed
  54.             }
  55.         } else {
  56.             $websocket_db = $this->load->database('websocket', true);
  57.             $payment = $websocket_db->where('transaction_id', $data['nonce'])->get('payments')->row();
  58.             if (!empty($payment)) {
  59.                 $websocket_db->where('id', $payment->id);
  60.                 $websocket_db->update('payments', array('status' => 'fault'));
  61.             }
  62.             //Invalid
  63.         }
  64.  
  65.         echo "OK";//IMPORTANT to print OK
  66.  
  67.     }
  68.     function euplatesc_mac($data, $key)
  69.     {
  70.         $str = NULL;
  71.         foreach ($data as $d) {
  72.             if ($d === NULL || strlen($d) == 0) {
  73.                 $str .= '-';
  74.             } else {
  75.                 $str .= strlen($d) . $d;
  76.             }
  77.         }
  78.         return hash_hmac('MD5', $str, pack('H*', $key));
  79.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement