diff --git a/frontend/payments/paypal-cancel.php b/frontend/payments/paypal-cancel.php deleted file mode 100644 index 52fc9bd74..000000000 --- a/frontend/payments/paypal-cancel.php +++ /dev/null @@ -1,171 +0,0 @@ - $value) { - if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1) { - $value = urlencode(stripslashes($value)); - } else { - $value = urlencode($value); - } - $req .= "&$key=$value"; -} - - -// Post IPN data back to PayPal to validate the IPN data is genuine -// Without this step anyone can fake IPN data -if(USE_SANDBOX == true) { - $paypal_url = "https://www.sandbox.paypal.com/cgi-bin/webscr"; -} -else { - $paypal_url = "https://www.paypal.com/cgi-bin/webscr"; -} - -$ch = curl_init($paypal_url); -if ($ch == FALSE) { - return FALSE; -} - - -curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); -curl_setopt($ch, CURLOPT_POST, 1); -curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); -curl_setopt($ch, CURLOPT_POSTFIELDS, $req); -curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); -curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); -curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); - -if(DEBUG == true) { - curl_setopt($ch, CURLOPT_HEADER, 1); - curl_setopt($ch, CURLINFO_HEADER_OUT, 1); -} - - - -// CONFIG: Optional proxy configuration -//curl_setopt($ch, CURLOPT_PROXY, $proxy); -//curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); -// Set TCP timeout to 30 seconds -curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); -curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close')); -// CONFIG: Please download 'cacert.pem' from "http://curl.haxx.se/docs/caextract.html" and set the directory path -// of the certificate as shown below. Ensure the file is readable by the webserver. -// This is mandatory for some environments. -//$cert = __DIR__ . "./cacert.pem"; -//curl_setopt($ch, CURLOPT_CAINFO, $cert); -$res = curl_exec($ch); -if (curl_errno($ch) != 0) // cURL error - { - if(DEBUG == true) { - error_log(date('[Y-m-d H:i e] '). "Can't connect to PayPal to validate IPN message: " . curl_error($ch) . PHP_EOL, 3, LOG_FILE); - } - curl_close($ch); - exit; -} -else { - // Log the entire HTTP response if debug is switched on. - if(DEBUG == true) { - error_log(date('[Y-m-d H:i e] '). "HTTP request of validation request:". curl_getinfo($ch, CURLINFO_HEADER_OUT) ." for IPN payload: $req" . PHP_EOL, 3, LOG_FILE); - error_log(date('[Y-m-d H:i e] '). "HTTP response of validation request: $res" . PHP_EOL, 3, LOG_FILE); - } - curl_close($ch); -} - - - -// Inspect IPN validation result and act accordingly -// Split response headers and payload, a better way for strcmp -$tokens = explode("\r\n\r\n", trim($res)); -$res = trim(end($tokens)); -if (strcmp ($res, "VERIFIED") == 0) { - // assign posted variables to local variables - $item_name = $_POST['item_name']; - $item_number = $_POST['item_number']; - $payment_status = $_POST['payment_status']; - $payment_amount = $_POST['mc_gross']; - $payment_currency = $_POST['mc_currency']; - $txn_id = $_POST['txn_id']; - $receiver_email = $_POST['receiver_email']; - $payer_email = $_POST['payer_email']; - - include("DBController.php"); - $db = new DBController(); - - // check whether the payment_status is Completed - $isPaymentCompleted = false; - if($payment_status == "Completed") { - $isPaymentCompleted = true; - } - // check that txn_id has not been previously processed - $isUniqueTxnId = false; - $param_type="s"; - $param_value_array = array($txn_id); - $result = $db->runQuery("SELECT * FROM payment WHERE txn_id = ?",$param_type,$param_value_array); - if(empty($result)) { - $isUniqueTxnId = true; - } - // check that receiver_email is your PayPal email - // check that payment_amount/payment_currency are correct - if($isPaymentCompleted) { - $param_type = "sssdss"; - $param_value_array = array($item_number, $item_name, $payment_status, $payment_amount, $payment_currency, $txn_id); - $payment_id = $db->insert("INSERT INTO payment(item_number, item_name, payment_status, payment_amount, payment_currency, txn_id) VALUES(?, ?, ?, ?, ?, ?)", $param_type, $param_value_array); - - } - // process payment and mark item as paid. - - - if(DEBUG == true) { - error_log(date('[Y-m-d H:i e] '). "Verified IPN: $req ". PHP_EOL, 3, LOG_FILE); - } - -} -else if (strcmp ($res, "INVALID") == 0) { - // log for manual investigation - // Add business logic here which deals with invalid IPN messages - if(DEBUG == true) { - error_log(date('[Y-m-d H:i e] '). "Invalid IPN: $req" . PHP_EOL, 3, LOG_FILE); - } -} - - -?> \ No newline at end of file diff --git a/frontend/payments/paypal-pay.php b/frontend/payments/paypal-pay.php deleted file mode 100644 index 52fc9bd74..000000000 --- a/frontend/payments/paypal-pay.php +++ /dev/null @@ -1,171 +0,0 @@ - $value) { - if($get_magic_quotes_exists == true && get_magic_quotes_gpc() == 1) { - $value = urlencode(stripslashes($value)); - } else { - $value = urlencode($value); - } - $req .= "&$key=$value"; -} - - -// Post IPN data back to PayPal to validate the IPN data is genuine -// Without this step anyone can fake IPN data -if(USE_SANDBOX == true) { - $paypal_url = "https://www.sandbox.paypal.com/cgi-bin/webscr"; -} -else { - $paypal_url = "https://www.paypal.com/cgi-bin/webscr"; -} - -$ch = curl_init($paypal_url); -if ($ch == FALSE) { - return FALSE; -} - - -curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1); -curl_setopt($ch, CURLOPT_POST, 1); -curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); -curl_setopt($ch, CURLOPT_POSTFIELDS, $req); -curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1); -curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2); -curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); - -if(DEBUG == true) { - curl_setopt($ch, CURLOPT_HEADER, 1); - curl_setopt($ch, CURLINFO_HEADER_OUT, 1); -} - - - -// CONFIG: Optional proxy configuration -//curl_setopt($ch, CURLOPT_PROXY, $proxy); -//curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); -// Set TCP timeout to 30 seconds -curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); -curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: Close')); -// CONFIG: Please download 'cacert.pem' from "http://curl.haxx.se/docs/caextract.html" and set the directory path -// of the certificate as shown below. Ensure the file is readable by the webserver. -// This is mandatory for some environments. -//$cert = __DIR__ . "./cacert.pem"; -//curl_setopt($ch, CURLOPT_CAINFO, $cert); -$res = curl_exec($ch); -if (curl_errno($ch) != 0) // cURL error - { - if(DEBUG == true) { - error_log(date('[Y-m-d H:i e] '). "Can't connect to PayPal to validate IPN message: " . curl_error($ch) . PHP_EOL, 3, LOG_FILE); - } - curl_close($ch); - exit; -} -else { - // Log the entire HTTP response if debug is switched on. - if(DEBUG == true) { - error_log(date('[Y-m-d H:i e] '). "HTTP request of validation request:". curl_getinfo($ch, CURLINFO_HEADER_OUT) ." for IPN payload: $req" . PHP_EOL, 3, LOG_FILE); - error_log(date('[Y-m-d H:i e] '). "HTTP response of validation request: $res" . PHP_EOL, 3, LOG_FILE); - } - curl_close($ch); -} - - - -// Inspect IPN validation result and act accordingly -// Split response headers and payload, a better way for strcmp -$tokens = explode("\r\n\r\n", trim($res)); -$res = trim(end($tokens)); -if (strcmp ($res, "VERIFIED") == 0) { - // assign posted variables to local variables - $item_name = $_POST['item_name']; - $item_number = $_POST['item_number']; - $payment_status = $_POST['payment_status']; - $payment_amount = $_POST['mc_gross']; - $payment_currency = $_POST['mc_currency']; - $txn_id = $_POST['txn_id']; - $receiver_email = $_POST['receiver_email']; - $payer_email = $_POST['payer_email']; - - include("DBController.php"); - $db = new DBController(); - - // check whether the payment_status is Completed - $isPaymentCompleted = false; - if($payment_status == "Completed") { - $isPaymentCompleted = true; - } - // check that txn_id has not been previously processed - $isUniqueTxnId = false; - $param_type="s"; - $param_value_array = array($txn_id); - $result = $db->runQuery("SELECT * FROM payment WHERE txn_id = ?",$param_type,$param_value_array); - if(empty($result)) { - $isUniqueTxnId = true; - } - // check that receiver_email is your PayPal email - // check that payment_amount/payment_currency are correct - if($isPaymentCompleted) { - $param_type = "sssdss"; - $param_value_array = array($item_number, $item_name, $payment_status, $payment_amount, $payment_currency, $txn_id); - $payment_id = $db->insert("INSERT INTO payment(item_number, item_name, payment_status, payment_amount, payment_currency, txn_id) VALUES(?, ?, ?, ?, ?, ?)", $param_type, $param_value_array); - - } - // process payment and mark item as paid. - - - if(DEBUG == true) { - error_log(date('[Y-m-d H:i e] '). "Verified IPN: $req ". PHP_EOL, 3, LOG_FILE); - } - -} -else if (strcmp ($res, "INVALID") == 0) { - // log for manual investigation - // Add business logic here which deals with invalid IPN messages - if(DEBUG == true) { - error_log(date('[Y-m-d H:i e] '). "Invalid IPN: $req" . PHP_EOL, 3, LOG_FILE); - } -} - - -?> \ No newline at end of file