scan($trade); $result = $qrcode ?: false; return $result; } public function status($tradeNo) { $alipayService = new AlipayService(); $result = $alipayService->status($tradeNo); return $result; } public function cancel($tradeNo) { $tradeRepo = new TradeRepo(); $trade = $tradeRepo->findBySn($tradeNo); $orderRepo = new OrderRepo(); $order = $orderRepo->findById($trade->order_id); $alipayService = new AlipayService(); $response = $alipayService->cancel($trade->sn); if ($response) { $trade->status = TradeModel::STATUS_CLOSED; $trade->update(); if ($order->status != OrderModel::STATUS_PENDING) { $order->status = OrderModel::STATUS_PENDING; $order->update(); } } } }