Table of Contents
zen_cart implements the method of generating orders before payment, zen_cart generates orders
Home Backend Development PHP Tutorial zen_cart implements the method of generating orders before payment, zen_cart generates orders_PHP tutorial

zen_cart implements the method of generating orders before payment, zen_cart generates orders_PHP tutorial

Jul 12, 2016 am 08:53 AM
zen pay Order

zen_cart implements the method of generating orders before payment, zen_cart generates orders

This article describes the example of zen_cart implementing the method of generating orders before payment. Share it with everyone for your reference, the details are as follows:

In addition to paypal, customers can place orders by entering the page index.php?main_page=checkout_confirmation through other payment methods.
But!! Paypal is a little different. It can only place orders after returning from its official website [paypal.com] and entering the checkout_process page

Accidents often happen: For example, the network is not smooth. Or a customer accidentally closes the page before returning.

Then, our website backend cannot see what product the customer bought (although we can see who bought it in the paypal backend, but we really can’t know what he bought). This is very depressing. Things

The principle of paypal’s anti-leaking order is------place an order on the page checkout_confirmation.php!!!

The method is: in the last part of this file
Copy code The code is as follows: echo TITLE_CONTINUE_CHECKOUT_PROCEDURE . '
' . TEXT_CONTINUE_CHECKOUT_PROCEDURE;

Add code after

:

// create the order record 防漏单 
if ($_SESSION['payment'] == 'paypal') { 
$insert_id = $order->create($order_totals, 2);
$zco_notifier->notify('NOTIFY_CHECKOUT_PROCESS_AFTER_ORDER_CREATE');
$payment_modules->after_order_create($insert_id);
$zco_notifier->notify('NOTIFY_CHECKOUT_PROCESS_AFTER_PAYMENT_MODULES_AFTER_ORDER_CREATE');
// store the product info to the order
$order->create_add_products($insert_id);
$_SESSION['order_number_created'] = $insert_id;

Copy after login

In order to avoid affecting other payment methods, the code has made a judgment that only paypal payment will run the code that generates orders. After adding this section, you don’t have to worry about missing orders.

If you need a more perfect approach, in order to prevent customers from repeatedly generating orders when accessing the checkout process, you need to add a judgment

if($_SESSION['payment']!='paypal'){
/*// create the order record
$insert_id = $order->create($order_totals, 2);
$zco_notifier->notify('NOTIFY_CHECKOUT_PROCESS_AFTER_ORDER_CREATE');
$payment_modules->after_order_create($insert_id);
$zco_notifier->notify('NOTIFY_CHECKOUT_PROCESS_AFTER_PAYMENT_MODULES_AFTER_ORDER_CREATE');
// 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');
//send email notifications
$order->send_order_email($insert_id, 2);
$zco_notifier->notify('NOTIFY_CHECKOUT_PROCESS_AFTER_SEND_ORDER_EMAIL');*/
}

Copy after login

And on the confirmation page, if the customer keeps refreshing the page, orders will continue to be generated. You can add a limit.

// create the order record 防漏单
if ($_SESSION['payment'] == 'paypal' and !isset($_SESSION['order_number_created'])) {
$insert_id = $order->create($order_totals, 2);
$zco_notifier->notify('NOTIFY_CHECKOUT_PROCESS_AFTER_ORDER_CREATE');
$payment_modules->after_order_create($insert_id);
$zco_notifier->notify('NOTIFY_CHECKOUT_PROCESS_AFTER_PAYMENT_MODULES_AFTER_ORDER_CREATE');
// store the product info to the order
$order->create_add_products($insert_id);
$_SESSION['order_number_created'] = $insert_id;
}

Copy after login

Add

anywhere in pages/checkout_payment/header_php.php
unset($_SESSION['order_number_created']);

Copy after login

In this way, even if the customer keeps refreshing the confirmation page, because it has been set

$_SESSION['order_number_created']

Copy after login

Orders are no longer generated,

If the customer returns to modify the shopping cart, $_SESSION['order_number_created'] will be cleared when checkout_payment is reached again,

In fact, the code to generate an order can be written in function confirmation() of modules/payment/paypal.php.

The code is as follows:

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

Copy after login

Readers who are interested in more content related to zend framework can check out the special topics on this site: "Introduction Tutorial on Zend FrameWork Framework", "Summary of PHP Operation Zip File and Compression Techniques", "Summary of PHP File Operation", "Introduction Tutorial on ThinkPHP" ", "Summary of Common Methods of ThinkPHP", "Basic Tutorial for Getting Started with Smarty Templates" and "Summary of PHP Template Technology".

I hope this article will be helpful to everyone’s PHP program design based on the zend framework.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/1123802.htmlTechArticlezen_cart realizes the method of generating orders before payment, zen_cart generates orders. This article describes the example of zen_cart realizing the method of generating orders before payment. . Share it with everyone for your reference, the details are as follows:...
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to pay for a taxi ride on Baidu Maps. Introduction to the payment steps for a taxi ride. How to pay for a taxi ride on Baidu Maps. Introduction to the payment steps for a taxi ride. Mar 13, 2024 am 10:04 AM

Baidu Map APP has now become the preferred travel navigation software for many users, so some of the functions here are comprehensive and can be selected and operated for free to solve some of the problems that you may encounter in daily travel. You can all check some of your own travel routes and plan some of your own travel plans. After checking the corresponding routes, you can choose appropriate travel methods according to your own needs. So whether you choose some public transportation, Cycling, walking or taking a taxi can all satisfy your needs. There are corresponding navigation routes that can successfully lead you to a certain place. Then everyone will feel more convenient if they choose to take a taxi. There are many drivers They are all able to take orders online, and taxi-hailing has become super

How uniapp application implements payment and order management How uniapp application implements payment and order management Oct 19, 2023 am 10:37 AM

uniapp is a cross-platform application development framework that can develop small programs, Apps and H5 at the same time. In uniapp applications, payment and order management are very common needs. This article will introduce how to implement payment functions and order management in the uniapp application, and give specific code examples. 1. Implementing the payment function The payment function is the key to realizing online transactions, and it usually requires integrating the SDK of a third-party payment platform. The following are the specific steps to implement the payment function in uniapp: Register and obtain a third-party payment platform

How to apply for a refund for a Meituan takeout order. Detailed guide to applying for a refund on an order. How to apply for a refund for a Meituan takeout order. Detailed guide to applying for a refund on an order. Mar 12, 2024 am 10:50 AM

I believe that many users like some of the above functions very much, right? It not only saves you more time and effort, but also can always meet your various needs for food. Sometimes we order When taking out food, we find that some orders were delivered incorrectly or that our food cannot be eaten. At these times, we will definitely need to find some refund methods, so we also hope to be able to help everyone here. We can help you better. If there is a problem with some of the takeaways we order in the future, we can definitely protect our rights and interests directly. If the merchant does not agree, we will directly transfer manual customer intervention, so let’s take a look at the details now. Way to go, you can’t miss the excitement, hurry up

Pay using PHP and PayPal API Pay using PHP and PayPal API Jun 19, 2023 pm 04:13 PM

With the increasing popularity of online transactions, payment methods are gradually diversifying, among which PayPal is very popular as a widely used payment method. If you want to use PayPal to process transactions on your website or application, then you can use PHP and PayPal API to complete the payment process easily. PayPalAPI is a set of programming interfaces for interacting with PayPal. Through the API, you can receive notifications from PayPal, query the latest transaction information, and initiate payments.

How to refund Meituan's pending orders_Meituan's tutorial on refunding pending orders How to refund Meituan's pending orders_Meituan's tutorial on refunding pending orders Mar 27, 2024 pm 08:40 PM

1. First open the Meituan app and click on the order to be used to enter. 2. Then on the page to be used, click on the order that needs to be refunded. 3. Then you can see the merchant information and order information. At this time, you can see the option to apply for a refund. Click to apply for a refund. 4. Finally, select the reason for the refund. Generally, the payment will be processed quickly if you choose a reason that has no impact on the merchant.

PHP mall development skills: Design shopping cart and order synchronization functions PHP mall development skills: Design shopping cart and order synchronization functions Jul 30, 2023 pm 07:22 PM

PHP mall development skills: Design shopping cart and order synchronization functions In a mall website, shopping cart and orders are indispensable functions. The shopping cart is used for users to purchase products and save them to a temporary shopping cart, while the order is a record generated after the user confirms the purchase of the product. In order to improve user experience and reduce errors, it is very important to design a shopping cart and order synchronization function. 1. The Concept of Shopping Cart and Order A shopping cart is usually a temporary container used to store items purchased by users. Users can add products to the shopping cart for easy browsing and management.

How to pay for taking the bus in Wuhan How to pay for taking the bus in Wuhan Oct 13, 2022 pm 02:17 PM

Payment methods for taking buses in Wuhan: 1. For cash payment, you need to prepare sufficient change in advance and put the money directly into the coin slot; 2. Swipe the Wuhan Tong card. The full name of Wuhan Tong is Wuhan City Card, which is an integrated circuit Card, also known as chip card; 3. Alipay electronic bus card, first get a Wuhan electronic bus card in Alipay, and then directly scan the QR code to deduct the money when getting on the bus; 4. WeChat bus code payment , open the WeChat "Ride Code" applet, activate the Wuhan "Ride Code", and you can directly scan the QR code to deduct payment and get on the bus.

How to close Meituan Takeout Express Payment How to close Meituan Takeout Express Payment Mar 27, 2024 am 10:41 AM

In the fast-paced modern life, Meituan Takeaway is deeply loved by consumers for its convenient services and rich choices. Among them, the ultra-fast payment function brings great convenience to users. Payment can be completed with one click, eliminating tedious input steps. However, many users don't like paying directly without confirmation, so they want to turn off this feature. So how to turn off the fast payment of Meituan Waimai? In the following, the editor of this website will bring you a detailed step-by-step setup tutorial, I hope it can help you! 1. Click the &quot;Meituan Takeout&quot; shortcut icon on the mobile phone desktop. 2. Log in to the Meituan takeout app on your mobile phone and click &quot;My&quot; in the lower right corner. 3. In the My interface, click &quot;Enter Wallet&quot;. 4. On the Meituan Wallet interface, click the &quot;Settings&quot; icon in the upper right corner

See all articles