fecmall 支付选择提交接口问题

FecMall问题咨询 · cqslxz · 于 4年前 发布 · 1984 次阅读

appserver中在使用【/checkout/payment/add】接口时传的参数【order_increment_id】不知传那个? 根据【/checkout/payment/index】中显示,不同商户会生成不同的订单,有几个increment_id数据。我看了代码在这里我只能传一个订单号。这有问题?

共收到 4 条回复 问题提问
Fecmall#14年前 0 个赞

查看代码:

1.controller: https://github.com/fecmall/yii2_fecmall_fbbcbase/blob/master/app/appserver/modules/Checkout/controllers/PaymentController.php#L42

2.block:https://github.com/fecmall/yii2_fecmall_fbbcbase/blob/master/app/appserver/modules/Checkout/block/payment/Add.php#L22

分析

1.在sales_flat_order 表有一个字段 payment_no 订单交易编码, 当生成订单的时候, 如果购物车产品是多个商户,那么生成多个订单,多个订单的payment_no是相同的,查看代码:https://github.com/fecmall/yii2_fecmall_fbbcbase/blob/master/services/Order.php#L878

同时,将这个payment_no写入到token session(通过fecshop uuid存储在redis的值)中 ,查看代码:https://github.com/fecmall/yii2_fecmall_fbbcbase/blob/master/services/Order.php#L980

2.在订单生成后,payment_no写入到token session,然后跳转到payment页面,这种情况没有参数传递, 而是从token session中取出来payment_no,然后进行支付。

另外一种是从账户中心的订单部分,点击支付按钮过来的,这种是通过参数传递的,也就是order_increment_id,然后将这个写入到token session

当支付完成,返回网站的时候,从token session中取出来保存的值,然后通过 https://github.com/fecmall/yii2_fecmall_fbbcbase/blob/master/services/Order.php#L386 来辨别是订单表(sales_flat_order)的字段increment_id 还是payment_no, 通过这个函数可以看到原理:https://github.com/fecmall/yii2_fecmall_fbbcbase/blob/master/services/Order.php#L995

function paymentCodeIsPaymentNo($pay_no)
    {
        if (substr($pay_no, 0, 7) == 'pay_no_' ) {
            return true;
        }
        return false;
    }

为什么要这样做?

因为:1.要支持多商户产品,一次生成多个订单一起支付的情况,还要支持2.账户中心单个订单进行支付的情况,因此通过payment_no的编号都是以'pay_no_'开头来辨别。

Fecmall#24年前 0 个赞

整理了一个帖子:http://www.fecshop.com/topic/1903

3楼 已删除.
cqslxz#44年前 0 个赞

1、多商户下单流程

选择商品加入购物车-》进下单初始化界面-》选择地址,选择邮递方式-》进入选择支付初始化界面-》开始支付(/payment/checkmoney/start) 2、支付未支付的订单

点支付-》进入支付方式初始化界面(/checkout/payment/index)-》支付方式提交(/checkout/payment/add) =》 开始支付

1流程对吗? 现在我有个疑问。多商户选择的支付方式在哪里存的?我代码没看到。下单开始支付我去ssession里面找pay_no,然后去数据库里面找支付方式,但是没存的过程数据库里面改pay_no对应的订单就没支付方式。add是改increnment_id对应的支付方式。

Fecmall#54年前 0 个赞

@cqslxz #4楼 你去 http://vue.fecmall.com/#/ 下个单,查看一下步骤就明白了

现在是先下单,后支付,分成了2个步骤,因为下订单后,经销商可以修改订单的内容(淘宝拍下产品,可以让商家改价格),然后支付。

关于下单过程,上面说的很清楚了。

添加回复 (需要登录)
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册
Your Site Analytics