request->param(); // $params = array( // 'delivery' =>0, // 'store_id' =>'undefined', // 'coupon_id' => 6, // 'is_use_points' =>1, // 'phone'=>null, // 'linkman' =>null, // 'remark' =>'', // 'pay_type' => 10, // 'pay_source' =>'h5', // 'product_id' => 33, // 'product_num' => 2, // 'product_sku_id' => 2, // ); // p($params); $productList = OrderModel::getOrderProductListByNow($params); $user = $this->getUser(); // 实例化订单service $orderService = new MasterOrderSettledService($user, $productList, $params); // 获取订单信息 $orderInfo = $orderService->settlement(); // p($orderInfo); if ($this->request->isGet()) { // 如果来源是小程序, 则获取小程序订阅消息id.获取支付成功,发货通知. $template_arr = MessageModel::getMessageByNameArr($params['pay_source'], ['order_pay_user', 'order_delivery_user']); // 是否开启支付宝支付 $show_alipay = PayService::isAlipayOpen($params['pay_source'], $user['app_id']); // 用户余额 $balance = $user['balance']; return $this->renderSuccess('', compact('orderInfo', 'template_arr', 'show_alipay', 'balance')); } // 订单结算提交 if ($orderService->hasError()) { return $this->renderError($orderService->getError()); } // 创建订单 $order_id = $orderService->createOrder($orderInfo); if(!$order_id){ return $this->renderError($orderService->getError() ?: '订单创建失败'); } // 构建支付请求 $payment = OrderModel::onOrderPayment($user, $orderService->model, $params['pay_type'], $params['pay_source']); log_write(json_encode($payment)); // 记录发起支付 log_write(sprintf('build order buy request. [buy] order_no[%s]', $order_id)); // 返回结算信息 return $this->renderSuccess(['success' => '支付成功', 'error' => '订单未支付'], [ 'order_id' => $order_id, // 订单id 'pay_type' => $params['pay_type'], // 支付方式 'payment' => $payment, // 微信支付参数 'order_type' => OrderTypeEnum::MASTER, //订单类型 ]); } /** * 订单确认-立即购买 */ public function cart() { // 立即购买:获取订单商品列表 $params = $this->request->param(); $user = $this->getUser(); // 商品结算信息 $CartModel = new CartModel($user); // 购物车商品列表 $productList = $CartModel->getList($params['cart_ids']); // p($productList); // 实例化订单service $orderService = new MasterOrderSettledService($user, $productList, $params); // 获取订单信息 $orderInfo = $orderService->settlement(); if ($this->request->isGet()) { // 如果来源是小程序, 则获取小程序订阅消息id.获取支付成功,发货通知. $template_arr = MessageModel::getMessageByNameArr($params['pay_source'], ['order_pay_user', 'order_delivery_user']); // 是否开启支付宝支付 $show_alipay = PayService::isAlipayOpen($params['pay_source'], $user['app_id']); // 用户余额 $balance = $user['balance']; return $this->renderSuccess('', compact('orderInfo', 'template_arr', 'show_alipay', 'balance')); } // 订单结算提交 if ($orderService->hasError()) { return $this->renderError($orderService->getError()); } // 创建订单 $order_id = $orderService->createOrder($orderInfo); if(!$order_id){ return $this->renderError($orderService->getError() ?: '订单创建失败'); } // 移出购物车中已下单的商品 $CartModel->clearAll($params['cart_ids']); // 构建支付请求 $payment = OrderModel::onOrderPayment($user, $orderService->model, $params['pay_type'], $params['pay_source']); // 记录发起支付 log_write(sprintf('build order buy request. order_no[%s]', $order_id)); // 返回结算信息 return $this->renderSuccess('', [ 'order_id' => $orderService->model['order_id'], // 订单id 'pay_type' => $params['pay_type'], // 支付方式 'payment' => $payment, // 微信支付参数 'order_type' => OrderTypeEnum::MASTER, //订单类型 ]); } }