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)); } }