import httpx import yaml from fastapi.responses import HTMLResponse, RedirectResponse from urllib.parse import urlencode with open("config.yaml", "r") as f: config = yaml.safe_load(f) base_backend_java = config["callback_urls"] base_frontend = config["frontend"] async def android_vnpay_ipn_redirect(params): if params.get("vnp_ResponseCode") != "00": return RedirectResponse(url=f"""{base_frontend["android_redirect_base"]}?status=-49""") else: return RedirectResponse(url=f"""{base_frontend["android_redirect_base"]}?status=1""") async def android_vnpay_group_ipn_redirect(params): if params.get("vnp_ResponseCode") != "00": return RedirectResponse(url=f"""{base_frontend["android_group_redirect_base"]}?status=-49""") else: return RedirectResponse(url=f"""{base_frontend["android_group_redirect_base"]}?status=1""") async def web_vnpay_ipn_redirect(params): query_string = urlencode(params) redirect_url = f"""{base_frontend["base"]}/{base_frontend["web_redirect_paths"]["vnpay"]}?{query_string}""" return RedirectResponse(url=redirect_url) async def android_momo_redirect(query_params): order_id = query_params.get("orderId") result_code = query_params.get("resultCode") print("order_id:", order_id) print("result_code:", result_code) if result_code != "0": return RedirectResponse(url=f"""{base_frontend["android_redirect_base"]}?status=-49""") else: return RedirectResponse(url=f"""{base_frontend["android_redirect_base"]}?status=1""") async def android_group_momo_redirect(query_params): order_id = query_params.get("orderId") result_code = query_params.get("resultCode") print("order_id:", order_id) print("result_code:", result_code) if result_code != "0": return RedirectResponse(url=f"""{base_frontend["android_group_redirect_base"]}?status=-49""") else: return RedirectResponse(url=f"""{base_frontend["android_group_redirect_base"]}?status=1""") async def web_momo_redirect(query_params): query_string = urlencode(query_params) redirect_url = f"""{base_frontend["base"]}/{base_frontend["web_redirect_paths"]["momo"]}?{query_string}""" return RedirectResponse(url=redirect_url) from CallBackService import zalo_callback async def zalo_redirect( status, apptransId ): if int(status) != 1: await zalo_callback(str(apptransId)) return RedirectResponse(url=f"""{base_frontend["android_redirect_base"]}?status=-49""") else : return RedirectResponse(url=f"""{base_frontend["android_redirect_base"]}?status=1""") async def zalo_group_redirect( status, apptransId ): if int(status) != 1: await zalo_callback(str(apptransId)) return RedirectResponse(url=f"""{base_frontend["android_group_redirect_base"]}?status=-49""") else : return RedirectResponse(url=f"""{base_frontend["android_group_redirect_base"]}?status=1""") async def zalo_web_redirect(query_params): base_url = f"""{base_frontend["base"]}/{base_frontend["web_redirect_paths"]["zalo"]}""" query_string = urlencode(query_params) redirect_url = f"{base_url}?{query_string}" status = query_params.get("status") apptransid = query_params.get("apptransid") if int(status) != 1: await zalo_callback(str(apptransid)) return RedirectResponse(url=redirect_url)