当前位置:首页>>动态

shopro商城,新增押金缴纳,集成到充值模块

开发流程:1、数据表 fa_shopro_trade_order 将type字段改成enum('recharge', 'pledge')2、前台新建缴纳押金的页面,参考充值的页面复制过来修改一下,将充值提交给后台加一个 recharge_type 参数:充值页面recharge_type:'recharge',缴纳押金页面recharge_type:'pledge'3、前台提交

admin

image.png

开发流程:

1、数据表 fa_shopro_trade_order 将type字段改成 enum('recharge', 'pledge')

image.png

2、前台新建缴纳押金的页面,参考充值的页面复制过来修改一下,将充值提交给后台加一个 recharge_type 参数:充值页面recharge_type:'recharge',缴纳押金页面recharge_type:'pledge'

image.png

image.png

3、前台提交充值订单给后台的 recharge 方法:/addons/shopro/controller/trade/Order.php

创建充值订单,type(押金订单类型)是pledge,用来区别充值订单

4、创建充值订单完成后,进入到收银台支付流程,/addons/shopro/service/pay/PayOper.php

public function checkAndPaid($order, $order_type, $pay_mode = 'online') ,这个方法,支付完成后,创建异步队列

5、通过异步队列执行增加充值金额的操作,/addons/shopro/job/trade/OrderPaid.php

我增加了下面一段代码,用来增加用户押金的操作,而不是增加用户余额

	if ($order->type == 'pledge') {
                        
        $ext = $order->ext;
        $rule = $ext['rule'] ?? [];
        $money = (isset($rule['money']) && $rule['money'] > 0) ? $rule['money'] : 0;
        if ($money > 0) {
            // 增加押金
            WalletService::change($user, 'pledge', $money, 'order_recharge', [
                'order_id' => $order->id,
                'order_sn' => $order->order_sn,
                'order_type' => 'trade_order',
            ]);
        }
        
    }

6、/addons/shopro/service/Wallet.php

这个文件 change 方法增加用户押金,同时创建资金明细记录

















返回顶部