Advertisement
MChaos

paynet_callback

Dec 27th, 2022
998
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.68 KB | None | 0 0
  1.     public function paynet_callback()
  2.     {
  3.  
  4.         if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  5.  
  6.  
  7.             $paymentInfo = file_get_contents('php://input');
  8.             $paymentObj = json_decode($paymentInfo);
  9.  
  10.             $order = $this->db->where('ExternalID',$paymentObj->Payment->ExternalId)->get('orders')->row();
  11.             $rest_id = json_decode($order->shipping);
  12.             foreach($rest_id as $key => $value)
  13.             {
  14.                 $rest_id = $key;
  15.                 break;
  16.             }
  17.  
  18.             require_once(realpath('application') . '/libraries/paynet/paynet/PaynetAPI.php');
  19.             if ($rest_id == 9){
  20.                 require_once(realpath('application') . '/libraries/paynet/paynet/PaynetConfigBoutique.php');
  21.             } elseif($rest_id == 8) {
  22.                 require_once(realpath('application') . '/libraries/paynet/paynet/PaynetConfig.php');
  23.             } else {
  24.                 require_once(realpath('application') . '/libraries/paynet/paynet/PaynetConfigGastroPub.php');
  25.             }
  26.             $api = new PaynetEcomAPI(MERCHANT_CODE, MERCHANT_SEC_KEY, MERCHANT_USER, MERCHANT_USER_PASS);
  27. //------------------------ get an input stream -----------------------------
  28.  
  29.             $data = array(
  30.                 'order_id' => 'paymentInfo',
  31.                 'response' => $paymentInfo,
  32.                 'date' => date("Y-m-d H:i:s")
  33.             );
  34.             $this->db->insert('paynet_logs', $data);
  35.  
  36.             if (!$paymentObj) {
  37.                 $data = array(
  38.                     'order_id' => 'error paymentObj',
  39.                     'response' => $paymentInfo,
  40.                     'date' => date("Y-m-d H:i:s")
  41.                 );
  42.                 $this->db->insert('paynet_logs', $data);
  43.                 return;
  44.             }
  45.             if ($paymentObj->EventType !== 'PAID') {
  46.                 $data = array(
  47.                     'order_id' => 'NOT SUCCESS EventType',
  48.                     'response' => $paymentInfo,
  49.                     'date' => date("Y-m-d H:i:s")
  50.                 );
  51.                 $this->db->insert('paynet_logs', $data);
  52.                 return;
  53.             }
  54.             $checkObj = $api->PaymentGet($paymentObj->Payment->ExternalId);
  55.  
  56.             if ($checkObj->IsOk()) {
  57.                 if ($checkObj->Data[0]['Status'] !== 4) {
  58.                     $data = array(
  59.                         'order_id' => 'The payment status is not complete. Please wait and try again !!!',
  60.                         'response' => $paymentInfo,
  61.                         'date' => date("Y-m-d H:i:s")
  62.                     );
  63.                     $this->db->insert('paynet_logs', $data);
  64.                     return;
  65.                 } else {
  66.                     $data = array(
  67.                         'order_id' => 'The payment has confirmed',
  68.                         'response' => $paymentInfo,
  69.                         'date' => date("Y-m-d H:i:s")
  70.                     );
  71.                     $this->db->insert('paynet_logs', $data);
  72.                     $paymentInfo = json_decode($paymentInfo);
  73.                     $this->db->where('ExternalID', $paymentInfo->Payment->ExternalId);
  74.                     $this->db->update('orders', array('payments'=>1));
  75.  
  76.                     //------------- Send success info !
  77.                     $this->send_success_info($paymentInfo->Payment->ExternalId);
  78.  
  79.                 }
  80.                 //------------- here you can confirm your transaction !
  81.  
  82.             }
  83.         } else {
  84.  
  85.             $data = array(
  86.                 'response' => 'error',
  87.                     'date' => date("Y-m-d H:i:s")
  88.         );
  89.             $this->db->insert('paynet_logs', $data);
  90.             throw_on_404();
  91.         }
  92.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement