diff -urN uc_moneris_orig/uc_moneris.module uc_moneris/uc_moneris.module --- uc_moneris_orig/uc_moneris.module 2009-11-11 14:53:30.000000000 -0500 +++ uc_moneris/uc_moneris.module 2009-11-11 14:52:48.000000000 -0500 @@ -454,9 +454,9 @@ $mpgResponse = $mpgHttpPost->getMpgResponse(); $response_code = $mpgResponse->getResponseCode(); $txn_number = $mpgResponse->getTxnNumber(); - $completed = $mpgResponse->getComplete(); + $completed = strtolower($mpgResponse->getComplete()); //Check the CVD? - if ($use_cvv == 'enabled') { + if ($use_cvv == 'enabled' && (intval($response_code) > 49 || $completed == 'false')) { $cvd_response = $mpgResponse->getCvdResultCode(); if (substr($cvd_response, 1, 1) != 'M') { $result = array( @@ -475,14 +475,14 @@ return $result; } } - if ($use_avs == 'enabled') { + if ($use_avs == 'enabled' && (intval($response_code) > 49 || $completed == 'false')) { $avs_response = $mpgResponse->getAvsResultCode(); $avs_accept = array(); - if ($order->billing_country == 840) { - $avs_accept = array('Z', 'Y', 'P', 'D', 'M'); + if ($order->billing_country == 840) { // 840 is US + $avs_accept = array('Z', 'Y', 'P', 'D', 'M', 'W'); } else { - $avs_accept = array('A', 'B', 'D', 'M', 'P', 'Y', 'Z'); + $avs_accept = array('A', 'B', 'D', 'M', 'P', 'Y', 'Z', 'W'); } if (!in_array($avs_response, $avs_accept)) { $message = t('AVS Verification failed with Moneris code @code', array('@code' => $avs_response)); @@ -501,7 +501,7 @@ } } - if (($this_trans_type == uc_moneris_preauth_string() && $txnType == uc_moneris_transaction_type()) && intval($response_code) < 49 || $completed == 'TRUE') { + if (($this_trans_type == uc_moneris_preauth_string() && $txnType == uc_moneris_transaction_type()) && intval($response_code) < 49 || $completed == 'true') { //The previous transaction was a preauth before a capture. Run the transaction again in Capture mode. $txnArray = array( 'type' => variable_get('uc_moneris_api_version', '') .'completion', @@ -540,7 +540,7 @@ $approval_code = $mpgResponse->getAuthCode(); $CVDResponse = $mpgResponse->getCvdResultCode(); $txn_number = $mpgResponse->getTxnNumber(); - $completed = $mpgResponse->getComplete(); + $completed = strtolower($mpgResponse->getComplete()); // Store TxnNumber for a Capture later if (!$order->data['TxnNumber']) {