Exemplo n.º 1
0
 function manual_cc_mail($cc_info, $member, $payment, $charge_type)
 {
     global $config, $db;
     $features = $this->get_plugin_features();
     $product = $db->get_product($payment['product_id']);
     $admin_url = $config['root_url'] . '/admin';
     if ($charge_type != CC_CHARGE_TYPE_RECURRING) {
         $mail_subject = "*** New Manual Credit Card Signup ***";
     } else {
         $mail_subject = "*** New Manual Credit Card Recurring Billing ***";
     }
     $t =& new_smarty();
     $t->assign(array('this_config' => $cc_info, 'currency' => $config['currency'], 'member' => $member, 'product' => $product, 'charge_type' => $charge_type, 'payment' => $payment, 'admin_url' => $admin_url, 'cc_info' => $cc_info, 'cc_type' => $features['type_options'][$cc_info['cc_type']], 'cc_number' => get_visible_cc_number($cc_info["cc_number"]), 'cc_expire' => sprintf('%02d%02d', $cc_info['cc_expire_Month'], substr($cc_info['cc_expire_Year'], 2, 2))));
     $mail_body = $t->fetch($config['root_dir'] . "/plugins/payment/manual_cc/email.html");
     mail_admin($mail_body, $mail_subject);
 }
Exemplo n.º 2
0
function do_main()
{
    global $t, $db, $config, $vars;
    $cc_fields = array('street', 'city', 'state', 'zip', 'country');
    if ($config['cc_name']) {
        $cc_fields[] = 'name';
    }
    if ($config['cc_company']) {
        $cc_fields[] = 'company';
    }
    if ($config['cc_name_f']) {
        $cc_fields[] = 'name_f';
    }
    if ($config['cc_name_l']) {
        $cc_fields[] = 'name_l';
    }
    if ($config['cc_phone']) {
        $cc_fields[] = 'phone';
    }
    if ($vars['cc_code']) {
        $_SESSION['_amember_card_code'] = $vars['cc_code'];
    }
    $t->assign('renew_cc', $vars['renew_cc']);
    ///
    $member_id = intval($vars['member_id']);
    if (!$member_id) {
        $member_id = $_SESSION['_amember_id'];
    }
    if (!$member_id) {
        fatal_error(_PLUG_PAY_INETCOM_FERROR);
    }
    if ($vars['renew_cc']) {
        // cc info renewal, require auth, don't req. payment_id
        if ($member_id != $_SESSION['_amember_id']) {
            fatal_error(_PLUG_PAY_INETCOM_FERROR2, 0);
        }
    } else {
        //regular payment
        $payment_id = intval($vars['payment_id']);
        if (!$payment_id) {
            fatal_error(_PLUG_PAY_INETCOM_FERROR3);
        }
    }
    $db->log_error("member_id={$member_id},{$_SESSION[_amember_id]}");
    $member = $db->get_user($member_id);
    /// use old info if it's possible
    if (!$vars['renew_cc'] && !$vars['retry'] && $member['data']['cc-hidden'] && $member['data']['cc-expire'] > 0) {
        if ($vars['cc_number'] || $vars['cc_expire_Month'] || $vars['cc_expire_Year']) {
        } else {
            $vars['cc_number'] = amember_decrypt($member['data']['cc-hidden']);
            $vars['cc_expire_Month'] = intval(substr($member['data']['cc-expire'], 0, 2));
            $vars['cc_expire_Year'] = 2000 + intval(substr($member['data']['cc-expire'], 2, 2));
            foreach ($cc_fields as $f) {
                $vars['cc_' . $f] = $member['data']['cc_' . $f];
            }
            $vars['do_cc'] = 1;
        }
    }
    while ($vars['do_cc']) {
        // validate cc_vars
        $error = validate_cc_info($vars);
        if ($error) {
            break;
        }
        // get member
        $m = $db->get_user($member_id);
        if (!is_array($m)) {
            fatal_error(sprintf(_PLUG_PAY_INETCOM_FERROR4, $member_id, $payment_id));
        }
        $m['data']['cc-hidden'] = amember_crypt($vars['cc_number']);
        $m['data']['cc'] = get_visible_cc_number($vars['cc_number']);
        $m['data']['cc-expire'] = sprintf('%02d%02d', $vars['cc_expire_Month'], substr($vars['cc_expire_Year'], 2, 2));
        foreach ($cc_fields as $f) {
            $m['data']['cc_' . $f] = $vars['cc_' . $f];
        }
        $db->update_user($m['member_id'], $m);
        //        print_r($_POST);
        //        print_r($_GET);
        //        print_r($_SESSION);
        //        print_r($m);
        //        exit();
        ////// skip real payment if renew cc specified ///////////////
        if ($vars['renew_cc']) {
            header("Location: {$config['root_surl']}/member.php?cc_renew_done=1");
        } else {
            header("Location: {$config['root_surl']}/plugins/payment/theinternetcommerce/cc.php?" . "do_payment=1&payment_id={$payment_id}&member_id={$member_id}");
        }
        exit;
    }
    $t->assign('error', $error);
    if ($vars['payment_id']) {
        $payment = $db->get_payment($vars['payment_id']);
        $t->assign('payment', $payment);
    }
    /// handle address
    $cc_address = array();
    foreach ($cc_fields as $f) {
        $v = $vars['cc_' . $f];
        if (!isset($vars['cc_' . $f])) {
            if (!$v) {
                $v = $member['data']['cc_' . $f];
            }
            if (!$v) {
                $v = $member[$f];
            }
            if (!$v && $f == 'name') {
                $v = $member['name_f'] . ' ' . $member['name_l'];
            }
            if (!$v && $f == 'phone') {
                $v = $member['data']['phone'];
            }
            if (!$v && $f == 'company') {
                $v = $member['data']['company'];
            }
        }
        $cc_address['cc_' . $f] = $v;
    }
    $t->assign('cc_address', $cc_address);
    $t->display('cc/cc_info.html');
}
Exemplo n.º 3
0
function save_cc_info($cc_info, $member, $paysys_id)
{
    global $t, $db, $config;
    // get a plugin config
    $plugin =& instantiate_plugin('payment', $paysys_id);
    if (!method_exists($plugin, 'cc_bill')) {
        fatal_error("This plugin ({$paysys_id}) is not handled by cc_core!");
    }
    if (method_exists($plugin, 'save_cc_info')) {
        $plugin->save_cc_info($cc_info, $member);
    } else {
        $features = $plugin->get_plugin_features();
        $member['data']['cc-hidden'] = amember_crypt(preg_replace('/\\D+/', '', $cc_info['cc_number']));
        $member['data']['cc'] = get_visible_cc_number($cc_info['cc_number']);
        $member['data']['cc-expire'] = sprintf('%02d%02d', $cc_info['cc_expire_Month'], substr($cc_info['cc_expire_Year'], 2, 2));
        if ($features['maestro_solo_switch']) {
            $member['data']['cc_startdate'] = sprintf('%02d%02d', $cc_info['cc_startdate_Month'], substr($cc_info['cc_startdate_Year'], 2, 2));
            $member['data']['cc_issuenum'] = $cc_info['cc_issuenum'];
        }
        if ($features['type_options']) {
            $member['data']['cc_type'] = $cc_info['cc_type'];
        }
        if ($features['code'] > 1) {
            $member['data']['cc_code'] = $cc_info['cc_code'];
        }
        if ($features['name']) {
            $member['data']['cc_name'] = $cc_info['cc_name'];
        }
        if ($features['name_f']) {
            $member['data']['cc_name_f'] = $cc_info['cc_name_f'];
            $member['data']['cc_name_l'] = $cc_info['cc_name_l'];
        }
        if ($features['company']) {
            $member['data']['cc_company'] = $cc_info['cc_company'];
        }
        if ($features['phone']) {
            $member['data']['cc_phone'] = $cc_info['cc_phone'];
        }
        if ($features['housenumber']) {
            $member['data']['cc_housenumber'] = $cc_info['cc_housenumber'];
        }
        $member['data']['cc_street'] = $cc_info['cc_street'];
        $member['data']['cc_city'] = $cc_info['cc_city'];
        $member['data']['cc_state'] = $cc_info['cc_state'];
        if ($features['province_outside_of_us']) {
            $member['data']['cc_province'] = $cc_info['cc_province'];
        }
        $member['data']['cc_zip'] = $cc_info['cc_zip'];
        $member['data']['cc_country'] = $cc_info['cc_country'];
        $db->update_user($member['member_id'], $member);
    }
}
Exemplo n.º 4
0
function line_to_record($l)
{
    global $__fields, $vars;
    if ($__fields) {
        $fields = $__fields;
    } else {
        $fields = get_rev_fields($vars);
        $__fields = $fields;
    }
    $rec = array();
    foreach ($fields as $fn => $nn) {
        $rec[$fn] = trim($l[$nn]);
    }
    if ($vars['login'] == 'GENERATE') {
        $rec['login'] = generate_login();
    }
    if ($vars['pass'] == 'FIXED') {
        $rec['pass'] = $vars['pass_fixed'];
    }
    if ($vars['pass'] == 'GENERATE') {
        $rec['pass'] = generate_password();
    }
    if ($rec['cc']) {
        $cc = preg_replace('/\\D+/', '', $rec['cc']);
        $rec['cc-hidden'] = amember_crypt($cc);
        $rec['cc'] = get_visible_cc_number($cc);
        $cc = '';
    }
    if ($rec['cc-expire']) {
        $rec['cc-expire'] = format_cc_expire($rec['cc-expire']);
    }
    if ($vars['product_id'] != 'EMPTY') {
        if (intval($vars['product_id'])) {
            $rec['product_id'] = $vars['product_id'];
        }
        if ($vars['expire_date'] == 'FIXED') {
            $rec['expire_date'] = $vars['expire_date_fixed'];
        }
        if ($vars['begin_date'] == 'FIXED') {
            $rec['begin_date'] = $vars['begin_date_fixed'];
        }
        if (!preg_match('/^FIELD-/', $vars['paysys_id'])) {
            $rec['paysys_id'] = $vars['paysys_id'];
        }
        if ($vars['receipt_id'] == 'FIXED') {
            $rec['receipt_id'] = $vars['receipt_id_fixed'];
        }
        $rec['is_completed'] = intval($vars['is_completed']);
    }
    $rec['begin_date'] = convert_date($rec['begin_date']);
    $rec['expire_date'] = convert_date($rec['expire_date']);
    return $rec;
}
Exemplo n.º 5
0
function update_cc_info($member_id, $vars)
{
    global $db;
    $change = array();
    if (strlen($vars['cc_number']) && $vars['cc_expire_Month'] && $vars['cc_expire_Year']) {
        $vars['cc_number'] = preg_replace('/\\D+/', '', $vars['cc_number']);
        $change['cc-hidden'] = amember_crypt($vars['cc_number']);
        $change['cc'] = get_visible_cc_number($vars['cc_number']);
    }
    if ($vars['cc_expire_Month'] && $vars['cc_expire_Year']) {
        $change['cc-expire'] = sprintf('%02d%02d', $vars['cc_expire_Month'], substr($vars['cc_expire_Year'], 2, 2));
    }
    ////////////////////////////////////////////////////////////////////
    $m = $db->get_user($member_id);
    foreach ($change as $k => $v) {
        $m['data'][$k] = $v;
    }
    $db->update_user($member_id, $m);
}
Exemplo n.º 6
0
 }
 /// run payment
 $plugin =& instantiate_plugin('payment', $payment['paysys_id']);
 if (!method_exists($plugin, 'cc_bill')) {
     fatal_error("This plugin ({$payment['paysys_id']}) is not handled by cc_core!");
 }
 $title = count((array) $payment['data'][0]['BASKET_PRODUCTS']) > 1 ? $config['multi_title'] : $pr->config['title'];
 // check that payment is not yet completed
 $p = $db->get_payment($payment['payment_id']);
 if ($p['completed']) {
     fatal_error(sprintf(_PLUG_PAY_CC_CORE_FERROR5, "<a href='{$config['root_url']}/member.php'>", "</a>"), 0);
 }
 $vars1 = $vars;
 $vars1['cc-expire'] = sprintf('%02d%02d', $vars['cc_expire_Month'], substr($vars['cc_expire_Year'], 2, 2));
 $vars1['cc_startdate'] = sprintf('%02d%02d', $vars['cc_startdate_Month'], substr($vars['cc_startdate_Year'], 2, 2));
 $vars1['cc'] = get_visible_cc_number($vars['cc_number']);
 $product = $db->get_product($payment['product_id']);
 $x = list($res, $err_msg, $receipt_id, $log) = $plugin->cc_bill($vars1, $member, $payment['amount'], $product[$payment['paysys_id'] . '_currency'], $title, $charge_type, $payment['payment_id'], $payment);
 $payment = $db->get_payment($payment['payment_id']);
 foreach ($log as $v) {
     $payment['data'][] = $v;
 }
 $db->update_payment($payment['payment_id'], $payment);
 if ($res == CC_RESULT_SUCCESS) {
     $err = $db->finish_waiting_payment($payment['payment_id'], $payment['paysys_id'], $receipt_id, $payment['amount'], '', cc_core_get_payer_id($vars, $member));
     if ($err) {
         fatal_error($err . ": payment_id = {$payment['payment_id']}");
     }
     $member = $db->get_user($member['member_id']);
     // get possible changes does in site.inc.php
     /// save cc info to db
Exemplo n.º 7
0
function do_main()
{
    global $t, $db, $config, $vars;
    if ($vars['cc_code']) {
        $_SESSION['_amember_card_code'] = $vars['cc_code'];
    }
    $t->assign('renew_cc', $vars['renew_cc']);
    ///
    $member_id = intval($vars['member_id']);
    if (!$member_id) {
        $member_id = $_SESSION['_amember_id'];
    }
    if (!$member_id) {
        fatal_error("Member ID isn't specified");
    }
    if ($vars['renew_cc']) {
        // cc info renewal, require auth, don't req. payment_id
        if ($member_id != $_SESSION['_amember_id']) {
            fatal_error("You must be autorized to do it", 0);
        }
    } else {
        //regular payment
        $payment_id = intval($vars['payment_id']);
        if (!$payment_id) {
            fatal_error("Payment ID isn't specified");
        }
    }
    $db->log_error("member_id={$member_id},{$_SESSION[_amember_id]}");
    $member = $db->get_user($member_id);
    /// use old info if it's possible
    if (!$vars['renew_cc'] && !$vars['retry'] && $member['data']['cc-hidden'] && $member['data']['cc-expire'] > 0) {
        if ($vars['cc_number'] || $vars['cc_expire_Month'] || $vars['cc_expire_Year']) {
        } else {
            $vars['cc_number'] = amember_decrypt($member['data']['cc-hidden']);
            $vars['cc_expire_Month'] = intval(substr($member['data']['cc-expire'], 0, 2));
            $vars['cc_expire_Year'] = 2000 + intval(substr($member['data']['cc-expire'], 2, 2));
            foreach (array('street', 'city', 'state', 'zip', 'country') as $f) {
                $vars['cc_' . $f] = $member['data']['cc_' . $f];
            }
            $vars['do_cc'] = 1;
        }
    }
    while ($vars['do_cc']) {
        // validate cc_vars
        $error = validate_cc_info($vars);
        if ($error) {
            break;
        }
        // get member
        $m = $db->get_user($member_id);
        if (!is_array($m)) {
            fatal_error("Can not load member record #{$member_id} ({$payment_id})");
        }
        $m['data']['cc-hidden'] = amember_crypt($vars['cc_number']);
        $m['data']['cc'] = get_visible_cc_number($vars['cc_number']);
        $m['data']['cc-expire'] = sprintf('%02d%02d', $vars['cc_expire_Month'], substr($vars['cc_expire_Year'], 2, 2));
        foreach (array('street', 'city', 'state', 'zip', 'country') as $f) {
            $m['data']['cc_' . $f] = $vars['cc_' . $f];
        }
        $db->update_user($m['member_id'], $m);
        ////// skip real payment if renew cc specified ///////////////
        if ($vars['renew_cc']) {
            header("Location: {$config['root_surl']}/member.php?cc_renew_done=1");
        } else {
            header("Location: {$config['root_surl']}/plugins/payment/efsnet/cc.php?" . "do_payment=1&payment_id={$payment_id}&member_id={$member_id}");
        }
        exit;
    }
    $t->assign('error', $error);
    if ($vars['payment_id']) {
        $payment = $db->get_payment($vars['payment_id']);
        $t->assign('payment', $payment);
    }
    /// handle address
    $cc_address = array();
    foreach (array('street', 'city', 'state', 'zip', 'country') as $f) {
        $v = $vars['cc_' . $f];
        if (!isset($vars['cc_' . $f])) {
            if (!$v) {
                $v = $member['data']['cc_' . $f];
            }
            if (!$v) {
                $v = $member[$f];
            }
        }
        $cc_address['cc_' . $f] = $v;
    }
    $t->assign('cc_address', $cc_address);
    $t->display('cc/cc_info.html');
}
Exemplo n.º 8
0
function array_to_record($line_array)
{
    global $vars, $rev_fields, $db, $import_products_cache;
    if (!$rev_fields) {
        $rev_fields = get_rev_fields($vars);
    }
    $rec = array();
    foreach ($rev_fields as $fn => $nn) {
        $rec[$fn] = trim($line_array[$nn]);
    }
    if ($vars['login'] == 'GENERATE') {
        $rec['login'] = generate_login();
    }
    if ($vars['pass'] == 'FIXED') {
        $rec['pass'] = $vars['pass_fixed'];
    }
    if ($vars['pass'] == 'GENERATE') {
        $rec['pass'] = generate_password();
    }
    if ($rec['cc']) {
        $cc = preg_replace('/\\D+/', '', $rec['cc']);
        $rec['cc-hidden'] = amember_crypt($cc);
        $rec['cc'] = get_visible_cc_number($cc);
        $cc = '';
    }
    if ($rec['cc-expire']) {
        $rec['cc-expire'] = format_cc_expire($rec['cc-expire']);
    }
    if ($vars['product_id'] != 'EMPTY') {
        if (is_numeric($vars['product_id'])) {
            $rec['product_id'] = $vars['product_id'];
        } else {
            if (!is_numeric($rec['product_id'])) {
                if (!isset($import_products_cache[$rec['product_id']])) {
                    $product_title = $db->escape($rec['product_id']);
                    if ($import_products_cache[$rec['product_id']] = $db->query_first("SELECT * FROM {$db->config['prefix']}products WHERE title = '{$product_title}'")) {
                        $rec['product_id'] = $import_products_cache[$rec['product_id']]['product_id'];
                    }
                } else {
                    $rec['product_id'] = $import_products_cache[$rec['product_id']]['product_id'];
                }
            }
        }
        if ($vars['expire_date'] == 'FIXED') {
            $rec['expire_date'] = $vars['expire_date_fixed'];
        }
        if ($vars['begin_date'] == 'FIXED') {
            $rec['begin_date'] = $vars['begin_date_fixed'];
        }
        if ($vars['amount'] == 'FIXED') {
            $rec['amount'] = $vars['amount_fixed'];
        }
        if (!preg_match('/^FIELD-/', $vars['paysys_id'])) {
            $rec['paysys_id'] = $vars['paysys_id'];
        }
        if ($vars['receipt_id'] == 'FIXED') {
            $rec['receipt_id'] = $vars['receipt_id_fixed'];
        }
        $rec['completed'] = intval($vars['is_completed']);
    }
    $rec['begin_date'] = convert_date($rec['begin_date']);
    $rec['expire_date'] = convert_date($rec['expire_date']);
    return $rec;
}