function submit($manual_euro)
 {
     global $db, $config;
     $payment_id = intval($manual_euro['payment_id']);
     if (!$payment_id) {
         fatal_error("payment id is empty");
     }
     if (!($payment = $db->get_payment($payment_id))) {
         fatal_error("no such payment id");
     }
     $member = $db->get_user($payment['member_id']);
     $manual_euro_config = $this->manual_euro_get_config();
     $manual_euro["an"] = preg_replace('/\\D+/', '', $manual_euro["an"]);
     $manual_euro["bic"] = preg_replace('/\\D+/', '', $manual_euro["bic"]);
     $banktransfer_validation = new AccountCheck();
     $banktransfer_result = $banktransfer_validation->CheckAccount($manual_euro["an"], $manual_euro["bic"]);
     if ($banktransfer_result != 0) {
         $manual_euro["error"][] = _PLUG_PAY_MANUAL_EURO_BANK_ERROR2;
     }
     $address_error = false;
     if ($this->config['required_address'] && ($manual_euro["street"] == '' || $manual_euro["city"] == '' || $manual_euro["zip"] == '' || $manual_euro["country"] == '' || $manual_euro_config['phone'] && $manual_euro["phone"] == '' || $manual_euro_config['state'] && $manual_euro["state"] == '')) {
         $manual_euro["error"][] = _PLUG_PAY_MANUAL_EURO_BANK_ERROR3;
         $address_error = true;
     }
     // check Account Holder Name
     if ($manual_euro['name'] == '') {
         $manual_euro["error"][] = _PLUG_PAY_MANUAL_EURO_BANK_ERROR5;
         $address_error = true;
     }
     if ($banktransfer_result == 0 && !$address_error) {
         $member['data']['bank_name'] = $manual_euro['name'];
         $member['data']['bank_an'] = $manual_euro['an'];
         $member['data']['bank_bic'] = $manual_euro['bic'];
         $member['data']['bank_bank_name'] = $banktransfer_validation->Bankname;
         if ($manual_euro_config['phone']) {
             $member['data']['bank_phone'] = $manual_euro['phone'];
         }
         $member['street'] = $manual_euro['street'];
         $member['city'] = $manual_euro['city'];
         if ($manual_euro_config['state']) {
             $member['state'] = $manual_euro['state'];
         }
         $member['zip'] = $manual_euro['zip'];
         $member['country'] = $manual_euro['country'];
         $db->update_user($member['member_id'], $member);
         $this->signup_moderator_mail($payment_id, $signup = true);
         $t =& new_smarty();
         $t->assign(array("manual_euro" => $manual_euro, 'member' => $member, 'payment' => $payment, "product" => $db->get_product($payment['product_id'])));
         $t->display(dirname(__FILE__) . '/thanks.html');
     } else {
         $manual_euro["error"] = array("Incorrect Account number or Bank Identifier Code");
         $this->do_payment($payment_id, $member["member_id"], $payment['product_id'], $payment['amount'], $payment['begin_date'], $payment['expire_date'], $manual_euro);
     }
 }
Пример #2
0
 function pre_confirmation_check()
 {
     global $banktransfer_number, $banktransfer_blz, $aLang;
     if ($_POST['banktransfer_fax'] == false) {
         include 'includes/classes/class_banktransfer_validation.php';
         $banktransfer_validation = new AccountCheck();
         $banktransfer_result = $banktransfer_validation->CheckAccount($banktransfer_number, $banktransfer_blz);
         if ($banktransfer_result > 0 || $_POST['banktransfer_owner'] == '') {
             if ($_POST['banktransfer_owner'] == '') {
                 $error = 'Name des Kontoinhabers fehlt!';
                 $recheckok = '';
             } else {
                 switch ($banktransfer_result) {
                     case 1:
                         // number & blz not ok
                         $error = $aLang['module_payment_banktransfer_text_bank_error_1'];
                         $recheckok = '1';
                         break;
                     case 5:
                         // BLZ not found
                         $error = $aLang['module_payment_banktransfer_text_bank_error_5'];
                         $recheckok = '1';
                         break;
                     case 8:
                         // no blz entered
                         $error = $aLang['module_payment_banktransfer_text_bank_error_8'];
                         $recheckok = '';
                         break;
                     case 9:
                         // no number entered
                         $error = $aLang['module_payment_banktransfer_text_bank_error_9'];
                         $recheckok = '';
                         break;
                     default:
                         $error = $aLang['module_payment_banktransfer_text_bank_error_4'];
                         $recheckok = '1';
                         break;
                 }
             }
             if ($_POST['recheckok'] != '1') {
                 $payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&banktransfer_owner=' . urlencode($_POST['banktransfer_owner']) . '&banktransfer_number=' . urlencode($_POST['banktransfer_number']) . '&banktransfer_blz=' . urlencode($_POST['banktransfer_blz']) . '&banktransfer_bankname=' . urlencode($_POST['banktransfer_bankname']) . '&recheckok=' . $recheckok;
                 $aPages = oos_get_pages();
                 MyOOS_CoreApi::redirect(oos_href_link($aPages['checkout_payment'], $payment_error_return, 'SSL', true, false));
             }
         }
         $this->banktransfer_owner = oos_prepare_input($_POST['banktransfer_owner']);
         $this->banktransfer_blz = oos_prepare_input($_POST['banktransfer_blz']);
         $this->banktransfer_number = oos_prepare_input($_POST['banktransfer_number']);
         $this->banktransfer_prz = $banktransfer_validation->PRZ;
         $this->banktransfer_status = $banktransfer_result;
         if ($banktransfer_validation->Bankname != '') {
             $this->banktransfer_bankname = $banktransfer_validation->Bankname;
         } else {
             $this->banktransfer_bankname = oos_prepare_input($_POST['banktransfer_bankname']);
         }
     }
 }
 function pre_confirmation_check()
 {
     global $banktransfer_number, $banktransfer_blz;
     if ($_POST['banktransfer_fax'] == false) {
         if ($banktransfer_result > 0 || $_POST['banktransfer_owner'] == EMPTY_STRING) {
             if ($_POST['banktransfer_owner'] == EMPTY_STRING) {
                 $error = 'Name des Kontoinhabers fehlt!';
                 $recheckok = EMPTY_STRING;
             } else {
                 include_once DIR_WS_CLASSES . 'banktransfer_validation.php';
                 $banktransfer_validation = new AccountCheck();
                 $banktransfer_result = $banktransfer_validation->CheckAccount($banktransfer_number, $banktransfer_blz);
                 switch ($banktransfer_result) {
                     case 1:
                         // number & blz not ok
                         $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_1;
                         $recheckok = TRUE_STRING_S;
                         break;
                     case 5:
                         // BLZ not found
                         $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_5;
                         $recheckok = TRUE_STRING_S;
                         break;
                     case 8:
                         // no blz entered
                         $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_8;
                         $recheckok = EMPTY_STRING;
                         break;
                     case 9:
                         // no number entered
                         $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_9;
                         $recheckok = EMPTY_STRING;
                         break;
                     default:
                         $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_4;
                         $recheckok = TRUE_STRING_S;
                         break;
                 }
             }
             if (USE_AJAX) {
                 ajax_error($error);
             } else {
                 if ($_POST['recheckok'] != TRUE_STRING_S) {
                     $payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&banktransfer_owner=' . urlencode($_POST['banktransfer_owner']) . '&banktransfer_number=' . urlencode($_POST['banktransfer_number']) . '&banktransfer_blz=' . urlencode($_POST['banktransfer_blz']) . '&banktransfer_bankname=' . urlencode($_POST['banktransfer_bankname']) . '&recheckok=' . $recheckok;
                     olc_redirect(olc_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, SSL, true, false));
                 }
             }
         }
     }
     $this->banktransfer_owner = $_POST['banktransfer_owner'];
     $this->banktransfer_blz = $_POST['banktransfer_blz'];
     $this->banktransfer_number = $_POST['banktransfer_number'];
     $this->banktransfer_prz = $banktransfer_validation->PRZ;
     $this->banktransfer_status = $banktransfer_result;
     if ($banktransfer_validation->Bankname != EMPTY_STRING) {
         $this->banktransfer_bankname = $banktransfer_validation->Bankname;
     } else {
         $this->banktransfer_bankname = $_POST['banktransfer_bankname'];
     }
     //W. Kaiser - AJAX
 }
 function pre_confirmation_check()
 {
     if (@$_POST['banktransfer_fax'] == false && @$_POST['recheckok'] != 'true') {
         include DIR_WS_CLASSES . 'banktransfer_validation.php';
         // iban / classic?
         $number = preg_replace('/[^a-zA-Z0-9]/', '', $_POST['banktransfer_number']);
         if (ctype_digit($number) && MODULE_PAYMENT_BANKTRANSFER_IBAN_ONLY == 'false') {
             // classic
             $banktransfer_validation = new AccountCheck();
             $banktransfer_result = $banktransfer_validation->CheckAccount($number, $_POST['banktransfer_blz']);
             // some error codes <> 0/OK pass as OK
             if ($banktransfer_validation->account_acceptable($banktransfer_result)) {
                 $banktransfer_result = 0;
             }
         } else {
             // iban
             $banktransfer_validation = new IbanAccountCheck();
             $banktransfer_result = $banktransfer_validation->IbanCheckAccount($number, $_POST['banktransfer_blz']);
             // some error codes <> 0/OK pass as OK
             if ($banktransfer_validation->account_acceptable($banktransfer_result)) {
                 $banktransfer_result = 0;
             }
             // owner email ?
             if ($banktransfer_result == 0 && isset($_POST['banktransfer_owner_email'])) {
                 require_once DIR_FS_INC . 'xtc_validate_email.inc.php';
                 if (!xtc_validate_email($_POST['banktransfer_owner_email'])) {
                     $banktransfer_result = 13;
                 }
             }
             // iban country allowed in payment zone?
             if ($banktransfer_result == 0 && (int) MODULE_PAYMENT_BANKTRANSFER_ZONE > 0) {
                 $check_query = xtc_db_query("SELECT DISTINCT z.geo_zone_id \n                                                    FROM " . TABLE_ZONES_TO_GEO_ZONES . " z\n                                                    JOIN " . TABLE_COUNTRIES . " c on c.countries_id = z.zone_country_id\n                                                   WHERE z.geo_zone_id = " . MODULE_PAYMENT_BANKTRANSFER_ZONE . "\n                                                     AND c.countries_iso_code_2 = '" . $banktransfer_validation->IBAN_country . "'");
                 if (xtc_db_num_rows($check_query) == 0) {
                     $banktransfer_result = 14;
                 }
             }
             // map return codes. refine where necessary
             // iban not ok
             if (in_array($banktransfer_result, array(1000, 1010, 1020, 1030, 1040))) {
                 $banktransfer_result = 12;
             } else {
                 if (in_array($banktransfer_result, array(1050, 1060, 1070, 1080))) {
                     $banktransfer_result = 11;
                 } else {
                     if ($banktransfer_result > 2000) {
                         $banktransfer_result -= 2000;
                     }
                 }
             }
         }
         if (!empty($banktransfer_validation->Bankname)) {
             $this->banktransfer_bankname = $banktransfer_validation->Bankname;
         } else {
             $this->banktransfer_bankname = xtc_db_prepare_input($_POST['banktransfer_bankname']);
         }
         if (isset($_POST['banktransfer_owner']) && $_POST['banktransfer_owner'] == '') {
             $banktransfer_result = 10;
         }
         switch ($banktransfer_result) {
             case 0:
                 // payment o.k.
                 $error = 'O.K.';
                 $recheckok = 'false';
                 break;
             case 1:
                 // number & blz not ok
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_1;
                 $recheckok = 'false';
                 break;
             case 2:
                 // account number has no calculation method
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_2;
                 $recheckok = 'true';
                 break;
             case 3:
                 // No calculation method implemented
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_3;
                 $recheckok = 'true';
                 break;
             case 4:
                 // Number cannot be checked
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_4;
                 $recheckok = 'true';
                 break;
             case 5:
                 // BLZ not found
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_5;
                 $recheckok = 'false';
                 // Set "true" if you have not the latest BLZ table!
                 break;
             case 8:
                 // no BLZ entered
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_8;
                 $recheckok = 'false';
                 break;
             case 9:
                 // no number entered
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_9;
                 $recheckok = 'false';
                 break;
             case 10:
                 // no account holder entered
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_10;
                 $recheckok = 'false';
                 break;
             case 11:
                 // no bic entered
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_11;
                 $recheckok = 'false';
                 break;
             case 12:
                 // iban not o.k.
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_12;
                 $recheckok = 'false';
                 break;
             case 13:
                 // no account holder notification email entered
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_13;
                 $recheckok = 'false';
                 break;
             case 14:
                 // iban country not allowed in payment zone
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_14;
                 $recheckok = 'false';
                 break;
             case 128:
                 // Internal error
                 $error = 'Internal error, please check again to process your payment';
                 $recheckok = 'true';
                 break;
             default:
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_4;
                 $recheckok = 'true';
                 break;
         }
         if ($banktransfer_result > 0 && $_POST['recheckok'] != 'true') {
             $payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&banktransfer_owner=' . urlencode($_POST['banktransfer_owner']) . '&banktransfer_number=' . urlencode($_POST['banktransfer_number']) . '&banktransfer_blz=' . urlencode($_POST['banktransfer_blz']) . '&banktransfer_bankname=' . urlencode($_POST['banktransfer_bankname']) . '&banktransfer_owner_email=' . urlencode($_POST['banktransfer_owner_email']) . '&recheckok=' . $recheckok;
             xtc_redirect(xtc_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false));
         }
         $this->iban_mode = $banktransfer_validation->checkmode == 'iban';
         $this->banktransfer_owner = xtc_db_prepare_input($_POST['banktransfer_owner']);
         $this->banktransfer_owner_email = xtc_db_prepare_input($_POST['banktransfer_owner_email']);
         $this->banktransfer_iban = $banktransfer_validation->banktransfer_iban;
         $this->banktransfer_bic = $banktransfer_validation->banktransfer_bic;
         $this->banktransfer_number = $banktransfer_validation->banktransfer_number;
         $this->banktransfer_blz = $banktransfer_validation->banktransfer_blz;
         $this->banktransfer_prz = $banktransfer_validation->PRZ;
         $this->banktransfer_status = $banktransfer_result;
     }
 }
     if ($vorwahl) {
         $vorwahl_delimiter = HASH . "vorwahl" . HASH;
         $add_on .= NEWLINE . $vorwahl_delimiter . $vorwahl . $vorwahl_delimiter;
     }
     break;
 case banktransfer_blz:
     //"banktransfer_bankname"
     $bank_delimiter = HASH . "bank" . HASH;
     $add_on = $bank_delimiter . $add_on . $bank_delimiter;
     break;
 case banktransfer_number:
     if ($bank_prz) {
         //Validate account-number
         // Include kontonummer-validation class
         require_once DIR_WS_CLASSES . 'banktransfer_validation.php';
         $banktransfer_validation = new AccountCheck();
         $banktransfer_result = $banktransfer_validation->CheckAccount($konto_nummer, $blz, $add_on, $bank_prz);
         if ($banktransfer_result > 0) {
             $current_value = $konto_nummer;
             $konto_nummer = "Kontonummer '" . $konto_nummer . "' ";
             $main_content = "Die " . $konto_nummer . "ist für die BLZ '" . $extra_parameter . "' (" . $add_on . ") nicht gültig!";
             $caption = BLANK . $konto_nummer;
             $error_recoverable = true;
             //Recoverable, allow acceptance anyway!
             //$error_fatal=true;			//Not recoverable, do not allow acceptance
         } else {
             //Valid #, just exit
             echo EMPTY_STRING;
             exit;
         }
     } else {
Пример #6
0
 function pre_confirmation_check()
 {
     if ($_POST['banktransfer_fax'] == false && $_POST['recheckok'] != 'true') {
         include DIR_WS_CLASSES . 'banktransfer_validation.php';
         $banktransfer_validation = new AccountCheck();
         $banktransfer_result = $banktransfer_validation->CheckAccount($_POST['banktransfer_number'], $_POST['banktransfer_blz']);
         if ($banktransfer_validation->Bankname != '') {
             $this->banktransfer_bankname = $banktransfer_validation->Bankname;
         } else {
             $this->banktransfer_bankname = vam_db_prepare_input($_POST['banktransfer_bankname']);
         }
         if ($_POST['banktransfer_owner'] == '') {
             $banktransfer_result = 10;
         }
         switch ($banktransfer_result) {
             case 0:
                 // payment o.k.
                 $error = 'O.K.';
                 $recheckok = 'false';
                 break;
             case 1:
                 // number & blz not ok
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_1;
                 $recheckok = 'false';
                 break;
             case 2:
                 // account number has no calculation method
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_2;
                 $recheckok = 'true';
                 break;
             case 3:
                 // No calculation method implemented
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_3;
                 $recheckok = 'true';
                 break;
             case 4:
                 // Number cannot be checked
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_4;
                 $recheckok = 'true';
                 break;
             case 5:
                 // BLZ not found
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_5;
                 $recheckok = 'false';
                 // Set "true" if you have not the latest BLZ table!
                 break;
             case 8:
                 // no BLZ entered
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_8;
                 $recheckok = 'false';
                 break;
             case 9:
                 // no number entered
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_9;
                 $recheckok = 'false';
                 break;
             case 10:
                 // no account holder entered
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_10;
                 $recheckok = 'false';
                 break;
             case 128:
                 // Internal error
                 $error = 'Internal error, please check again to process your payment';
                 $recheckok = 'true';
                 break;
             default:
                 $error = MODULE_PAYMENT_BANKTRANSFER_TEXT_BANK_ERROR_4;
                 $recheckok = 'true';
                 break;
         }
         if ($banktransfer_result > 0 && $_POST['recheckok'] != 'true') {
             $payment_error_return = 'payment_error=' . $this->code . '&error=' . urlencode($error) . '&banktransfer_owner=' . urlencode($_POST['banktransfer_owner']) . '&banktransfer_number=' . urlencode($_POST['banktransfer_number']) . '&banktransfer_blz=' . urlencode($_POST['banktransfer_blz']) . '&banktransfer_bankname=' . urlencode($_POST['banktransfer_bankname']) . '&recheckok=' . $recheckok;
             vam_redirect(vam_href_link(FILENAME_CHECKOUT_PAYMENT, $payment_error_return, 'SSL', true, false));
         }
         $this->banktransfer_owner = vam_db_prepare_input($_POST['banktransfer_owner']);
         $this->banktransfer_blz = vam_db_prepare_input($_POST['banktransfer_blz']);
         $this->banktransfer_number = vam_db_prepare_input($_POST['banktransfer_number']);
         $this->banktransfer_prz = $banktransfer_validation->PRZ;
         $this->banktransfer_status = $banktransfer_result;
     }
 }
 function __construct()
 {
     parent::__construct();
     $this->banktransfer_iban = '';
     // Enthält nach der Prüfung die geprüfte IBAN
     $this->banktransfer_bic = '';
     // Enthält nach der Prüfung den geprüften BIC
     $this->IBAN_country = '';
     // Enthält nach der Prüfung das Land der geprüften IBAN
     // Basis-Informationen / Definition zu IBAN-Kontonummern der einzelnen Länder einlesen
     $this->init();
     $this->checkmode = 'iban';
 }