function espresso_process_moneris_hpp($payment_data) { do_action('action_hook_espresso_log', __FILE__, __FUNCTION__, ''); if (!class_exists('EE_Moneris_HPP')) { event_espresso_require_gateway('moneris_hpp/EE_Moneris_HPP.class.php'); } $EE_Moneris_HPP = new EE_Moneris_HPP(); $EE_Moneris_HPP->ipnLog = FALSE; // TRUE FALSE // if TXN mode = Development, Debug or anything other than Production if ($EE_Moneris_HPP->settings['moneris_hpp_txn_mode'] != 'prod') { $EE_Moneris_HPP->enableTestMode(); } // printr( $_POST, '$_POST <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' ); // SEE BELOW FOR SAMPLE POST RESPONSE $payment_data['txn_type'] = 'Moneris Hosted Pay Page'; $payment_data['txn_id'] = 0; $payment_data['payment_status'] = 'Incomplete'; $payment_data['txn_details'] = serialize($_REQUEST); // printr( $payment_data, '$payment_data <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' ); if ($EE_Moneris_HPP->validateIpn()) { // printr( $EE_Moneris_HPP->ipnData, '$EE_Moneris_HPP->ipnData <br /><span style="font-size:10px;font-weight:normal;">' . __FILE__ . '<br />line no: ' . __LINE__ . '</span>', 'auto' ); $payment_data['txn_details'] = serialize($EE_Moneris_HPP->ipnData); $payment_data['txn_id'] = $EE_Moneris_HPP->ipnData['bank_transaction_id']; $totals_match = (double) $EE_Moneris_HPP->ipnData['charge_total'] == (double) $payment_data['total_cost'] ? TRUE : FALSE; $txn_approved = (int) $EE_Moneris_HPP->ipnData['response_code'] <= 50 ? TRUE : FALSE; $log_entry = 'response_order_id = ' . $EE_Moneris_HPP->ipnData['response_order_id'] . ', & '; $log_entry .= 'charge_total = ' . $EE_Moneris_HPP->ipnData['charge_total'] . ', & '; $log_entry .= 'total_cost = ' . $payment_data['total_cost'] . ', & '; $log_entry .= 'response_code = ' . $EE_Moneris_HPP->ipnData['response_code']; $EE_Moneris_HPP->moneris_hpp_log($log_entry); if ($totals_match && $txn_approved) { $payment_data['payment_status'] = 'Completed'; $payment_data['txn_id'] = $EE_Moneris_HPP->ipnData['bank_transaction_id']; if ($EE_Moneris_HPP->testMode) { // For this, we'll just email ourselves ALL the data as plain text output. $subject = 'Instant Payment Notification - Gateway Variable Dump'; $body = "An instant payment notification was successfully recieved\n"; $body .= "from " . $EE_Moneris_HPP->ipnData['email'] . " on " . date('Y-m-d'); $body .= " at " . date('g:i A') . "\n\nDetails:\n"; foreach ($EE_Moneris_HPP->ipnData as $key => $value) { $body .= "\n{$key}: {$value}\n"; } wp_mail($payment_data['contact'], $subject, $body); } } else { $subject = 'Instant Payment Notification - Gateway Variable Dump'; $body = "An instant payment notification failed\n"; $body .= "from " . $EE_Moneris_HPP->ipnData['email'] . " on " . date('Y-m-d'); $body .= " at " . date('g:i A') . "\n\nDetails:\n"; foreach ($EE_Moneris_HPP->ipnData as $key => $value) { $body .= "\n{$key}: {$value}\n"; } wp_mail($payment_data['contact'], $subject, $body); } } add_action('action_hook_espresso_email_after_payment', 'espresso_email_after_payment'); return $payment_data; }