File size: 3,511 Bytes
325b400
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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)