callback_url = rtrim($callback_url, '/'); $this->return_url = rtrim($return_url, '/'); } public function createPaymentURL(PayableEntity $payable, array $options = []): string { $order_id = $payable->getBillId(); return "$this->callback_url?".http_build_query(compact('order_id')); } public function verifyGatewayReturn(Request $request): bool { return true; } public function verifyGatewayCallback(Request $request, Response &$response = null): bool { if($request->query->has('status')){ $response = Res::redirectTo($this->return_url); return $request->query->get('status') == 'success'; } else { $order_id = $request->query->get('order_id'); /** @noinspection HtmlUnknownTarget */ $html = sprintf( 'Click Here for Positive Response

Click Here for Negative Response', $this->callback_url.'?'.http_build_query(['order_id' => $order_id, 'status' => 'success']), $this->callback_url.'?'.http_build_query(['order_id' => $order_id, 'status' => 'failed']) ); $response = Res::make($html); return false; } } }