五四战盟

Glad You Came

  • 1 Glad You Came Boyce Avenue
  • 2 认真地老去 张希&曹方
  • 3 别找我麻烦 蔡健雅
  • 4 小樱 饭碗的彼岸
  • 5 江上清风游 变奏的梦想
  • 6 城南花已开 ❁ 愿君彼安好(Remake)(翻自 三亩地) 桑子
  • 7 三亩地

小程序api接口之创建订单

五四战盟 2017-12-28T11:00:56.000000Z 2418浏览 0条评论
首页/ 正文
分享到: / / / /
    /**
     * 创建订单接口
     * 请求地址:https://www.***.com/site.php?act=module&name=bj_qmxk&do=app_wxapi&opp=createorder
     * 请求参数{    title、price、number、total、openid、address }
     * 后面有改动{直接将上面的参数艺术组的形式(goodslist)的形式传给接口即可}
     * 说明:{标题、单价、数量、总价、openid、收货地址}
     * 成功返回:status(状态值)、message(提示消息)、openid、counts(数量)、prices(单价)、createtime(创建时间)、ordersn(订单编号)、orders(订单信息)
     */
    private function api_createorders(){

        function object_array($array)
        {
            if (is_object($array)) {
                $array = (array)$array;
            }
            if (is_array($array)) {
                foreach ($array as $key => $value) {
                    $array[$key] = object_array($value);
                }
            }
            return $array;
        }
        //接收商品订单信息(数组)
        if (empty($_GET['goodslist'])){
            $this->olResponse('goodslist不存在!');
        }
        $order = json_decode($_GET['goodslist']);
        $orders = object_array($order);
        if (empty($_GET['openid'])){
            $this->olResponse('缺少openid参数!');
        }
        if (!empty($_GET['count'])){
            $counts = $_GET['count'];
        }else{
            $counts = '1';
        }
        if (!empty($SetAttach)){
            $SetAttach = $_GET['attach'];    //附加数据,在查询API和支付通知中原样返回,该字段主要用于商户携带订单的自定义数据
        }else{
            $SetAttach = "0";
        }
        if (!empty($Goods_tag)){
            $Goods_tag = $_GET['goods_tag']; //商品标签
        }else{
            $Goods_tag = "0";
        }
        $openId = $_GET['openid'];
        $createtime = time();   //设置订单生成时间
        $deadline = '0';   //设置订单失效时间
        $ordersn = date('ymdhis') . random(6, 1);       //生成订单编号,商超版自带的
        $out_trade_no = WxPayConfig::MCHID.date("YmdHis");  //运用微信支付内部方法,生成订单编号
        /**
         * 创建订单信息,保存到数据库
         */
        //添加一条用户记录,并判断是否成功
        foreach ($orders as $order){
            $price = $order['price'] * $order['count']; //单个商品总价
            $prices += $price;   //商品总价
        }
        //收集整理并存储订单信息
        $order_data = array(
            'weid' => '1',
            'from_user' => $openId,
            'createtime' => $createtime,//创建订单时间
            'ordersn' => $ordersn,      //创建订单编号
            'transid' => $out_trade_no, //创建微信支付单号
            'price' => $prices/100,       //存入数据库的商品总价(0.00)
            'goodsprice' => $prices/100,  //存入数据库的商品总价(0.00)
            'status' => '0',            //待付款状态
            'deadline' => $deadline,    //订单失效时间
            'attach' => $SetAttach,      //附加数据
//                'goods_tag' => $Goods_tag,  //商品标签
        );
        $result = pdo_insert('bj_qmxk_order', $order_data);
        if (!empty($result)) {
            $id = pdo_insertid();//商品订单id用于存进商品订单信息表
        }

        //收集整理并存储订单对应商品信息,一个订单对应一个或多个商品;
        foreach ($orders as $order){
            $pricesql = $order['price']/100;     //转换后存入数据库的商品单价价格
            $order_goods_data = array(
                'weid' => '1',
                'orderid' => $id,               //$id是订单表(bj_qmxk_order)新增的数据id
                'goodsid' => $order['id'],      //商品信息的id,根据该id可在商品信息表(bj_qmxk_goods)中查找对应的商品;
                'total' => $order['count'],     //商品数量
                'price' => $pricesql,           //商品单价(0.00)
                'createtime' => $createtime,    //创建订单时间
                'status' => '0',
            );
            $order_goods = pdo_insert('bj_qmxk_order_goods', $order_goods_data);
        }

        //如果创建成功则返回下面的参数,以便接着发起支付使用
        if (!empty($order_goods)) {
            $this->olarray(array(
                'status' => '1',
                'message' => '创建订单成功!',
                'openid' => $openId,
                'counts' => $counts,
                'prices' => $prices,
                'createtime' => $createtime,
                'ordersn' => $ordersn,
                'orders' => $orders,
            ));
        }else{
            $this->olarray(array('status' => '0','message' => '创建订单失败!'));
        }

    }
最后修改:2020-06-20T05:07:24.000000Z © 著作权归作者所有
如果觉得我的文章对你有用,请随意赞赏
上一篇

发表评论

说点什么吧~

评论列表

扫一扫支付