thinkphp6 生成订单信息

 先对照要求建立数据表

模型关联查询订单表的id(kong)

class order extends Model
{
    protected $pk='id';

    public function Oshop(){
        return $this->hasOne(shopitem::class,'order_id','id')->bind(['good_name','good_price']);
    }
}

 生成订单信息

public function buy($id)
    {
        //从session中查找登录信息
        $user = session('user');
        //判断是否登录
        if (!$user){
            session('back_url','buy');
            return redirect('reginter');
        }
        //查找登录用户的id
        $userdata = (new LoginModel())->where('usernum',$user['usernum'])->find()->toArray();
        $uid = $userdata['id'];
        //生成订单
        $ordernumber = time().rand(1000,99999);
        //拼接订单信息
        $order = [
            'user_id' => $uid,
            'order_number' => $ordernumber
        ];
        //启动事物
        Db::startTrans();
        try {
            //添加订单表
            (new order())->insert($order);
            //根据订单号查询订单信息
            $order_data = (new order())->where('order_number',$ordernumber)->find()->toArray();
            //订单id
            $oid = $order_data['id'];
            //根据订单id查询信息
            $shop_data = (new shop())->find($id);
            //拼接订单商品表的信息
            $order_shop = [
                'order_id' => $oid,
                'good_name' => $shop_data['good_name'],
                'good_price' => $shop_data['good_price']
            ];
            //添加订单商品
            (new shopitem())->insert($order_shop);
            //将订单号存到缓存
            cache('order_number',$ordernumber);
            //提交事务
            Db::commit();
        } catch (\Exception $e) {
            // 回滚事务
            Db::rollback();
        }
        $data = (new order())->with('Oshop')->where('order_number',$ordernumber)->find()->toArray();
        return view('home\orderlist',['data'=>$data]);

    }

订单信息完成后进行第三方支付

tp6第三方引入 支付宝沙箱支付_code_nutter的博客-CSDN博客

    /**
     * 第三方支付
     * @return \think\Response
     */
    public function pay()
    {
        try {
            //查询订单号
            $ordernumber = cache('order_number');
            //查询订单信息
            $order_data = (new order())->with('Oshop')->where('order_number',$ordernumber)->find();
            if (!$order_data){
                throw new Exception('订单号异常');
            }
            //订单号
            $order_num = $ordernumber;
            //订单名称
            $name = $order_data['good_name'];
            //订单价格
            $price = $order_data['good_price'];
            $pay_type = 'alipay';
            switch ($pay_type) {
                case 'alipay':
                {
                    echo "<form id='alipayment' action='/alipay/pagepay/pagepay.php' method='post'>
                    <input id='WIDout_trade_no' name='WIDout_trade_no' value='" . $order_num . "'/>
                    <input id='WIDsubject' name='WIDsubject' value='" . $name . "'/>
                    <input id='WIDtotal_amount' name='WIDtotal_amount' value='" . $price . "'/>
                    <input id='WIDbody' name='WIDbody' />
                </form><script>document.getElementById('alipayment').submit();</script>";
                }
            }
        }catch (Exception $exception){
            throw new Exception('断网异常');
        }
    }

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
thinkphp开发的微信小程序一键生成平台系统正版源码是一种基于thinkphp框架开发的专门用于生成微信小程序的系统源码。通过该系统,用户可以快速创建自己的微信小程序,无需编写复杂的代码,仅需要进行简单的配置和定制即可生成个性化的微信小程序。 该系统源码具有正版授权,保证了源码的合法性和可靠性。用户购买正版源码后,可以得到全面的技术支持和更新保障,确保系统的稳定运行和功能的持续优化。 使用该系统源码,用户可以实现以下功能: 1. 快速生成微信小程序:系统提供了丰富的模板和组件,用户可以根据自己的需求进行选择和定制,快速生成符合自己品牌风格的微信小程序。 2. 简单易用的配置:用户可以通过后台管理界面进行简单的配置,包括页面布局、颜色搭配、功能模块等,无需写代码即可完成设置。 3. 数据接口对接:系统提供了与微信接口的对接功能,可以实现小程序与后台数据库的数据交互,包括用户信息、商品信息订单信息等。 4. 模块扩展和定制:系统允许用户根据自己的需求进行模块扩展和定制,可以添加特定的功能模块或者自定义页面。 5. 数据统计和分析:系统提供了数据统计和分析功能,可以统计用户访问量、用户行为等数据,为用户提供数据支持。 该系统源码的使用可以极大地简化微信小程序的开发流程,节省开发时间和成本,同时提供了丰富的功能和扩展性,使用户可以根据自己的需求定制自己的微信小程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值