} $echoPHP->set_EchoServer("https://wwws.echo-inc.com/scripts/INR200.EXE"); $echoPHP->set_merchant_echo_id($EchoAccount); $echoPHP->set_merchant_pin($EchoPin); $echoPHP->set_grand_total($plg_amount); $echoPHP->set_billing_phone($phone); $echoPHP->set_billing_address1($address1); $echoPHP->set_billing_address2($address2); $echoPHP->set_billing_city($city); $echoPHP->set_billing_state($state); $echoPHP->set_billing_zip($zip); $echoPHP->set_billing_country($country); $echoPHP->set_billing_email($email); $echoPHP->set_billing_ip_address($REMOTE_ADDR); $echoPHP->set_order_type("S"); $echoPHP->set_cnp_recurring("Y"); if ($dep_Type == "CreditCard") { $echoPHP->set_billing_first_name($firstName); $echoPHP->set_billing_last_name($lastName); $echoPHP->set_cc_number($creditCard); $echoPHP->set_ccexp_month($expMonth); $echoPHP->set_ccexp_year($expYear); $echoPHP->set_transaction_type("EV"); // $echoPHP->set_cnp_security(3333); // The three-digit MasterCard (CVC2) or VISA (CVV2) or the four-digit Discover (CID) // or AMEX card-not-present security code. } else { // check payment info if supplied... $echoPHP->set_ec_bank_name($bankName); $echoPHP->set_ec_first_name($firstName); $echoPHP->set_ec_last_name(lastName); $echoPHP->set_ec_address1($address1);
function cc_bill($cc_info, $member, $amount, $currency, $product_description, $charge_type, $invoice, $payment) { global $config; $log = array(); //////////////////////// cc_bill ///////////////////////// $echoPHP = new EchoPHP(); $echoPHP->set_EchoServer("https://wwws.echo-inc.com/scripts/INR200.EXE"); $echoPHP->set_order_type("S"); $echoPHP->set_merchant_echo_id($this->config['merchant_id']); // use your own id here $echoPHP->set_merchant_pin($this->config['pin']); // use your own pin here $echoPHP->set_billing_phone($cc_info['cc_phone']); $echoPHP->set_billing_first_name($cc_info['cc_name_f']); $echoPHP->set_billing_last_name($cc_info['cc_name_l']); $echoPHP->set_billing_address1($cc_info['cc_street']); $echoPHP->set_billing_city($cc_info['cc_city']); $echoPHP->set_billing_state($cc_info['cc_state']); $echoPHP->set_billing_zip($cc_info['cc_zip']); $echoPHP->set_billing_country($cc_info['cc_country']); $echoPHP->set_billing_phone($cc_info['cc_phone']); $echoPHP->set_billing_email($member['email']); $echoPHP->set_cc_number($cc_info['cc_number']); $echoPHP->set_ccexp_month(substr($cc_info['cc-expire'], 0, 2)); $echoPHP->set_ccexp_year(substr($cc_info['cc-expire'], 2, 2)); $echoPHP->set_counter($echoPHP->getRandomCounter()); switch ($charge_type) { case CC_CHARGE_TYPE_TEST: $echoPHP->set_transaction_type("AD"); $echoPHP->set_billing_ip_address($_SERVER['REMOTE_ADDR']); $echoPHP->set_cnp_security($cc_info['cc_code']); break; default: $echoPHP->set_transaction_type("EV"); $echoPHP->set_grand_total($amount); if ($charge_type != CC_CHARGE_TYPE_RECURRING) { $echoPHP->set_billing_ip_address($_SERVER['REMOTE_ADDR']); $echoPHP->set_cnp_security($cc_info['cc_code']); } else { $echoPHP->set_cnp_recurring('Y'); } } $x = $echoPHP->getURLData(); $x = str_replace($cc_info['cc_number'], $cc_info['cc'], $x); $x = str_replace('cnp_security=' . $cc_info['cc_code'], 'cnp_security=' . preg_replace('/./', '*', $cc_info['cc_code']) . '&', $x); $x = preg_replace('/(merchant_pin\\=)(\\d+)/', '\\1********', $x); parse_str($x, $x); $log[] = $x; $ECHO_ERROR = !$echoPHP->Submit(); // find out reply and parse it preg_match('/<ECHOTYPE3>(.+?)<\\/ECHOTYPE3>/', $echoPHP->EchoResponse, $regs); preg_match_all('/<(.+?)>(.+?)<\\/(.+?)>/', $regs[1], $matches); $res = array(); foreach ($matches[1] as $k => $fname) { $res[$fname] = $matches[2][$k]; } $log[] = $res; if ($ECHO_ERROR) { if ($echoPHP->decline_code == "1013") { return array(CC_RESULT_INTERNAL_ERROR, "Configuration error: Your ECHO-ID or PIN is missing from this form, or is not setup correctly. Check if you can login with your ECHO-ID and PIN to <a href=\"https://wwws.echo-inc.com/Review\">Transaction Review</a>.", "", $log); } else { return array(CC_RESULT_DECLINE_PERM, "Verification of your account FAILED", "", $log); } } else { return array(CC_RESULT_SUCCESS, "", $echoPHP->get_order_number(), $log); } }