浏览代码

fix jquery problem && modify linepay flow

conradlan 3 年之前
父节点
当前提交
84a407f7ec

+ 1 - 1
.vscode/launch.json

@@ -14,7 +14,7 @@
                 "--host",
                 "0.0.0.0",
                 "--port",
-                "8751",
+                "8750",
                 "--ssl-keyfile=/home/conrad/privkey.pem",
                 "--ssl-certfile=/home/conrad/fullchain.pem",
                 "--reload"

+ 1 - 1
app/api/api_v1/api.py

@@ -8,4 +8,4 @@ api_router.include_router(users.router, prefix="/user", tags=["user"])
 api_router.include_router(nft.router, prefix="/nft", tags=["nft"])
 api_router.include_router(line.router, prefix="/line", tags=["line"])
 api_router.include_router(joyso.router, prefix="/joyso", tags=["joyso"])
-api_router.include_router(linepay.router, prefix="/linepay", tags=["linepay"])
+api_router.include_router(linepay.router, prefix="/linepay", tags=["linepay"])

+ 24 - 1
app/api/api_v1/endpoints/line.py

@@ -25,7 +25,30 @@ from datetime import datetime
 import pymysql
 pymysql.install_as_MySQLdb()
 
-router = APIRouter()
+class LineRouter(APIRoute):
+    def get_route_handler(self) -> Callable:
+        original_route_handler = super().get_route_handler()
+
+        async def custom_route_handler(request: Request) -> Response:
+            try:
+                the_body = await request.json()
+            except:
+                the_body = ""
+            response: Response = await original_route_handler(request)
+            print(f"request payload: {the_body}")
+            # print(f"route response: {response.body}")
+            print(f"route response headers: {response.headers}")
+            return response
+
+        return custom_route_handler
+
+
+
+
+
+
+router = APIRouter(route_class=LineRouter)
+
 
 
 # callback event

+ 1 - 1
app/api/api_v1/endpoints/linepay.py

@@ -81,7 +81,7 @@ async def pay_request(
     )
     payment = crud.payment.create(db=db, obj_in=payment_obj)
     # return response
-    return response
+    return response["info"]["paymentUrl"]
 
 
 # Confirm

+ 1 - 0
app/main.py

@@ -18,4 +18,5 @@ if settings.BACKEND_CORS_ORIGINS:
         allow_headers=["*"],
     )
 
+
 app.include_router(api_router, prefix=settings.API_V1_STR)

+ 6 - 2
app/schemas/line.py

@@ -4,12 +4,16 @@ from pydantic import BaseModel
 class TransactionNft(BaseModel):
     nftid: str
     address: str
-
+      
+    class Config:
+        orm_mode = True
 
 class BuyNft(BaseModel):
-    nftid: int
+    nftid: str 
     userid: str
 
+    class Config:
+        orm_mode = True
 
 class NftDrops(BaseModel):
     userid: str

+ 21 - 0
app/schemas/line.py_20211228

@@ -0,0 +1,21 @@
+from pydantic import BaseModel
+
+
+class TransactionNft(BaseModel):
+    nftid: str
+    address: str
+
+
+class BuyNft(BaseModel):
+    nftid: int
+    userid: str
+
+
+class NftDrops(BaseModel):
+    userid: str
+    email: str
+
+
+class callBack(BaseModel):
+    type: str
+    data: dict