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

有三个文件需要修改

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


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