zencart 支付流程总结

zencart 支付流程总结

paypal 支付方式流程总结:

1)购物车页面
2)order information 页面 ,选择 paypal 支付方式,提交处理的页面,仍然为 order information
3) order information 页面接受提交过来的数据,进行处理,然后跳转至  index.php?main_page=checkout_process
4) checkout_process 页面主要是对订单的处理,订单的记录入库,发送new_order 邮件;
在includes/modules/pages/checkout_process/header_php.php中
    $payment_modules->after_process();
    在每种支付的类中(如:includes/modules/payment/paypal.php)在 after_process中进行详细处理;
    unset 掉session中的一些变量,编写传递给第三方的数据等等;
5)第三方处理,完成支付;
6)在第三方网站点击返回,返回到checkout_success页面;

此种支付方式也是先在网站下单,然后再到第三方paypal进行支付;


paypal-express 快速支付流程总结:
1)直接在购物车页面点击 paypal-express,跳转到paypal 第三方
2) 从paypal第三方选择地址返回到我们的网站order information 页面,进行下单;

错误 #21853
[ja测试环境]paypal快速支付在order information页面,点击continue checkout,提示:10001 Transaction failed due to internal error - Internal Error

此BUG的原因:
paypal-express接口问题,在列出购买详细信息时,只支持美元

修复方法:
includes/modules/payment/paypalwpp.php
1897行:
if (DEFAULT_CURRENCY != 'USD') {
            $this->zcLog('getLineItemDetails 4', 'Not using default currency. Thus, no line-item details can be submitted.');
            return array();
}
此种支付方式,是先从购物车完成支付,然后才完成在网站的下单。

GC支付流程总结:
1)购物车页面
2)order information 页面,选择GC 支付方式
3)gc_billing 页面,选择卡的时候,js 通过 onchange事件 提交一个ajax 请求;ajax 提交到GC 的第三方处理,GC将处理的结果返回到页面,如果成功,则加载页面的continue 按钮,
   失败的话,页面输出错误信息;
4)返回成功,可以按continue 按钮继续提交,将订单的一些信息,以及支付的卡号,有效期传递给第三方,完成支付;直接跳转至网站的checkout_success 页面;

此种支付方式是先在网站下单,然后再到第三方完成支付。

原文地址:https://www.cnblogs.com/jevil/p/3175131.html