在FASTADMIN的CMS模块中的付费阅读几下载实现积分支付的方法

CMS1.2以前版本修复方法有三个文件需要修改


1.文件位置在 addons\cms\model 文件夹下的 Order.php 文件中找到//余额支付代码片断

 //使用余额支付
        if ($paytype == 'balance') {
            if (!$auth->id) {
                throw new OrderException('需要登录后才能够支付');
            }
            if ($auth->money < $archives->price) {
                throw new OrderException('余额不足,无法进行支付');
            }
            \think\Db::startTrans();
            try {
                User::money(-$archives->price, $auth->id, '购买付费文档:' . $archives['title']);
                self::settle($order->orderid);
                \think\Db::commit();
            } catch (Exception $e) {
                \think\Db::rollback();
                throw new OrderException($e->getMessage());
            }
            throw new OrderException('余额支付成功', 1);
        }

将这一段代码复制然后另起一行粘贴,然后进行如下修改

//使用积分支付-开始
        if ($paytype == 'jifen') {
            if (!$auth->id) {
                throw new OrderException('需要登录后才能够支付');
            }
            if ($auth->score < ($archives->price*10)) {
                throw new OrderException('积分不足,无法进行支付');
            }
            \think\Db::startTrans();
            try {
                User::score(-$archives->price, $auth->id, '购买付费文档:' . $archives['title']);
                self::settle($order->orderid);
                \think\Db::commit();
            } catch (Exception $e) {
                \think\Db::rollback();
                throw new OrderException($e->getMessage());
            }
            throw new OrderException('积分支付成功', 1);
        }
        //使用积分支付-结束

2.修改前端模版文件show开头的文件找到余额支付按钮的位置在下面增加一个积分支付按钮

<a type="button"  href="{:addon_url('cms/order/submit', ['id'=>$__ARCHIVES__.id,'paytype'=>'jifen'])}" class="btn btn-warning btn-jifen"  data-toggle="tooltip" data-placement="top" title="您当前拥有{$user.score}个积分" data-price="{$__ARCHIVES__.price*10}"><i class="fa fa-dollar"></i> 积分支付</a>

3. 修改文件   addons/cms/js/common.js      增加积分支付提示弹窗。

找到代码

// 余额支付提示
    $(document).on('click', '.btn-balance', function (e) {
        var that = this;
        layer.confirm("确认支付<span>¥" + $(this).data("price") + "元</span>用于购买?",{
            area: ['400px', '200px'],
            skin: 'demo-class',
            shadeClose:'true',
            title: '余额支付确认信息'
        }, function () {
            CMS.api.ajax({
                url: $(that).attr("href")
            }, function (data, ret) {
                CMS.api.msg(ret.msg, ret.url);
            });
        });
        return false;
    });
将这一段代码复制然后另起一行粘贴,然后进行如下修改
// 积分支付提示
    $(document).on('click', '.btn-jifen', function (e) {
        var that = this;
        layer.confirm("确认支付<span>" + $(this).data("price") + "积分</span>用于购买?",{
            area: ['400px', '200px'],
            skin: 'demo-class',
            shadeClose:'true',
            title: '积分支付确认信息'
        }, function () {
            CMS.api.ajax({
                url: $(that).attr("href")
            }, function (data, ret) {
                CMS.api.msg(ret.msg, ret.url);
            });
        });
        return false;
    });



CMS1.2以后新版本修复方法有三个文件需要修改

1.文件位置在 addons\cms\library文件夹下的 Order.php 文件中找到//余额支付代码片断

//使用余额支付
        if ($paytype == 'balance') {
            if (!$auth->id) {
                throw new OrderException('需要登录后才能够支付');
            }
            if ($auth->money < $archives->price) {
                throw new OrderException('余额不足,无法进行支付');
            }
            Db::startTrans();
            try {
                User::money(-$archives->price, $auth->id, '购买付费文档:' . $archives['title']);
                self::settle($order->orderid, $archives->price);
                Db::commit();
            } catch (Exception $e) {
                Db::rollback();
                throw new OrderException($e->getMessage());
            }
            throw new OrderException('余额支付成功', 1);
        }

将这一段代码复制然后另起一行粘贴,然后进行如下修改


//使用积分支付-开始
        if ($paytype == 'jifen') {
            if (!$auth->id) {
                throw new OrderException('需要登录后才能够支付');
            }
            if ($auth->score < ($archives->price*10)) {
                throw new OrderException('积分不足,无法进行支付');
            }
            Db::startTrans();
            try {
                User::score(-$archives->price, $auth->id, '购买付费文档:' . $archives['title']);
                self::settle($order->orderid, $archives->price);
                Db::commit();
            } catch (Exception $e) {
                Db::rollback();
                throw new OrderException($e->getMessage());
            }
            throw new OrderException('积分支付成功', 1);
        }
        //使用积分支付-结束

2.修改前端模版文件show开头的文件找到余额支付按钮的位置在下面增加一个积分支付按钮

<a type="button"  href="{:addon_url('cms/order/submit', ['id'=>$__ARCHIVES__.id,'paytype'=>'jifen'])}" class="btn btn-warning btn-jifen"  data-toggle="tooltip" data-placement="top" title="您当前拥有{$user.score}个积分" data-price="{$__ARCHIVES__.price*10}"><i class="fa fa-dollar"></i> 积分支付</a>

3. 修改文件   addons/cms/js/common.js      增加积分支付提示弹窗。

// 余额支付提示
    $(document).on('click', '.btn-balance', function (e) {
        var that = this;
        layer.confirm("确认支付¥" + $(this).data("price") + "元用于购买?", function () {
            CMS.api.ajax({
                url: $(that).attr("href")
            }, function (data, ret) {
                CMS.api.msg(ret.msg, ret.url);
            }, function (data, ret) {

            });
        });
        return false;
    });
将这一段代码复制然后另起一行粘贴,然后进行如下修改




//积分支付提示-开始
    $(document).on('click', '.btn-jifen', function (e) {
        var that = this;
        layer.confirm("确认支付¥" + $(this).data("price") + "元用于购买?", function () {
            CMS.api.ajax({
                url: $(that).attr("href")
            }, function (data, ret) {
                CMS.api.msg(ret.msg, ret.url);
            }, function (data, ret) {

            });
        });
        return false;
    }); 
    //积分支付提示-结束

后台设置增加积分支付选择


[
        'name' => 'paytypelist',
        'title' => '支付模块',
        'type' => 'checkbox',
        'content' => [
            'wechat' => '微信支付',
            'alipay' => '支付宝',
            'balance' => '余额支付',
            'jifen' => '积分支付',
        ],
        'value' => 'wechat,alipay,balance,jifen',
        'rule' => 'required',
        'msg' => '',
        'tip' => '前台支付开启的模块',
        'ok' => '',
        'extend' => '',
    ],
    [
        'name' => 'defaultpaytype',
        'title' => '默认支付模块',
        'type' => 'radio',
        'content' => [
            'wechat' => '微信支付',
            'alipay' => '支付宝',
            'balance' => '余额支付',
            'jifen' => '积分支付',
        ],

注意这里的  data(price) 字段不要修改,layer.confirm的样式修改方式可以参考layerui的官方文档


点赞(0) 打赏

立即下载

Comment list 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部