西部数码主机 | 阿里云主机| 虚拟主机 | 服务器 | 返回乐道官网
当前位置: 主页 > php教程 > zencart教程 >

zencart针对paypal防漏单方法(2)

时间:2011-11-17 22:22来源:未知 作者:好模板 点击:
如果顾客返回修改了购物车,再次到达checkout_payment时$_SESSION['order_number_created']将被清除, 其实,生成订单的代码可以写在modules/payment/paypal.php的 function
 
如果顾客返回修改了购物车,再次到达checkout_payment时$_SESSION['order_number_created']将被清除,
 
 
其实,生成订单的代码可以写在modules/payment/paypal.php的 function confirmation()中。
 
 
代码如下:
 
 
function confirmation() {
 
if(!isset($_SESSION['order_number_created']))
 
{
 
global $order,$order_total_modules,$order_totals,$zco_notifier,$insert_id; 
 
$zco_notifier->notify(‘NOTIFY_CHECKOUT_PROCESS_BEGIN’); // if the customer is not logged on, redirect them to the time out page 
 
if (!$_SESSION['customer_id']) 
 
zen_redirect(zen_href_link(FILENAME_TIME_OUT)); 
 
 
else 
 
{ // validate customer 
 
if (zen_get_customer_validate_session($_SESSION['customer_id']) == false) 
 
 
$_SESSION['navigation']->set_snapshot(array(‘mode’ => ‘SSL’, ‘page’ => FILENAME_CHECKOUT_SHIPPING)); 
 
zen_redirect(zen_href_link(FILENAME_LOGIN, ”, ‘SSL’)); 
 
 
 
if(isset($mycartID)&&$mycartID == $_SESSION['cart']->cartID)
 
 
return array(‘title’ => MODULE_PAYMENT_PAYPAL_TEXT_DESCRIPTION); 
 
 
$mycartID = $_SESSION['cart']->cartID; 
 
$order = new order; // prevent 0-entry orders from being generated/spoofed 
 
if (sizeof($order->products) < 1) 
 
 
zen_redirect(zen_href_link(FILENAME_SHOPPING_CART)); 
 
 
$order_total_modules = new order_total; 
 
$zco_notifier->notify(‘NOTIFY_CHECKOUT_PROCESS_BEFORE_ORDER_TOTALS_PRE_CONFIRMATION_CHECK’); 
 
//$order_totals = $order_total_modules->pre_confirmation_check(); 
 
$zco_notifier->notify(‘NOTIFY_CHECKOUT_PROCESS_BEFORE_ORDER_TOTALS_PROCESS’); 
 
$order_totals = $order_total_modules->process(); 
 
$zco_notifier->notify(‘NOTIFY_CHECKOUT_PROCESS_AFTER_ORDER_TOTALS_PROCESS’); 
 
if (!isset($_SESSION['payment']) && !$credit_covers) 
 
 
zen_redirect(zen_href_link(FILENAME_DEFAULT)); 
 
} // load the before_process
 
// load the before_process function from the payment modules 
 
//$zco_notifier->notify(‘NOTIFY_CHECKOUT_PROCESS_AFTER_PAYMENT_MODULES_BEFOREPROCESS’); 
 
// create the order record 
 
$insert_id = $order->create($order_totals, 2); 
 
require(DIR_WS_LANGUAGES.’english/email_extras.php’); 
 
require(DIR_WS_LANGUAGES.’english/checkout_process.php’); 
 
// store the product info to the order 
 
$order->create_add_products($insert_id); 
 
$_SESSION['order_number_created'] = $insert_id; 
 
$zco_notifier->notify(‘NOTIFY_CHECKOUT_PROCESS_AFTER_ORDER_CREATE_ADD_PRODUCTS’); 
 
$order->send_order_email($insert_id, 2);
 
if (is_array($order_total_modules->modules)) 
 
{
 
reset($order_total_modules->modules);
 
while (list(, $value) = each($order_total_modules->modules)) 
 
{
 
$class = substr($value, 0, strrpos($value, ‘.’));
 
if (!isset($GLOBALS[$class])) continue;
 
$GLOBALS[$class]->output=null;
 
}
 
}
 
}
 
else 
 
return false;
 
}
 
这样后台看到的订单 的Payment Shipping 就还是paypal 送货方式.
 
(责任编辑:好模板)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
热点内容