[TEP-COMMIT] [CVS catalog] New Credit card administration functionality
anonymous-OfajU3CKLf1/[email protected] 12 May 2004 19:35:00 -0000
| Newsgroups | gmane.comp.web.oscommerce.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit in catalog/catalog on MAIN
includes/database_tables.php +1 1.3 -> 1.4
includes/classes/cc_validation.php 1.3 removed
includes/functions/general.php +26 1.239 -> 1.240
includes/modules/payment/authorizenet.php +35 -30 1.51 -> 1.52
/cc.php +21 -25 1.56 -> 1.57
/ipayment.php +35 -38 1.37 -> 1.38
/pm2checkout.php +28 -32 1.22 -> 1.23
/psigate.php +26 -30 1.20 -> 1.21
install/oscommerce.sql +18 1.97 -> 1.98
+190 -155
1 removed + 8 modified, total 9 files
New Credit card administration functionality
----------
catalog /catalog /includes
database_tables.php 1.3 -> 1.4
diff -u -r1.3 -r1.4
--- database_tables.php 2004/04/15 16:05:35 1.3
+++ database_tables.php 2004/05/12 19:34:32 1.4
@@ -22,6 +22,7 @@
define('TABLE_COUNTER', DB_TABLE_PREFIX . 'counter');
define('TABLE_COUNTER_HISTORY', DB_TABLE_PREFIX . 'counter_history');
define('TABLE_COUNTRIES', DB_TABLE_PREFIX . 'countries');
+ define('TABLE_CREDIT_CARDS', DB_TABLE_PREFIX . 'credit_cards');
define('TABLE_CURRENCIES', DB_TABLE_PREFIX . 'currencies');
define('TABLE_CUSTOMERS', DB_TABLE_PREFIX . 'customers');
define('TABLE_CUSTOMERS_BASKET', DB_TABLE_PREFIX . 'customers_basket');
----------
catalog /catalog /includes /classes
cc_validation.php removed after 1.3
diff -N cc_validation.php
--- /tmp/cvsAAA7naacB Wed May 12 21:34:34 2004
+++ /dev/null Wed May 12 21:34:34 2004
@@ -1,86 +0,0 @@
-<?php
-/*
- $Id$
-
- osCommerce, Open Source E-Commerce Solutions
- http://www.oscommerce.com
-
- Copyright (c) 2003 osCommerce
-
- Released under the GNU General Public License
-*/
-
- class cc_validation {
- var $cc_type, $cc_number, $cc_expiry_month, $cc_expiry_year;
-
- function validate($number, $expiry_m, $expiry_y) {
- $this->cc_number = ereg_replace('[^0-9]', '', $number);
-
- if (ereg('^4[0-9]{12}([0-9]{3})?$', $this->cc_number)) {
- $this->cc_type = 'Visa';
- } elseif (ereg('^5[1-5][0-9]{14}$', $this->cc_number)) {
- $this->cc_type = 'Master Card';
- } elseif (ereg('^3[47][0-9]{13}$', $this->cc_number)) {
- $this->cc_type = 'American Express';
- } elseif (ereg('^3(0[0-5]|[68][0-9])[0-9]{11}$', $this->cc_number)) {
- $this->cc_type = 'Diners Club';
- } elseif (ereg('^6011[0-9]{12}$', $this->cc_number)) {
- $this->cc_type = 'Discover';
- } elseif (ereg('^(3[0-9]{4}|2131|1800)[0-9]{11}$', $this->cc_number)) {
- $this->cc_type = 'JCB';
- } elseif (ereg('^5610[0-9]{12}$', $this->cc_number)) {
- $this->cc_type = 'Australian BankCard';
- } else {
- return -1;
- }
-
- if (is_numeric($expiry_m) && ($expiry_m > 0) && ($expiry_m < 13)) {
- $this->cc_expiry_month = $expiry_m;
- } else {
- return -2;
- }
-
- $current_year = date('Y');
- $expiry_y = substr($current_year, 0, 2) . $expiry_y;
- if (is_numeric($expiry_y) && ($expiry_y >= $current_year) && ($expiry_y <= ($current_year + 10))) {
- $this->cc_expiry_year = $expiry_y;
- } else {
- return -3;
- }
-
- if ($expiry_y == $current_year) {
- if ($expiry_m < date('n')) {
- return -4;
- }
- }
-
- return $this->is_valid();
- }
-
- function is_valid() {
- $cardNumber = strrev($this->cc_number);
- $numSum = 0;
-
- for ($i=0; $i<strlen($cardNumber); $i++) {
- $currentNum = substr($cardNumber, $i, 1);
-
-// Double every second digit
- if ($i % 2 == 1) {
- $currentNum *= 2;
- }
-
-// Add digits of 2-digit numbers together
- if ($currentNum > 9) {
- $firstNum = $currentNum % 10;
- $secondNum = ($currentNum - $firstNum) / 10;
- $currentNum = $firstNum + $secondNum;
- }
-
- $numSum += $currentNum;
- }
-
-// If the total has no remainder it's OK
- return ($numSum % 10 == 0);
- }
- }
-?>
\ No newline at end of file
----------
catalog /catalog /includes /functions
general.php 1.239 -> 1.240
diff -u -r1.239 -r1.240
--- general.php 2004/04/13 08:10:15 1.239
+++ general.php 2004/05/12 19:34:34 1.240
@@ -1347,4 +1347,30 @@
}
return $valid_address;
}
+
+ function tep_validate_credit_card($card_number) {
+ $cardNumber = strrev($card_number);
+ $numSum = 0;
+
+ for ($i=0; $i<strlen($cardNumber); $i++) {
+ $currentNum = substr($cardNumber, $i, 1);
+
+// Double every second digit
+ if ($i % 2 == 1) {
+ $currentNum *= 2;
+ }
+
+// Add digits of 2-digit numbers together
+ if ($currentNum > 9) {
+ $firstNum = $currentNum % 10;
+ $secondNum = ($currentNum - $firstNum) / 10;
+ $currentNum = $firstNum + $secondNum;
+ }
+
+ $numSum += $currentNum;
+ }
+
+// If the total has no remainder it's OK
+ return ($numSum % 10 == 0);
+ }
?>
----------
catalog /catalog /includes /modules /payment
authorizenet.php 1.51 -> 1.52
diff -u -r1.51 -r1.52
--- authorizenet.php 2004/02/13 11:38:45 1.51
+++ authorizenet.php 2004/05/12 19:34:36 1.52
@@ -160,10 +160,26 @@
for ($i=$today['year']; $i < $today['year']+10; $i++) {
$expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
}
+
+ $Qcredit_cards = $osC_Database->query('select credit_card_name, credit_card_code from :table_credit_cards where credit_card_status = :credit_card_status');
+
+ $Qcredit_cards->bindRaw(':table_credit_cards', TABLE_CREDIT_CARDS);
+ $Qcredit_cards->bindInt(':credit_card_status', '1');
+ $Qcredit_cards->setCache('credit-cards');
+ $Qcredit_cards->execute();
+
+ while ($Qcredit_cards->next()) {
+ $credit_cards[] = array('id' => $Qcredit_cards->value('credit_card_code'), 'text' => $Qcredit_cards->value('credit_card_name'));
+ }
+
+ $Qcredit_cards->freeResult();
+
$selection = array('id' => $this->code,
'module' => $this->title,
'fields' => array(array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_CREDIT_CARD_OWNER,
'field' => tep_draw_input_field('authorizenet_cc_owner', $order->billing['firstname'] . ' ' . $order->billing['lastname'])),
+ array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_TYPE,
+ 'field' => tep_draw_pull_down_menu('authorizenet_cc_type', $credit_cards)),
array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_CREDIT_CARD_NUMBER,
'field' => tep_draw_input_field('authorizenet_cc_number')),
array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_CREDIT_CARD_EXPIRES,
@@ -171,8 +187,7 @@
} else { // eCheck
$acct_types = array(array('id' => 'CHECKING', 'text' => MODULE_PAYMENT_AUTHORIZENET_TEXT_BANK_ACCT_TYPE_CHECK),
array('id' => 'SAVINGS', 'text' => MODULE_PAYMENT_AUTHORIZENET_TEXT_BANK_ACCT_TYPE_SAVINGS));
- $org_types = array(array('id' => 'I', 'text' => MODULE_PAYMENT_AUTHORIZENET_TEXT_BANK_ACCT_ORG_PERSONAL),
- array('id' => 'B', 'text' => MODULE_PAYMENT_AUTHORIZENET_TEXT_BANK_ACCT_ORG_BUSINESS));
+
$fields = array(array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_BANK_ACCT_NAME,
'field' => tep_draw_input_field('authorizenet_bank_owner', $order->billing['firstname'] . ' ' . $order->billing['lastname'])),
array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_BANK_ACCT_TYPE,
@@ -185,6 +200,9 @@
'field' => tep_draw_input_field('authorizenet_bank_acct')));
if (MODULE_PAYMENT_AUTHORIZENET_WELLSFARGO == 'Yes') { // Add extra fields
+ $org_types = array(array('id' => 'I', 'text' => MODULE_PAYMENT_AUTHORIZENET_TEXT_BANK_ACCT_ORG_PERSONAL),
+ array('id' => 'B', 'text' => MODULE_PAYMENT_AUTHORIZENET_TEXT_BANK_ACCT_ORG_BUSINESS));
+
$fields_wf = array(array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_WF_ORG,
'field' => tep_draw_pull_down_menu('wellsfargo_org_type', $org_types)),
array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_WF_INTRO,
@@ -206,41 +224,28 @@
return $selection;
}
+
function pre_confirmation_check() {
+ global $messageStack;
+
if (PHP_VERSION < 4.1) {
global $_POST;
}
if (MODULE_PAYMENT_AUTHORIZENET_METHOD == 'Credit Card') {
- include(DIR_WS_CLASSES . 'cc_validation.php');
+ if (!tep_validate_credit_card($_POST['ipayment_cc_number'])) {
+ $messageStack->add_session('checkout_payment', TEXT_CCVAL_ERROR_INVALID_NUMBER, 'error');
- $cc_validation = new cc_validation();
- $result = $cc_validation->validate($_POST['authorizenet_cc_number'], $_POST['authorizenet_cc_expires_month'], $_POST['authorizenet_cc_expires_year']);
- $error = '';
- switch ($result) {
- case -1:
- $error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4));
- break;
- case -2:
- case -3:
- case -4:
- $error = TEXT_CCVAL_ERROR_INVALID_DATE;
- break;
- case false:
- $error = TEXT_CCVAL_ERROR_INVALID_NUMBER;
- break;
- }
-
- if ( ($result == false) || ($result < 1) ) {
$payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&authorizenet_cc_owner=' . urlencode($_POST['authorizenet_cc_owner']) . '&authorizenet_cc_expires_month=' . $_POST['authorizenet_cc_expires_month'] . '&authorizenet_cc_expires_year=' . $_POST['authorizenet_cc_expires_year'];
- tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false));
- }
+ tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL'));
+ }
- $this->cc_card_type = $cc_validation->cc_type;
- $this->cc_card_number = $cc_validation->cc_number;
- $this->cc_expiry_month = $cc_validation->cc_expiry_month;
- $this->cc_expiry_year = $cc_validation->cc_expiry_year;
+ $this->cc_card_owner = $_POST['ipayment_cc_owner'];
+ $this->cc_card_type = $_POST['authorizenet_cc_type'];
+ $this->cc_card_number = $_POST['authorizenet_cc_number'];
+ $this->cc_expiry_month = $_POST['authorizenet_cc_expires_month'];
+ $this->cc_expiry_year = $_POST['authorizenet_cc_expires_year'];
}
}
@@ -252,11 +257,11 @@
if (MODULE_PAYMENT_AUTHORIZENET_METHOD == 'Credit Card') {
$confirmation = array('title' => $this->title . ': ' . $this->cc_card_type,
'fields' => array(array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_CREDIT_CARD_OWNER,
- 'field' => $_POST['authorizenet_cc_owner']),
+ 'field' => $this->cc_card_owner),
array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_CREDIT_CARD_NUMBER,
'field' => substr($this->cc_card_number, 0, 4) . str_repeat('X', (strlen($this->cc_card_number) - 8)) . substr($this->cc_card_number, -4)),
array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_CREDIT_CARD_EXPIRES,
- 'field' => strftime('%B, %Y', mktime(0,0,0,$_POST['authorizenet_cc_expires_month'], 1, '20' . $_POST['authorizenet_cc_expires_year'])))));
+ 'field' => strftime('%B, %Y', mktime(0,0,0,$this->cc_expiry_month, 1, '20' . $this->cc_expiry_year)))));
} else { // eCheck
$fields = array(array('title' => MODULE_PAYMENT_AUTHORIZENET_TEXT_BANK_ACCT_NAME,
'field' => $_POST['authorizenet_bank_owner']),
@@ -344,7 +349,7 @@
'x_ship_to_state' => $order->delivery['state'],
'x_ship_to_zip' => $order->delivery['postcode'],
'x_ship_to_country' => $order->delivery['country']['title'],
- 'x_Customer_IP' => getenv('REMOTE_ADDR'));
+ 'x_Customer_IP' => tep_get_ip_address());
$gw_vars = array_merge($gw_common, $gw_pay_type);
return $gw_vars;
----------
catalog /catalog /includes /modules /payment
cc.php 1.56 -> 1.57
diff -u -r1.56 -r1.57
--- cc.php 2003/12/04 23:12:53 1.56
+++ cc.php 2004/05/12 19:34:36 1.57
@@ -71,21 +71,36 @@
}
function selection() {
- global $order;
+ global $order, $osC_Database;
for ($i=1; $i<13; $i++) {
$expires_month[] = array('id' => sprintf('%02d', $i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000)));
}
- $today = getdate();
+ $today = getdate();
for ($i=$today['year']; $i < $today['year']+10; $i++) {
$expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
}
+ $Qcredit_cards = $osC_Database->query('select credit_card_name, credit_card_code from :table_credit_cards where credit_card_status = :credit_card_status');
+
+ $Qcredit_cards->bindRaw(':table_credit_cards', TABLE_CREDIT_CARDS);
+ $Qcredit_cards->bindInt(':credit_card_status', '1');
+ $Qcredit_cards->setCache('credit-cards');
+ $Qcredit_cards->execute();
+
+ while ($Qcredit_cards->next()) {
+ $credit_cards[] = array('id' => $Qcredit_cards->value('credit_card_code'), 'text' => $Qcredit_cards->value('credit_card_name'));
+ }
+
+ $Qcredit_cards->freeResult();
+
$selection = array('id' => $this->code,
'module' => $this->title,
'fields' => array(array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_OWNER,
'field' => tep_draw_input_field('cc_owner', $order->billing['firstname'] . ' ' . $order->billing['lastname'])),
+ array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_TYPE,
+ 'field' => tep_draw_pull_down_menu('cc_type', $credit_cards)),
array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_NUMBER,
'field' => tep_draw_input_field('cc_number')),
array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_EXPIRES,
@@ -101,36 +116,17 @@
global $_POST;
}
- include(DIR_WS_CLASSES . 'cc_validation.php');
-
- $cc_validation = new cc_validation();
- $result = $cc_validation->validate($_POST['cc_number'], $_POST['cc_expires_month'], $_POST['cc_expires_year']);
-
- $error = '';
- switch ($result) {
- case -1:
- $error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4));
- break;
- case -2:
- case -3:
- case -4:
- $error = TEXT_CCVAL_ERROR_INVALID_DATE;
- break;
- case false:
- $error = TEXT_CCVAL_ERROR_INVALID_NUMBER;
- break;
- }
- if ( ($result == false) || ($result < 1) ) {
- $messageStack->add_session('checkout_payment', $error, 'error');
+ if (!tep_validate_credit_card($_POST['cc_number'])) {
+ $messageStack->add_session('checkout_payment', TEXT_CCVAL_ERROR_INVALID_NUMBER, 'error');
$payment_error_return = 'cc_owner=' . urlencode($_POST['cc_owner']) . '&cc_expires_month=' . urlencode($_POST['cc_expires_month']) . '&cc_expires_year=' . urlencode($_POST['cc_expires_year']);
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL'));
}
- $this->cc_card_type = $cc_validation->cc_type;
- $this->cc_card_number = $cc_validation->cc_number;
+ $this->cc_card_type = $_POST['cc_type'];
+ $this->cc_card_number = $_POST['cc_number'];
}
function confirmation() {
----------
catalog /catalog /includes /modules /payment
ipayment.php 1.37 -> 1.38
diff -u -r1.37 -r1.38
--- ipayment.php 2003/12/18 23:52:15 1.37
+++ ipayment.php 2004/05/12 19:34:36 1.38
@@ -73,21 +73,36 @@
}
function selection() {
- global $order;
+ global $order, $osC_Database;
for ($i=1; $i < 13; $i++) {
$expires_month[] = array('id' => sprintf('%02d', $i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000)));
}
- $today = getdate();
+ $today = getdate();
for ($i=$today['year']; $i < $today['year']+10; $i++) {
$expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
}
+ $Qcredit_cards = $osC_Database->query('select credit_card_name, credit_card_code from :table_credit_cards where credit_card_status = :credit_card_status');
+
+ $Qcredit_cards->bindRaw(':table_credit_cards', TABLE_CREDIT_CARDS);
+ $Qcredit_cards->bindInt(':credit_card_status', '1');
+ $Qcredit_cards->setCache('credit-cards');
+ $Qcredit_cards->execute();
+
+ while ($Qcredit_cards->next()) {
+ $credit_cards[] = array('id' => $Qcredit_cards->value('credit_card_code'), 'text' => $Qcredit_cards->value('credit_card_name'));
+ }
+
+ $Qcredit_cards->freeResult();
+
$selection = array('id' => $this->code,
'module' => $this->title,
'fields' => array(array('title' => MODULE_PAYMENT_IPAYMENT_TEXT_CREDIT_CARD_OWNER,
'field' => tep_draw_input_field('ipayment_cc_owner', $order->billing['firstname'] . ' ' . $order->billing['lastname'])),
+ array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_TYPE,
+ 'field' => tep_draw_pull_down_menu('ipayment_cc_type', $credit_cards)),
array('title' => MODULE_PAYMENT_IPAYMENT_TEXT_CREDIT_CARD_NUMBER,
'field' => tep_draw_input_field('ipayment_cc_number')),
array('title' => MODULE_PAYMENT_IPAYMENT_TEXT_CREDIT_CARD_EXPIRES,
@@ -104,39 +119,21 @@
if (PHP_VERSION < 4.1) {
global $_POST;
}
-
- include(DIR_WS_CLASSES . 'cc_validation.php');
-
- $cc_validation = new cc_validation();
- $result = $cc_validation->validate($_POST['ipayment_cc_number'], $_POST['ipayment_cc_expires_month'], $_POST['ipayment_cc_expires_year']);
-
- $error = '';
- switch ($result) {
- case -1:
- $error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4));
- break;
- case -2:
- case -3:
- case -4:
- $error = TEXT_CCVAL_ERROR_INVALID_DATE;
- break;
- case false:
- $error = TEXT_CCVAL_ERROR_INVALID_NUMBER;
- break;
- }
- if ( ($result == false) || ($result < 1) ) {
- $messageStack->add_session('checkout_payment', $error, 'error');
+ if (!tep_validate_credit_card($_POST['ipayment_cc_number'])) {
+ $messageStack->add_session('checkout_payment', TEXT_CCVAL_ERROR_INVALID_NUMBER, 'error');
$payment_error_return = 'ipayment_cc_owner=' . urlencode($_POST['ipayment_cc_owner']) . '&ipayment_cc_expires_month=' . urlencode($_POST['ipayment_cc_expires_month']) . '&ipayment_cc_expires_year=' . urlencode($_POST['ipayment_cc_expires_year']) . '&ipayment_cc_checkcode=' . urlencode($_POST['ipayment_cc_checkcode']);
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL'));
}
- $this->cc_card_type = $cc_validation->cc_type;
- $this->cc_card_number = $cc_validation->cc_number;
- $this->cc_expiry_month = $cc_validation->cc_expiry_month;
- $this->cc_expiry_year = $cc_validation->cc_expiry_year;
+ $this->cc_card_owner = $_POST['ipayment_cc_owner'];
+ $this->cc_card_type = $_POST['ipayment_cc_type'];
+ $this->cc_card_number = $_POST['ipayment_cc_number'];
+ $this->cc_expiry_month = $_POST['ipayment_cc_expires_month'];
+ $this->cc_expiry_year = $_POST['ipayment_cc_expires_year'];
+ $this->cc_checkcode = $_POST['ipayment_cc_checkcode'];
}
function confirmation() {
@@ -146,15 +143,15 @@
$confirmation = array('title' => $this->title . ': ' . $this->cc_card_type,
'fields' => array(array('title' => MODULE_PAYMENT_IPAYMENT_TEXT_CREDIT_CARD_OWNER,
- 'field' => $_POST['ipayment_cc_owner']),
+ 'field' => $this->cc_card_owner),
array('title' => MODULE_PAYMENT_IPAYMENT_TEXT_CREDIT_CARD_NUMBER,
'field' => substr($this->cc_card_number, 0, 4) . str_repeat('X', (strlen($this->cc_card_number) - 8)) . substr($this->cc_card_number, -4)),
array('title' => MODULE_PAYMENT_IPAYMENT_TEXT_CREDIT_CARD_EXPIRES,
- 'field' => strftime('%B, %Y', mktime(0,0,0,$_POST['ipayment_cc_expires_month'], 1, '20' . $_POST['ipayment_cc_expires_year'])))));
+ 'field' => strftime('%B, %Y', mktime(0,0,0,$this->cc_expiry_month, 1, '20' . $this->cc_expiry_year)))));
- if (tep_not_null($_POST['ipayment_cc_checkcode'])) {
+ if (tep_not_null($this->cc_checkcode)) {
$confirmation['fields'][] = array('title' => MODULE_PAYMENT_IPAYMENT_TEXT_CREDIT_CARD_CHECKNUMBER,
- 'field' => $_POST['ipayment_cc_checkcode']);
+ 'field' => $this->cc_checkcode);
}
return $confirmation;
@@ -197,7 +194,7 @@
tep_draw_hidden_field('trx_amount', number_format($order->info['total'] * 100 * $osC_Currencies->value($trx_currency), 0, '','')) .
tep_draw_hidden_field('trx_currency', $trx_currency) .
tep_draw_hidden_field('trx_paymenttyp', 'cc') .
- tep_draw_hidden_field('addr_name', $_POST['ipayment_cc_owner']) .
+ tep_draw_hidden_field('addr_name', $this->cc_card_owner) .
tep_draw_hidden_field('addr_street', $order->billing['street_address']) .
tep_draw_hidden_field('addr_city', $order->billing['city']) .
tep_draw_hidden_field('addr_zip', $order->billing['postcode']) .
@@ -208,13 +205,13 @@
tep_draw_hidden_field('silent', '1') .
tep_draw_hidden_field('silent_error_url', tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code . '&' . $payment_error_return, 'SSL')) .
tep_draw_hidden_field('redirect_url', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) .
- tep_draw_hidden_field('cc_number', $_POST['ipayment_cc_number']) .
- tep_draw_hidden_field('cc_expdate_month', $_POST['ipayment_cc_expires_month']) .
- tep_draw_hidden_field('cc_expdate_year', $_POST['ipayment_cc_expires_year']);
+ tep_draw_hidden_field('cc_number', $this->cc_card_number) .
+ tep_draw_hidden_field('cc_expdate_month', $this->cc_expiry_month) .
+ tep_draw_hidden_field('cc_expdate_year', $this->cc_expiry_year);
- if (tep_not_null($_POST['ipayment_cc_checkcode'])) {
- $process_button_string .= tep_draw_hidden_field('cc_checkcode', $_POST['ipayment_cc_checkcode']);
+ if (tep_not_null($this->cc_checkcode)) {
+ $process_button_string .= tep_draw_hidden_field('cc_checkcode', $this->cc_checkcode);
}
if (tep_not_null(MODULE_PAYMENT_IPAYMENT_SECURITY_KEY)) {
----------
catalog /catalog /includes /modules /payment
pm2checkout.php 1.22 -> 1.23
diff -u -r1.22 -r1.23
--- pm2checkout.php 2003/12/04 23:43:16 1.22
+++ pm2checkout.php 2004/05/12 19:34:36 1.23
@@ -5,7 +5,7 @@
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
- Copyright (c) 2003 osCommerce
+ Copyright (c) 2004 osCommerce
Released under the GNU General Public License
*/
@@ -68,7 +68,7 @@
}
function selection() {
- global $order;
+ global $order, $osC_Database;
for ($i=1; $i < 13; $i++) {
$expires_month[] = array('id' => sprintf('%02d', $i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000)));
@@ -79,12 +79,27 @@
$expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
}
+ $Qcredit_cards = $osC_Database->query('select credit_card_name, credit_card_code from :table_credit_cards where credit_card_status = :credit_card_status');
+
+ $Qcredit_cards->bindRaw(':table_credit_cards', TABLE_CREDIT_CARDS);
+ $Qcredit_cards->bindInt(':credit_card_status', '1');
+ $Qcredit_cards->setCache('credit-cards');
+ $Qcredit_cards->execute();
+
+ while ($Qcredit_cards->next()) {
+ $credit_cards[] = array('id' => $Qcredit_cards->value('credit_card_code'), 'text' => $Qcredit_cards->value('credit_card_name'));
+ }
+
+ $Qcredit_cards->freeResult();
+
$selection = array('id' => $this->code,
'module' => $this->title,
'fields' => array(array('title' => MODULE_PAYMENT_2CHECKOUT_TEXT_CREDIT_CARD_OWNER_FIRST_NAME,
'field' => tep_draw_input_field('pm_2checkout_cc_owner_firstname', $order->billing['firstname'])),
array('title' => MODULE_PAYMENT_2CHECKOUT_TEXT_CREDIT_CARD_OWNER_LAST_NAME,
'field' => tep_draw_input_field('pm_2checkout_cc_owner_lastname', $order->billing['lastname'])),
+ array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_TYPE,
+ 'field' => tep_draw_pull_down_menu('pm_2checkout_cc_type', $credit_cards)),
array('title' => MODULE_PAYMENT_2CHECKOUT_TEXT_CREDIT_CARD_NUMBER,
'field' => tep_draw_input_field('pm_2checkout_cc_number')),
array('title' => MODULE_PAYMENT_2CHECKOUT_TEXT_CREDIT_CARD_EXPIRES,
@@ -101,39 +116,20 @@
if (PHP_VERSION < 4.1) {
global $_POST;
}
-
- include(DIR_WS_CLASSES . 'cc_validation.php');
-
- $cc_validation = new cc_validation();
- $result = $cc_validation->validate($_POST['pm_2checkout_cc_number'], $_POST['pm_2checkout_cc_expires_month'], $_POST['pm_2checkout_cc_expires_year']);
-
- $error = '';
- switch ($result) {
- case -1:
- $error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4));
- break;
- case -2:
- case -3:
- case -4:
- $error = TEXT_CCVAL_ERROR_INVALID_DATE;
- break;
- case false:
- $error = TEXT_CCVAL_ERROR_INVALID_NUMBER;
- break;
- }
- if ( ($result == false) || ($result < 1) ) {
- $messageStack->add_session('checkout_payment', $error, 'error');
+ if (!tep_validate_credit_card($_POST['pm_2checkout_cc_number'])) {
+ $messageStack->add_session('checkout_payment', TEXT_CCVAL_ERROR_INVALID_NUMBER, 'error');
$payment_error_return = 'pm_2checkout_cc_owner_firstname=' . urlencode($_POST['pm_2checkout_cc_owner_firstname']) . '&pm_2checkout_cc_owner_lastname=' . urlencode($_POST['pm_2checkout_cc_owner_lastname']) . '&pm_2checkout_cc_expires_month=' . urlencode($_POST['pm_2checkout_cc_expires_month']) . '&pm_2checkout_cc_expires_year=' . urlencode($_POST['pm_2checkout_cc_expires_year']) . '&pm_2checkout_cc_cvv=' . urlencode($_POST['pm_2checkout_cc_cvv']);
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL'));
}
- $this->cc_card_type = $cc_validation->cc_type;
- $this->cc_card_number = $cc_validation->cc_number;
- $this->cc_expiry_month = $cc_validation->cc_expiry_month;
- $this->cc_expiry_year = $cc_validation->cc_expiry_year;
+ $this->cc_card_type = $_POST['pm_2checkout_cc_type'];
+ $this->cc_card_number = $_POST['pm_2checkout_cc_number'];
+ $this->cc_expiry_month = $_POST['pm_2checkout_cc_expires_month'];
+ $this->cc_expiry_year = $_POST['pm_2checkout_cc_expires_year'];
+ $this->cc_checkcode = $_POST['pm_2checkout_cc_cvv'];
}
function confirmation() {
@@ -147,11 +143,11 @@
array('title' => MODULE_PAYMENT_2CHECKOUT_TEXT_CREDIT_CARD_NUMBER,
'field' => substr($this->cc_card_number, 0, 4) . str_repeat('X', (strlen($this->cc_card_number) - 8)) . substr($this->cc_card_number, -4)),
array('title' => MODULE_PAYMENT_2CHECKOUT_TEXT_CREDIT_CARD_EXPIRES,
- 'field' => strftime('%B, %Y', mktime(0,0,0,$_POST['pm_2checkout_cc_expires_month'], 1, '20' . $_POST['pm_2checkout_cc_expires_year'])))));
+ 'field' => strftime('%B, %Y', mktime(0,0,0,$this->cc_expiry_month, 1, '20' . $this->cc_expiry_year)))));
- if (tep_not_null($_POST['pm_2checkout_cc_cvv'])) {
+ if (tep_not_null($this->cc_checkcode)) {
$confirmation['fields'][] = array('title' => MODULE_PAYMENT_2CHECKOUT_TEXT_CREDIT_CARD_CHECKNUMBER,
- 'field' => $_POST['pm_2checkout_cc_cvv']);
+ 'field' => $this->cc_checkcode);
}
return $confirmation;
@@ -169,7 +165,7 @@
tep_draw_hidden_field('x_invoice_num', date('YmdHis')) .
tep_draw_hidden_field('x_test_request', ((MODULE_PAYMENT_2CHECKOUT_TESTMODE == 'Test') ? 'Y' : 'N')) .
tep_draw_hidden_field('x_card_num', $this->cc_card_number) .
- tep_draw_hidden_field('cvv', $_POST['pm_2checkout_cc_cvv']) .
+ tep_draw_hidden_field('cvv', $this->cc_checkcode) .
tep_draw_hidden_field('x_exp_date', $this->cc_expiry_month . substr($this->cc_expiry_year, -2)) .
tep_draw_hidden_field('x_first_name', $_POST['pm_2checkout_cc_owner_firstname']) .
tep_draw_hidden_field('x_last_name', $_POST['pm_2checkout_cc_owner_lastname']) .
----------
catalog /catalog /includes /modules /payment
psigate.php 1.20 -> 1.21
diff -u -r1.20 -r1.21
--- psigate.php 2003/12/18 23:52:15 1.20
+++ psigate.php 2004/05/12 19:34:36 1.21
@@ -72,22 +72,37 @@
}
function selection() {
- global $order;
+ global $order, $osC_Database;
if (MODULE_PAYMENT_PSIGATE_INPUT_MODE == 'Local') {
for ($i=1; $i<13; $i++) {
$expires_month[] = array('id' => sprintf('%02d', $i), 'text' => strftime('%B',mktime(0,0,0,$i,1,2000)));
}
- $today = getdate();
+ $today = getdate();
for ($i=$today['year']; $i < $today['year']+10; $i++) {
$expires_year[] = array('id' => strftime('%y',mktime(0,0,0,1,1,$i)), 'text' => strftime('%Y',mktime(0,0,0,1,1,$i)));
}
+ $Qcredit_cards = $osC_Database->query('select credit_card_name, credit_card_code from :table_credit_cards where credit_card_status = :credit_card_status');
+
+ $Qcredit_cards->bindRaw(':table_credit_cards', TABLE_CREDIT_CARDS);
+ $Qcredit_cards->bindInt(':credit_card_status', '1');
+ $Qcredit_cards->setCache('credit-cards');
+ $Qcredit_cards->execute();
+
+ while ($Qcredit_cards->next()) {
+ $credit_cards[] = array('id' => $Qcredit_cards->value('credit_card_code'), 'text' => $Qcredit_cards->value('credit_card_name'));
+ }
+
+ $Qcredit_cards->freeResult();
+
$selection = array('id' => $this->code,
'module' => $this->title,
'fields' => array(array('title' => MODULE_PAYMENT_PSIGATE_TEXT_CREDIT_CARD_OWNER,
'field' => tep_draw_input_field('psigate_cc_owner', $order->billing['firstname'] . ' ' . $order->billing['lastname'])),
+ array('title' => MODULE_PAYMENT_CC_TEXT_CREDIT_CARD_TYPE,
+ 'field' => tep_draw_pull_down_menu('psigate_cc_type', $credit_cards)),
array('title' => MODULE_PAYMENT_PSIGATE_TEXT_CREDIT_CARD_NUMBER,
'field' => tep_draw_input_field('psigate_cc_number')),
array('title' => MODULE_PAYMENT_PSIGATE_TEXT_CREDIT_CARD_EXPIRES,
@@ -108,38 +123,19 @@
}
if (MODULE_PAYMENT_PSIGATE_INPUT_MODE == 'Local') {
- include(DIR_WS_CLASSES . 'cc_validation.php');
-
- $cc_validation = new cc_validation();
- $result = $cc_validation->validate($_POST['psigate_cc_number'], $_POST['psigate_cc_expires_month'], $_POST['psigate_cc_expires_year']);
-
- $error = '';
- switch ($result) {
- case -1:
- $error = sprintf(TEXT_CCVAL_ERROR_UNKNOWN_CARD, substr($cc_validation->cc_number, 0, 4));
- break;
- case -2:
- case -3:
- case -4:
- $error = TEXT_CCVAL_ERROR_INVALID_DATE;
- break;
- case false:
- $error = TEXT_CCVAL_ERROR_INVALID_NUMBER;
- break;
- }
-
- if ( ($result == false) || ($result < 1) ) {
- $messageStack->add_session('checkout_payment', $error, 'error');
+ if (!tep_validate_credit_card($_POST['ipayment_cc_number'])) {
+ $messageStack->add_session('checkout_payment', TEXT_CCVAL_ERROR_INVALID_NUMBER, 'error');
$payment_error_return = 'psigate_cc_owner=' . urlencode($_POST['psigate_cc_owner']) . '&psigate_cc_expires_month=' . urlencode($_POST['psigate_cc_expires_month']) . '&psigate_cc_expires_year=' . urlencode($_POST['psigate_cc_expires_year']);
tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL'));
}
- $this->cc_card_type = $cc_validation->cc_type;
- $this->cc_card_number = $cc_validation->cc_number;
- $this->cc_expiry_month = $cc_validation->cc_expiry_month;
- $this->cc_expiry_year = $cc_validation->cc_expiry_year;
+ $this->cc_card_owner = $_POST['psigate_cc_owner'];
+ $this->cc_card_type = $_POST['psigate_cc_type'];
+ $this->cc_card_number = $_POST['psigate_cc_number'];
+ $this->cc_expiry_month = $_POST['psigate_cc_expires_month'];
+ $this->cc_expiry_year = $_POST['psigate_cc_expires_year'];
} else {
return false;
}
@@ -155,11 +151,11 @@
if (MODULE_PAYMENT_PSIGATE_INPUT_MODE == 'Local') {
$confirmation = array('title' => $this->title . ': ' . $this->cc_card_type,
'fields' => array(array('title' => MODULE_PAYMENT_PSIGATE_TEXT_CREDIT_CARD_OWNER,
- 'field' => $_POST['psigate_cc_owner']),
+ 'field' => $this->cc_card_owner),
array('title' => MODULE_PAYMENT_PSIGATE_TEXT_CREDIT_CARD_NUMBER,
'field' => substr($this->cc_card_number, 0, 4) . str_repeat('X', (strlen($this->cc_card_number) - 8)) . substr($this->cc_card_number, -4)),
array('title' => MODULE_PAYMENT_PSIGATE_TEXT_CREDIT_CARD_EXPIRES,
- 'field' => strftime('%B, %Y', mktime(0,0,0,$_POST['psigate_cc_expires_month'], 1, '20' . $_POST['psigate_cc_expires_year'])))));
+ 'field' => strftime('%B, %Y', mktime(0,0,0,$this->cc_expiry_month, 1, '20' . $this->cc_expiry_year)))));
return $confirmation;
} else {
----------
catalog /catalog /install
oscommerce.sql 1.97 -> 1.98
diff -u -r1.97 -r1.98
--- oscommerce.sql 2004/04/16 05:31:34 1.97
+++ oscommerce.sql 2004/05/12 19:34:41 1.98
@@ -143,6 +143,16 @@
KEY IDX_COUNTRIES_NAME (countries_name)
);
+DROP TABLE IF EXISTS osc_credit_cards;
+CREATE TABLE osc_credit_cards (
+ credit_card_id int(11) NOT NULL auto_increment,
+ credit_card_code varchar(4) NOT NULL default '',
+ credit_card_name varchar(32) NOT NULL default '',
+ credit_card_status char(1) NOT NULL default '',
+ sort_order int(1) NOT NULL default '0',
+ PRIMARY KEY (credit_card_id)
+);
+
DROP TABLE IF EXISTS osc_currencies;
CREATE TABLE osc_currencies (
currencies_id int NOT NULL auto_increment,
@@ -1001,6 +1011,14 @@
INSERT INTO osc_countries VALUES (237,'Zaire','ZR','ZAR','1');
INSERT INTO osc_countries VALUES (238,'Zambia','ZM','ZMB','1');
INSERT INTO osc_countries VALUES (239,'Zimbabwe','ZW','ZWE','1');
+
+INSERT INTO osc_credit_cards VALUES (1,'AMEX','American Express','1','1');
+INSERT INTO osc_credit_cards VALUES (2,'DINR','Diners Club','1','2');
+INSERT INTO osc_credit_cards VALUES (3,'JCB','JCB','1','3');
+INSERT INTO osc_credit_cards VALUES (4,'MC','Mastercard','1','4');
+INSERT INTO osc_credit_cards VALUES (5,'VISA','Visa','1','5');
+INSERT INTO osc_credit_cards VALUES (6,'SOLO','Solo','1','6');
+INSERT INTO osc_credit_cards VALUES (7,'SWIT','Switch','1','7');
INSERT INTO osc_currencies VALUES (1,'US Dollar','USD','$','','2','1.0000', now());
INSERT INTO osc_currencies VALUES (2,'Euro','EUR','','EUR','2','1.1036', now());
CVSspam 0.2.8
-------------------------------------------------------
This SF.Net email is sponsored by Sleepycat Software
Learn developer strategies Cisco, Motorola, Ericsson & Lucent use to deliver
higher performing products faster, at low TCO.
http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3