Esempio n. 1
0
 function after_process()
 {
     global $_GET;
     $data = '';
     if (isset($_POST['Status'])) {
         $_GET = $_POST;
     }
     foreach ($_GET as $key => $value) {
         $data .= $key . ': ' . "\n";
         $data .= $value . "\n\n";
     }
     tep_db_query('INSERT INTO payment_log (type, data, date) VALUES ("icepay", "' . $data . '", NOW())');
     tep_db_query('DELETE FROM payment_log WHERE date < DATE_SUB(NOW(), INTERVAL 30 DAY)');
     switch ($_GET["Status"]) {
         case "OK":
             if ($order->info['order_status'] == MODULE_PAYMENT_ICEPAY_ORDER_STATUS_ID || $order->info['order_status'] == MODULE_PAYMENT_ICEPAY_OPEN_ORDER_STATUS_ID) {
                 send_order_mail($_GET['OrderID']);
             }
             tep_db_query('UPDATE orders SET orders_status = "' . MODULE_PAYMENT_ICEPAY_SUCCESS_ORDER_STATUS_ID . '" WHERE orders_id = "' . $_GET['OrderID'] . '"');
             break;
         case "OPEN":
             //send_order_mail($_GET['OrderID']);
             tep_db_query('UPDATE orders SET orders_status = "' . MODULE_PAYMENT_ICEPAY_OPEN_ORDER_STATUS_ID . '" WHERE orders_id = "' . $_GET['OrderID'] . '"');
             break;
         case "ERR":
             tep_db_query('UPDATE orders SET orders_status = "' . MODULE_PAYMENT_ICEPAY_CANCELLED_ORDER_STATUS_ID . '" WHERE orders_id = "' . $_GET['OrderID'] . '"');
             send_order_error_mail(Translate('Icepay betaling geannuleerd voor bestelling') . ': ' . $_GET['OrderID'], sprintf(Translate('De betaling voor bestelling %s is geannuleerd.'), $_GET['OrderID']));
             tep_redirect(tep_href_link(FILENAME_CHECKOUT_ERROR, '', 'SSL'));
             break;
         case "REFUND":
             tep_db_query('UPDATE orders SET orders_status = "' . MODULE_PAYMENT_ICEPAY_REFUND_ORDER_STATUS_ID . '" WHERE orders_id = "' . $_GET['OrderID'] . '"');
             send_order_error_mail(Translate('Icepay terugbetaling voor bestelling') . ': ' . $_GET['OrderID'], sprintf(Translate('De betaling voor bestelling %s is terugbetaald.'), $_GET['OrderID']));
             tep_redirect(tep_href_link(FILENAME_CHECKOUT_ERROR, '', 'SSL'));
             break;
         case "CBACK":
             tep_db_query('UPDATE orders SET orders_status = "' . MODULE_PAYMENT_ICEPAY_CHARGEBACK_ORDER_STATUS_ID . '" WHERE orders_id = "' . $_GET['OrderID'] . '"');
             send_order_error_mail(Translate('Icepay terugboeking voor bestelling') . ': ' . $_GET['OrderID'], sprintf(Translate('Voor bestelling %s is een terugboeking aangevraagd.'), $_GET['OrderID']));
             tep_redirect(tep_href_link(FILENAME_CHECKOUT_ERROR, '', 'SSL'));
             break;
         case "VALIDATE":
             tep_db_query('UPDATE orders SET orders_status = 29 WHERE orders_id = "' . $_GET['OrderID'] . '"');
             send_order_error_mail(Translate('Wachten op Icepay validatie') . ': ' . $_GET['OrderID'], sprintf(Translate('Voor bestelling %s wordt nog op validatie gewacht.'), $_GET['OrderID']));
             tep_redirect(tep_href_link(FILENAME_CHECKOUT_ERROR, '', 'SSL'));
             break;
     }
     if (isset($_POST['Status'])) {
         die;
     }
     return false;
 }
Esempio n. 2
0
 function after_confirm()
 {
     global $temp_orders_id;
     if (isset($_GET['tx'])) {
         $temp_data = Checkout::get_all_data_from_temp_db($temp_orders_id);
         //get all orders data
         if ($_GET['tx'] == 'canceled') {
             $_GET['force_checkout_step'] = Checkout::get_step_for_type($this->type);
             $this->errors[$temp_data[$temp_orders_id]['orders']['payment_method']] = Translate('Uw betaling werd geannuleerd.');
         } else {
             tep_db_query('DELETE FROM payment_log WHERE date < DATE_SUB(NOW(), INTERVAL 30 DAY)');
             $req = 'cmd=_notify-synch';
             $tx_token = $_GET['tx'];
             $auth_token = $this->instances[$temp_data[$temp_orders_id]['orders']['payment_method']]['pdt_identy_token'];
             $req .= "&tx={$tx_token}&at={$auth_token}";
             $header = '';
             $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
             $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
             $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
             if ($this->instances[$temp_data[$temp_orders_id]['orders']['payment_method']]['mode'] == 'prod') {
                 $fp = fsockopen('www.paypal.com', 80, $errno, $errstr, 30);
             } else {
                 $fp = fsockopen('www.sandbox.paypal.com', 80, $errno, $errstr, 30);
             }
             if (!$fp) {
                 $data = '';
                 foreach ($_GET as $key => $value) {
                     $data .= urldecode($key) . ': ' . "\n";
                     $data .= urldecode($value) . "\n\n";
                 }
                 $order_id = substr($_GET['cm'], strpos($_GET['cm'], '[-]') + 3);
                 tep_db_query('INSERT INTO payment_log (type, data, date) VALUES ("' . get_class($this) . '", "' . $data . '", NOW())');
                 send_order_error_mail(Translate('Er is iets fout gelopen met paypal bestelling') . ' ' . $order_id, sprintf(Translate('Voor bestelling %s is er een fout gegenereerd! Controleer dit a.u.b. voordat u deze bestelling verder verwerkt.<br />Als u vragen hebt i.v.m. de fout contacteer dan ABO Service!'), $order_id));
             } else {
                 fputs($fp, $header . $req);
                 $res = '';
                 $headerdone = false;
                 while (!feof($fp)) {
                     $line = fgets($fp, 1024);
                     if (strcmp($line, "\r\n") == 0) {
                         $headerdone = true;
                     } else {
                         if ($headerdone) {
                             $res .= $line;
                         }
                     }
                 }
                 $lines = explode("\n", $res);
                 $keyarray = array();
                 $data = '';
                 if (strcmp($lines[0], "SUCCESS") == 0) {
                     for ($i = 1; $i < count($lines); $i++) {
                         list($key, $val) = explode("=", $lines[$i]);
                         $keyarray[urldecode($key)] = urldecode($val);
                         $data .= urldecode($key) . ': ' . "\n";
                         $data .= urldecode($val) . "\n\n";
                     }
                     tep_db_query('INSERT INTO payment_log (type, data, date) VALUES ("' . get_class($this) . '", "' . $data . '", NOW())');
                     if (empty($keyarray['invoice'])) {
                         $order_id = substr($keyarray['custom'], strpos($keyarray['custom'], '[-]') + 3);
                     } else {
                         $order_id = $keyarray['invoice'];
                     }
                     /*COMPLETED OR PROCESSED*/
                     if ($keyarray['payment_status'] == 'Completed' || $keyarray['payment_status'] == 'Processed') {
                         tep_db_query('UPDATE temp_orders SET orders_status = 2 WHERE orders_id = "' . $order_id . '"');
                         /*EXPIRED*/
                     } else {
                         if ($keyarray['payment_status'] == 'Expired') {
                             send_order_error_mail(Translate('Status onzeker paypal bestelling') . ': ' . $order_id, sprintf(Translate('De status voor bestelling %s is onzeker doordat de autorisatie verlopen was op het moment dat de klant terug op de shop kwam.'), $order_id));
                             tep_db_query('UPDATE orders SET orders_status = 53 WHERE orders_id = "' . $order_id . '"');
                             $_GET['force_checkout_step'] = Checkout::get_step_for_type($this->type);
                             $this->errors[$temp_data[$temp_orders_id]['orders']['payment_method']] = Translate('Er is een fout opgetreden bij de betaling. Contacteer ons voor meer info.');
                             /*FAILED*/
                         } else {
                             if ($keyarray['payment_status'] == 'Failed') {
                                 tep_db_query('UPDATE orders SET orders_status = 53 WHERE orders_id = "' . $order_id . '"');
                                 $_GET['force_checkout_step'] = Checkout::get_step_for_type($this->type);
                                 $this->errors[$temp_data[$temp_orders_id]['orders']['payment_method']] = Translate('Er is een fout opgetreden bij de betaling. Contacteer ons voor meer info.');
                                 /*PENDING*/
                             } else {
                                 if ($keyarray['payment_status'] == 'Pending') {
                                     //
                                 }
                             }
                         }
                     }
                 } else {
                     if (strcmp($lines[0], "FAIL") == 0) {
                         for ($i = 1; $i < count($lines); $i++) {
                             list($key, $val) = explode("=", $lines[$i]);
                             $data .= urldecode($key) . ': ' . "\n";
                             $data .= urldecode($val) . "\n\n";
                         }
                         tep_db_query('INSERT INTO payment_log (type, data, date) VALUES ("' . get_class($this) . '", "' . $data . '", NOW())');
                         if (empty($keyarray['invoice'])) {
                             $order_id = substr($keyarray['custom'], strpos($keyarray['custom'], '[-]') + 3);
                         } else {
                             $order_id = $keyarray['invoice'];
                         }
                         send_order_error_mail(Translate('Er is iets fout gelopen met paypal bestelling') . ' ' . $order_id, sprintf(Translate('Voor bestelling %s is er een fout gegenereerd! Controleer dit a.u.b. voordat u deze bestelling verder verwerkt.<br />Als u vragen hebt i.v.m. de fout contacteer dan ABO Service!'), $order_id));
                         $_GET['force_checkout_step'] = Checkout::get_step_for_type($this->type);
                         $this->errors[$temp_data[$temp_orders_id]['orders']['payment_method']] = Translate('Er is een fout opgetreden bij de betaling. Contacteer ons voor meer info.');
                     }
                 }
             }
             fclose($fp);
         }
     }
     return $this->errors;
 }
Esempio n. 3
0
 function after_process()
 {
     global $_GET;
     tep_db_query('DELETE FROM payment_log WHERE date < DATE_SUB(NOW(), INTERVAL 30 DAY)');
     $req = 'cmd=_notify-synch';
     $tx_token = $_GET['tx'];
     $auth_token = PAYPAL_PDT_ID;
     $req .= "&tx={$tx_token}&at={$auth_token}";
     $header = '';
     $header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
     $header .= "Content-Type: application/x-www-form-urlencoded\r\n";
     $header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
     if (MODULE_PAYMENT_PAYPAL_IPN_GATEWAY_SERVER == 'Live') {
         $fp = fsockopen('www.paypal.com', 80, $errno, $errstr, 30);
     } else {
         $fp = fsockopen('www.sandbox.paypal.com', 80, $errno, $errstr, 30);
     }
     if (!$fp) {
         $data = '';
         foreach ($_GET as $key => $value) {
             $data .= urldecode($key) . ': ' . "\n";
             $data .= urldecode($value) . "\n\n";
         }
         $order_id = substr($_GET['cm'], strpos($_GET['cm'], '[-]') + 3);
         tep_db_query('INSERT INTO payment_log (type, data, date) VALUES ("paypal", "' . $data . '", NOW())');
         send_order_error_mail(Translate('Er is iets fout gelopen met paypal bestelling') . ' ' . $order_id, sprintf(Translate('Voor bestelling %s is er een fout gegenereerd! Controleer dit a.u.b. voordat u deze bestelling verder verwerkt.<br />Als u vragen hebt i.v.m. de fout contacteer dan ABO Service!'), $order_id));
     } else {
         fputs($fp, $header . $req);
         $res = '';
         $headerdone = false;
         while (!feof($fp)) {
             $line = fgets($fp, 1024);
             if (strcmp($line, "\r\n") == 0) {
                 $headerdone = true;
             } else {
                 if ($headerdone) {
                     $res .= $line;
                 }
             }
         }
         $lines = explode("\n", $res);
         $keyarray = array();
         $data = '';
         if (strcmp($lines[0], "SUCCESS") == 0) {
             for ($i = 1; $i < count($lines); $i++) {
                 list($key, $val) = explode("=", $lines[$i]);
                 $keyarray[urldecode($key)] = urldecode($val);
                 $data .= urldecode($key) . ': ' . "\n";
                 $data .= urldecode($val) . "\n\n";
             }
             tep_db_query('INSERT INTO payment_log (type, data, date) VALUES ("paypal", "' . $data . '", NOW())');
             if (empty($keyarray['invoice'])) {
                 $order_id = substr($keyarray['custom'], strpos($keyarray['custom'], '[-]') + 3);
             } else {
                 $order_id = $keyarray['invoice'];
             }
             /*COMPLETED OR PROCESSED*/
             if ($keyarray['payment_status'] == 'Completed' || $keyarray['payment_status'] == 'Processed') {
                 send_order_mail($order_id);
                 tep_db_query('UPDATE orders SET orders_status = 1 WHERE orders_id = "' . $order_id . '"');
                 /*EXPIRED*/
             } else {
                 if ($keyarray['payment_status'] == 'Expired') {
                     send_order_mail($order_id);
                     send_order_error_mail(Translate('Status onzeker paypal bestelling') . ': ' . $order_id, sprintf(Translate('De status voor bestelling %s is onzeker doordat de autorisatie verlopen was op het moment dat de klant terug op de shop kwam.'), $order_id));
                     tep_db_query('UPDATE orders SET orders_status = 21 WHERE orders_id = "' . $order_id . '"');
                     tep_redirect(tep_href_link(FILENAME_CHECKOUT_ERROR, '', 'SSL'));
                     /*FAILED*/
                 } else {
                     if ($keyarray['payment_status'] == 'Failed') {
                         tep_db_query('UPDATE orders SET orders_status = 22 WHERE orders_id = "' . $order_id . '"');
                         tep_redirect(tep_href_link(FILENAME_CHECKOUT_ERROR, '', 'SSL'));
                         /*PENDING*/
                     } else {
                         if ($keyarray['payment_status'] == 'Pending') {
                             send_order_mail($order_id);
                             send_order_error_mail(Translate('Afwachten betaling paypal bestelling') . ': ' . $order_id, sprintf(Translate('Voor bestelling %s is de betaling nog niet bevestigd! Controleer dit a.u.b. voordat u deze bestelling verder verwerkt.'), $order_id));
                         }
                     }
                 }
             }
         } else {
             if (strcmp($lines[0], "FAIL") == 0) {
                 for ($i = 1; $i < count($lines); $i++) {
                     list($key, $val) = explode("=", $lines[$i]);
                     $data .= urldecode($key) . ': ' . "\n";
                     $data .= urldecode($val) . "\n\n";
                 }
                 tep_db_query('INSERT INTO payment_log (type, data, date) VALUES ("paypal", "' . $data . '", NOW())');
                 send_order_error_mail(Translate('Er is iets fout gelopen met paypal bestelling') . ' ' . $order_id, sprintf(Translate('Voor bestelling %s is er een fout gegenereerd! Controleer dit a.u.b. voordat u deze bestelling verder verwerkt.<br />Als u vragen hebt i.v.m. de fout contacteer dan ABO Service!'), $order_id));
             }
         }
     }
     fclose($fp);
     return false;
 }