Program/mooc/api/v1/endpoints/wechat.py

42 lines
1.4 KiB
Python
Raw Normal View History

2024-12-31 22:27:04 +08:00
from fastapi import APIRouter, Depends, HTTPException
from typing import Dict, Any
from mooc.utils.wechat_client import WeChatClient
router = APIRouter()
wechat_client = WeChatClient()
@router.get("/access_token")
async def get_access_token() -> Dict[str, Any]:
"""获取微信access token"""
try:
access_token = await wechat_client.get_access_token()
return {"access_token": access_token}
except Exception as e:
raise HTTPException(status_code=400, detail=str(e))
@router.post("/code2session")
async def code_to_session(code: str) -> Dict[str, Any]:
"""小程序登录"""
try:
result = await wechat_client.code2session(code)
return result
except Exception as e:
raise HTTPException(status_code=400, detail=str(e))
@router.post("/qrcode")
async def generate_qrcode(scene: str) -> bytes:
"""生成小程序码"""
try:
qr_code = await wechat_client.get_unlimited_qrcode(scene)
return qr_code
except Exception as e:
raise HTTPException(status_code=400, detail=str(e))
@router.post("/send_template")
async def send_template_message(data: Dict[str, Any]) -> Dict[str, Any]:
"""发送订阅消息"""
try:
result = await wechat_client.send_template_message(data)
return result
except Exception as e:
raise HTTPException(status_code=400, detail=str(e))