File size: 3,519 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
93
94
95
96
from fastapi import APIRouter, Form, Request,Depends,HTTPException
from service import ChatService
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
from request import RequestChat
from typing import Optional
from fastapi.requests import Request


router = APIRouter()

class JWTBearer(HTTPBearer):
    def __init__(self, auto_error: bool = True):
        super(JWTBearer, self).__init__(auto_error=auto_error)

    async def __call__(self, request: Request):
        credentials: HTTPAuthorizationCredentials = await super(JWTBearer, self).__call__(request)
        if credentials:
            if credentials.scheme != "Bearer":
                raise HTTPException(status_code=401, detail="Invalid authentication scheme.")
            return credentials.credentials
        else:
            raise HTTPException(status_code=401, detail="Invalid authorization code.")

jwt_bearer = JWTBearer()
import decode_token
from service import RedirectService
from typing import Optional
from fastapi import Request, Query
from fastapi.responses import JSONResponse
@router.get("/android/zalo")
async def zalo_callback_get(

    amount: Optional[int] = Query(None),

    appid: Optional[str] = Query(None),

    apptransid: Optional[str] = Query(None),

    bankcode: Optional[str] = Query(None),

    checksum: Optional[str] = Query(None),

    discountamount: Optional[int] = Query(None),

    pmcid: Optional[int] = Query(None),

    status: Optional[int] = Query(None)

):
    return await RedirectService.zalo_redirect(status,apptransid)


@router.get("/android/group/zalo")
async def zalo_callback_get(

    amount: Optional[int] = Query(None),

    appid: Optional[str] = Query(None),

    apptransid: Optional[str] = Query(None),

    bankcode: Optional[str] = Query(None),

    checksum: Optional[str] = Query(None),

    discountamount: Optional[int] = Query(None),

    pmcid: Optional[int] = Query(None),

    status: Optional[int] = Query(None)

):
    return await RedirectService.zalo_group_redirect(status,apptransid)

@router.get("/web/zalo")
async def zalo_web_callback_get(request: Request):
    return await RedirectService.zalo_web_redirect(request.query_params)


@router.get("/android/momo")
async def return_url_handler_1(request: Request):
    query_params = request.query_params
    return await RedirectService.android_momo_redirect(query_params)

@router.get("/android/group/momo")
async def return_url_handler_group_momo(request: Request):
    query_params = request.query_params
    return await RedirectService.android_group_momo_redirect(query_params)


from urllib.parse import urlencode
@router.get("/web/momo")
async def return_url_handler_web(request: Request):
    query_params = request.query_params
    return await RedirectService.web_momo_redirect(query_params)



from typing import Dict
@router.get("/android/vnpay")
async def vnpay_ipn_redirect(request: Request):
    params: Dict[str, str] = dict(request.query_params)
    return await RedirectService.android_vnpay_ipn_redirect(params)


@router.get("/android/group/vnpay")
async def vnpay_ipn_redirect(request: Request):
    params: Dict[str, str] = dict(request.query_params)
    return await RedirectService.android_vnpay_group_ipn_redirect(params)

@router.get("/web/vnpay")
async def vnpay_ipn_redirect(request: Request):
    query_params = request.query_params
    return await RedirectService.web_vnpay_ipn_redirect(query_params)