/** * 取消订单 * * @param integer $order_id * @return boolean */ static function cancel($order_id) { if (!$order_id) { return false; } D()->update(ectable('order_info'), ['order_status' => OS_CANCELED], ['order_id' => $order_id], true); if (D()->affected_rows() == 1) { //还要将对应的库存加回去 $order_goods = Goods::getOrderGoods($order_id); if (!empty($order_goods)) { foreach ($order_goods as $g) { Goods::changeGoodsStock($g['goods_id'], $g['goods_number']); } } //写order_action的日志 self::order_action_log($order_id, ['action_note' => '用户取消']); return true; } return false; }
/** * tips页显示 * @param Request $request * @param Response $response */ public function order_topay(Request $request, Response $response) { if ($request->is_post()) { global $user; if (!$user->uid) { Fn::show_error_message('未登录,请先登录'); } $this->v = new PageView('', 'topay'); $pay_mode = $request->post('pay_mode', 'wxpay'); //默认微信支付 $order_id = $request->post('order_id', 0); $back_url = $request->post('back_url', ''); $supported_paymode = ['wxpay' => '微信安全支付', 'alipay' => '支付宝支付']; if (!in_array($pay_mode, array_keys($supported_paymode))) { Fn::show_error_message('不支持该支付方式: ' . $pay_mode); } if (!$order_id) { Fn::show_error_message('订单为空'); } $order_info = Order::info($order_id); if (empty($order_info)) { Fn::show_error_message('订单不存在'); } else { $order_info['order_goods'] = Goods::getOrderGoods($order_info['order_id']); if (empty($order_info['order_goods'])) { Fn::show_error_message('订单下没有对应商品'); } } if ('wxpay' == $pay_mode) { $jsApiParams = Wxpay::unifiedOrder($order_info, $user->openid); $this->v->assign('jsApiParams', $jsApiParams); } $this->v->assign('pay_mode', $pay_mode); $this->v->assign('supported_paymode', $supported_paymode); $this->v->assign('back_url', $back_url); $response->send($this->v); } else { Fn::show_error_message('非法访问'); } }