authorizenet_cc.php
来自「this the oscommerce 3.0 aplha 4」· PHP 代码 · 共 361 行 · 第 1/2 页
PHP
361 行
} return $confirmation; } function process_button() { global $osC_CreditCard; $fields = osc_draw_hidden_field('authorizenet_cc_owner', $osC_CreditCard->getOwner()) . osc_draw_hidden_field('authorizenet_cc_expires_month', $osC_CreditCard->getExpiryMonth()) . osc_draw_hidden_field('authorizenet_cc_expires_year', $osC_CreditCard->getExpiryYear()) . osc_draw_hidden_field('authorizenet_cc_number', $osC_CreditCard->getNumber()); if (MODULE_PAYMENT_AUTHORIZENET_CC_VERIFY_WITH_CVC == '1') { $fields .= osc_draw_hidden_field('authorizenet_cc_cvc', $osC_CreditCard->getCVC()); } return $fields; } function process() { global $osC_Database, $messageStack, $osC_Customer, $osC_Language, $osC_Currencies, $osC_ShoppingCart, $osC_CreditCard; $this->_verifyData(); $this->_order_id = osC_Order::insert(); $params = array('x_version' => '3.1', 'x_delim_data' => 'TRUE', 'x_delim_char' => ',', 'x_encap_char' => '"', 'x_relay_response' => 'FALSE', 'x_login' => MODULE_PAYMENT_AUTHORIZENET_CC_LOGIN_ID, 'x_tran_key' => MODULE_PAYMENT_AUTHORIZENET_CC_TRANSACTION_KEY, 'x_amount' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()), 'x_currency_code' => $osC_Currencies->getCode(), 'x_method' => 'CC', 'x_card_num' => $osC_CreditCard->getNumber(), 'x_exp_date' => $osC_CreditCard->getExpiryMonth() . $osC_CreditCard->getExpiryYear(), 'x_type' => 'AUTH_ONLY', 'x_first_name' => $osC_ShoppingCart->getBillingAddress('firstname'), 'x_last_name' => $osC_ShoppingCart->getBillingAddress('lastname'), 'x_company' => $osC_ShoppingCart->getBillingAddress('company'), 'x_address' => $osC_ShoppingCart->getBillingAddress('street_address'), 'x_city' => $osC_ShoppingCart->getBillingAddress('city'), 'x_state' => $osC_ShoppingCart->getBillingAddress('state'), 'x_zip' => $osC_ShoppingCart->getBillingAddress('postcode'), 'x_country' => $osC_ShoppingCart->getBillingAddress('country_iso_code_2'), 'x_cust_id' => $osC_Customer->getID(), 'x_customer_ip' => osc_get_ip_address(), 'x_invoice_num' => $this->_order_id, 'x_email' => $osC_Customer->getEmailAddress(), 'x_email_customer' => 'FALSE', 'x_ship_to_first_name' => $osC_ShoppingCart->getShippingAddress('firstname'), 'x_ship_to_last_name' => $osC_ShoppingCart->getShippingAddress('lastname'), 'x_ship_to_company' => $osC_ShoppingCart->getShippingAddress('company'), 'x_ship_to_address' => $osC_ShoppingCart->getShippingAddress('street_address'), 'x_ship_to_city' => $osC_ShoppingCart->getShippingAddress('city'), 'x_ship_to_state' => $osC_ShoppingCart->getShippingAddress('state'), 'x_ship_to_zip' => $osC_ShoppingCart->getShippingAddress('postcode'), 'x_ship_to_country' => $osC_ShoppingCart->getShippingAddress('country_iso_code_2')); if (ACCOUNT_TELEPHONE > -1) { $params['x_phone'] = $osC_ShoppingCart->getBillingAddress('telephone_number'); } if (MODULE_PAYMENT_AUTHORIZENET_CC_VERIFY_WITH_CVC == '1') { $params['x_card_code'] = $osC_CreditCard->getCVC(); } if (MODULE_PAYMENT_AUTHORIZENET_CC_TRANSACTION_TEST_MODE == '1') { $params['x_test_request'] = 'TRUE'; } $post_string = ''; foreach ($params as $key => $value) { $post_string .= $key . '=' . urlencode(trim($value)) . '&'; } $post_string = substr($post_string, 0, -1); $this->_transaction_response = $this->sendTransactionToGateway($this->_gateway_url, $post_string); if (empty($this->_transaction_response) === false) { $regs = preg_split("/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/", $this->_transaction_response); foreach ($regs as $key => $value) { $regs[$key] = substr($value, 1, -1); // remove double quotes } } else { $regs = array('-1', '-1', '-1'); } $error = false; if ($regs[0] == '1') { if (!osc_empty(MODULE_PAYMENT_AUTHORIZENET_CC_MD5_HASH)) { if (strtoupper($regs[37]) != strtoupper(md5(MODULE_PAYMENT_AUTHORIZENET_CC_MD5_HASH . MODULE_PAYMENT_AUTHORIZENET_CC_LOGIN_ID . $regs[6] . $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode())))) { $error = $osC_Language->get('payment_authorizenet_cc_error_general'); } } } else { switch ($regs[2]) { case '7': $error = $osC_Language->get('payment_authorizenet_cc_error_invalid_expiration_date'); break; case '8': $error = $osC_Language->get('payment_authorizenet_cc_error_expired'); break; case '17': case '28': $error = $osC_Language->get('payment_authorizenet_cc_error_unknown_card'); break; default: $error = $osC_Language->get('payment_authorizenet_cc_error_general'); break; } } if ($error === false) { osC_Order::process($this->_order_id, $this->order_status); $Qtransaction = $osC_Database->query('insert into :table_orders_transactions_history (orders_id, transaction_code, transaction_return_value, transaction_return_status, date_added) values (:orders_id, :transaction_code, :transaction_return_value, :transaction_return_status, now())'); $Qtransaction->bindTable(':table_orders_transactions_history', TABLE_ORDERS_TRANSACTIONS_HISTORY); $Qtransaction->bindInt(':orders_id', $this->_order_id); $Qtransaction->bindInt(':transaction_code', 1); $Qtransaction->bindValue(':transaction_return_value', $this->_transaction_response); $Qtransaction->bindInt(':transaction_return_status', 1); $Qtransaction->execute(); } else { osC_Order::remove($this->_order_id); $messageStack->add_session('checkout_payment', $error, 'error'); osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&authorizenet_cc_owner=' . $osC_CreditCard->getOwner() . '&authorizenet_cc_expires_month=' . $osC_CreditCard->getExpiryMonth() . '&authorizenet_cc_expires_year=' . $osC_CreditCard->getExpiryYear() . (MODULE_PAYMENT_AUTHORIZENET_CC_VERIFY_WITH_CVC == '1' ? '&authorizenet_cc_cvc=' . $osC_CreditCard->getCVC() : ''), 'SSL')); } } function _verifyData() { global $osC_Language, $messageStack, $osC_CreditCard; $osC_CreditCard = new osC_CreditCard($_POST['authorizenet_cc_number'], $_POST['authorizenet_cc_expires_month'], $_POST['authorizenet_cc_expires_year']); $osC_CreditCard->setOwner($_POST['authorizenet_cc_owner']); if (MODULE_PAYMENT_AUTHORIZENET_CC_VERIFY_WITH_CVC == '1') { $osC_CreditCard->setCVC($_POST['authorizenet_cc_cvc']); } if (($result = $osC_CreditCard->isValid(MODULE_PAYMENT_AUTHORIZENET_CC_ACCEPTED_TYPES)) !== true) { $error = ''; switch ($result) { case -2: $error = $osC_Language->get('payment_authorizenet_cc_error_invalid_expiration_date'); break; case -3: $error = $osC_Language->get('payment_authorizenet_cc_error_expired'); break; case -5: $error = $osC_Language->get('payment_authorizenet_cc_error_not_accepted'); break; default: $error = $osC_Language->get('payment_authorizenet_cc_error_general'); break; } $messageStack->add_session('checkout_payment', $error, 'error'); osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&authorizenet_cc_owner=' . $osC_CreditCard->getOwner() . '&authorizenet_cc_expires_month=' . $osC_CreditCard->getExpiryMonth() . '&authorizenet_cc_expires_year=' . $osC_CreditCard->getExpiryYear() . (MODULE_PAYMENT_AUTHORIZENET_CC_VERIFY_WITH_CVC == '1' ? '&authorizenet_cc_cvc=' . $osC_CreditCard->getCVC() : ''), 'SSL')); } } }?>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?