web程序

小程序api接口之创建订单

2017-12-28 19:00:56

/**
     * 创建订单接口
     * 请求地址: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' => '创建订单失败!'));
        }

    }


标签:
统计:
0 评论
367 查看


马上批阅

评论该篇文章

Laravel技术交流群
扫码关注体验小程序
小程序二维码 小程序码
站长最新说说动态

欢迎来到追梦小窝,有什么值得收藏的就拿去用吧,不客气,大部分内容来自互联网,如有侵犯版权请您注明来信,我将会第一时间妥善处理


最新评论
共6条评论
image
2017-07-07 14:04:55 追梦小窝 评论了 今天画了一个小图标
来自:59.40.248.60
@皮皮豪:我QQ543619552
image
2017-07-07 14:04:27 追梦小窝 评论了 emlog缩略图不同实现方法:正文-附件-随机图片
来自:59.40.248.60
@皮皮豪:那里不会,教程说的很详细
image
2017-07-07 12:06:08 皮皮豪 评论了 emlog缩略图不同实现方法:正文-附件-随机图片
来自:120.82.74.53
看了还是不会啊
image
2017-07-07 18:23:25 皮皮豪 评论了 今天画了一个小图标
来自:120.82.74.36
怎么联系你啊
image
2017-07-07 12:07:49 追梦小窝 评论了 今天画了一个小图标
来自:113.91.34.248
@文森:别笑话我了
image
2017-04-04 22:29:04 文森 评论了 今天画了一个小图标
来自:223.74.150.13
这个图标看上去很nice
站点统计
  • 文章总数: 140篇
  • 微语总数: 6条
  • 评论总数: 6条
  • 运行天数: 1634天