Example #1
0
            mail_template_admin($t, $et);
        }
        if ($config['mail_cancel_member']) {
            $t->assign('user', $member);
            $t->assign('payment', $p);
            $t->assign('product', $db->get_product($p['product_id']));
            $et =& new aMemberEmailTemplate();
            $et->name = "mail_cancel_member";
            mail_template_user($t, $et, $member);
        }
        $t->assign('title', _PLUG_PAY_CC_CORE_SBSCNCL);
        $t->assign('msg', _PLUG_PAY_CC_CORE_SBSCNCL2);
        $t->display("msg_close.html");
        break;
    case 'renew_cc':
        // make first payment
        if ($vars['do_cc']) {
            $errors = validate_cc_info($member, array('paysys_id' => $vars['paysys_id']), $vars);
            if (!$errors) {
                save_cc_info($vars, $member, $vars['paysys_id']);
                html_redirect("{$config['root_surl']}/member.php?cc_renew_done=1", 0, _PLUG_PAY_CC_CORE_CCINFOCHNG, _PLUG_PAY_CC_CORE_REDIR);
            } else {
                ask_cc_info($member, array('paysys_id' => $vars['paysys_id']), $vars, 1, $errors);
            }
        } else {
            ask_cc_info($member, array('paysys_id' => $vars['paysys_id']), $vars, 1, $errors);
        }
        break;
    default:
        fatal_error(_PLUG_PAY_CC_CORE_FERROR7);
}
 function process_postback($vars)
 {
     global $db;
     $this->config['disable_postback_log'] = 1;
     $vars['PaRes'] = urlencode($vars['PaRes']);
     $vars['MD'] = urlencode($vars['MD']);
     $log = array();
     $log[] = $vars;
     $s = cc_core_get_url("https://www.beanstream.com/scripts/process_transaction_auth.asp" . "?PaRes={$vars['PaRes']}&MD={$vars['MD']}");
     parse_str($s, $ret);
     $log[] = $ret;
     if ($ret['trnApproved']) {
         $x = array(CC_RESULT_SUCCESS, "", $ret['trnId'], $log);
     } else {
         if ($ret['errorType'] == 'S') {
             $x = array(CC_RESULT_INTERNAL_ERROR, $ret['messageText'], "", $log);
         } else {
             $x = array(CC_RESULT_DECLINE_PERM, $ret['messageText'], "", $log);
         }
     }
     list($res, $err_msg, $receipt_id, $log) = $x;
     $payment = $db->get_payment($ret['trnOrderNumber']);
     $member = $db->get_user($payment['member_id']);
     foreach ($log as $v) {
         $payment['data'][] = $v;
     }
     $db->update_payment($payment['payment_id'], $payment);
     if ($res == CC_RESULT_SUCCESS) {
         $cc_info = array('cc_number' => amember_decrypt($member['cc-hidden']));
         $err = $db->finish_waiting_payment($payment['payment_id'], $payment['paysys_id'], $receipt_id, $payment['amount'], '', cc_core_get_payer_id($cc_info, $member));
         if ($err) {
             fatal_error($err . ": payment_id = {$payment['payment_id']}");
         }
         /// save cc info to db
         //            if ($charge_type != CC_CHARGE_TYPE_REGULAR){
         //                save_cc_info($cc_info, $member, $payment['paysys_id']);
         //            }
         /// display thanks page
         $product = $db->get_product($payment['product_id']);
         $t =& new_smarty();
         $t->assign('payment', $payment);
         if ($payment) {
             $t->assign('product', $db->get_product($payment['product_id']));
             $t->assign('member', $db->get_user($payment['member_id']));
         }
         if (!($prices = $payment['data'][0]['BASKET_PRICES'])) {
             $prices = array($payment['product_id'] => $payment['amount']);
         }
         $pr = array();
         $subtotal = 0;
         foreach ($prices as $product_id => $price) {
             $v = $db->get_product($product_id);
             //		        $v['price'] = $price;
             $subtotal += $v['price'];
             $pr[$product_id] = $v;
         }
         $t->assign('subtotal', $subtotal);
         $t->assign('total', array_sum($prices));
         $t->assign('products', $pr);
         $t->display("thanks.html");
     } else {
         $member = $db->get_user($payment['member_id']);
         $v = get_cc_info_hash($member, $action = "mfp");
         $_GET = $_POST = $vars = array('action' => 'mfp', 'payment_id' => $payment['payment_id'], 'paysys_id' => $payment['paysys_id'], 'member_id' => $member_id, 'v' => $v);
         global $t;
         $t = new_smarty();
         foreach ($vars as $k => $v) {
             $t->_smarty_vars['request'][$k] = $v;
         }
         ask_cc_info($member, $payment, $vars, 0, array(_PLUG_PAY_BEANSTREAM_PFAILED . $err_msg));
     }
 }