Example #1
0
 /**
  * 订单确认
  *
  * @param Request $request
  * @param Response $response
  */
 public function order_submit(Request $request, Response $response)
 {
     if ($request->is_post()) {
         $ret = ['flag' => 'FAIL', 'msg' => '订单提交失败'];
         $uid = $GLOBALS['user']->uid;
         if (!$uid) {
             $ret['msg'] = '未登录, 请先在微信登录';
             $response->sendJSON($ret);
         }
         $player_id = $request->post('player_id', 0);
         $goods_type = $request->post('goods_type', 'flower');
         $goods_amount = $request->post('amount', 0);
         $pay_id = 2;
         //2是微信支付,见ec payment表
         // 检查数据
         // 参赛者
         if (!Node::playerExisted($player_id)) {
             $ret['msg'] = "参赛者不存在(player_id={$player_id})";
             $response->sendJSON($ret);
         }
         // 数量
         $goods_amount = intval($goods_amount);
         if (!$goods_amount) {
             $ret['msg'] = 'flower' == $goods_type ? '送花数量不能为空' : '送吻数量不能为空';
             $response->sendJSON($ret);
         }
         $order_amount = $goods_amount;
         // 支付信息
         $pay_info = Goods::getPaymentInfo($pay_id);
         if (empty($pay_info)) {
             $ret['msg'] = '该支付方式暂不可用,请重新选择';
             $response->sendJSON($ret);
         }
         $order_sn = Fn::gen_order_no();
         $order = ['order_sn' => $order_sn, 'user_id' => $uid, 'order_status' => OS_UNCONFIRMED, 'pay_status' => PS_UNPAYED, 'pay_id' => $pay_info['pay_id'], 'pay_name' => $pay_info['pay_name'], 'player_id' => $player_id, 'goods_type' => $goods_type, 'goods_amount' => $goods_amount, 'order_amount' => $order_amount, 'money_paid' => 0, 'add_time' => simphp_time()];
         $order_id = D()->insert("order_info", $order);
         if ($order_id) {
             //订单表生成成功
             $order['order_id'] = $order_id;
             $true_amount = $order_amount;
             // 处理表 pay_log
             Trade_Model::insertPayLog($order_id, $order_sn, $true_amount, PAY_ORDER);
             $jsApiParams = '';
             if (2 == $pay_info['pay_id']) {
                 //微信支付
                 $jsApiParams = Wxpay::unifiedOrder($order, $GLOBALS['user']->openid);
             }
             $ret = ['flag' => 'SUC', 'msg' => '订单提交成功', 'order_id' => $order_id, 'order_sn' => $order_sn, 'js_api_params' => json_decode($jsApiParams)];
             $response->sendJSON($ret);
         } else {
             $ret['msg'] = '订单生成失败,请返回购物车重新添加';
             $response->sendJSON($ret);
         }
     } else {
         $this->v->set_tplname('mod_trade_order_submit');
         $this->nav_flag1 = 'order';
         $this->nav_flag2 = 'order_submit';
         $this->nav_no = 0;
         if ($request->is_hashreq()) {
         } else {
         }
         $response->send($this->v);
     }
 }