/** * 订单支付成功,微信通知 * * @param int $order_id 订单ID * @param float $pay_price * @param int $shop_id * @return array */ public function pay_notice($order_id, $pay_price, $shop_id) { $message = 'Got paid info: ' . json_encode(func_get_args()); OrderModel::instance()->payLog($shop_id, $order_id, $message); $order = OrderModel::instance()->getOrder($order_id); if (!$order) { return ['message' => "{$order_id}无效订单", 'success' => -1]; } if (!$this->float_cmp(intval($pay_price), intval($order['price'] * 100))) { return ['message' => "{$order_id}订单价格不对", 'success' => -1]; } if ($order['status'] == 2) { return ['message' => "订单已支付", 'success' => 1]; } $flag = OrderModel::instance()->changeOrderStatus($order_id); if ($flag) { return ['message' => "通知成功", 'success' => 1]; } return ['message' => "通知失败", 'success' => -1]; }
/** * 支付成功 */ public function success() { $order_id = intval(I('request.id')); if (!empty($order_id) && is_numeric($order_id)) { $order = OrderModel::instance()->getOrder($order_id, []); if (!$order) { E('订单不存在'); } switch ($order['status']) { case 1: $message = '订单尚未支付!如果您已经付款,请联系商家.'; break; case 2: $message = '支付成功!'; break; case 3: $message = '订单已完成'; break; } $this->assign('message', $message); $this->assign('status', $order['status']); } $this->assign('order_id', $order_id); $this->display(); }