payHook / server /notify.py
rogerxavier's picture
Update server/notify.py
cd2defa verified
raw
history blame
2.75 kB
from fastapi import APIRouter, HTTPException, Request
from fastapi.responses import JSONResponse
from .hook import *
from .pydanticModel import *
from .dao import tableStore
router = APIRouter()
#afdian的回调是post huggingfaceb不知道抽什么风只能二级路由
# @router.get('/uu',response_model=AfdianResp)
# @router.post('/uu',response_model=AfdianResp)
# async def update_balance(afdianHookjson: AfdianHookJson):
# resp = {'ec': 200}
# # 检查 ec 是否为 200
# if afdianHookjson.ec != 200:
# return {'ec': "afdian hook错误,ec 不是 200"}
# # 提取订单详情和可选参数
# order_details = afdianHookjson.data.order
# custom_order_id = order_details.custom_order_id
# total_amount = order_details.total_amount
# table_store = tableStore(ots_client=router.ots_client, table_name=router.table_name)
# if all([custom_order_id is not None, total_amount is not None]):
# # 说明是余额类型
# try:
# # 先给mysql的数据库添加 - 这个毕竟久 稳定 但是不应该影响其他数据库添加(万一不用了)--------------------
# updateBalance(email=custom_order_id, amount=total_amount)
# # 先给mysql的数据库添加 - 这个毕竟久 稳定 但是不应该影响其他数据库添加(万一不用了)--------------------
# except Exception as e:
# print("updateBalance v2b digitalocean mysql failed",e)
# try:
# #应该改成从原来的余额基础上加total_amount的值
# table_store.getUserInfo(email=custom_order_id)
# cur_balance = table_store.balance
# balance_new = cur_balance+ total_amount
# # 更新余额列
# update_balance_result = table_store.updateColumnByPrimaryKey(
# key=router.key,
# key_value=custom_order_id,
# update_column='balance',
# update_column_value=balance_new
# )
# if update_balance_result:
# return resp #全部成功运行则返回爱发电要求的ec =200
# else:
# return {'ec': "updateBalance tablestore 结果失败"}
# except Exception as e:
# print(e)
# return {'ec': "尝试 updateBalance tablestore 失败"}
# else:
# #这个直接返回200吧,反正测试接口的时候需要 ,平时也不用到
# # return {'ec': "afdian hook custom_order_id 或者 total_amount 为 None"}
# return resp
# test
@router.post('/uu')
async def prinf_test_json(request: Request):
json_data = await request.json()
print("收到afdian请求:", json_data)
return {'ec': 200}