· 2 years ago · Dec 27, 2022, 08:20 AM
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 }