reallife_asset/wwwroot/api/rl_callback.dspy
yumoqing 211b628c78 refactor: API响应统一标准格式{status,data}, 前端Form分离
- rl_verify.dspy: 返回{status:ok/data:{id,h5_link,byted_token}}
- rl_upload.dspy: 返回{status:ok/data:{id,vendor_asset_id,status}}
- rl_query_groups.dspy: 返回{status:ok/data:{groups:[...]}}
- rl_status.dspy: 返回{status:ok/data:{status,url}}
- rl_callback.dspy: 返回{status:ok/data:{vendor_group_id}}
- 新增submit_create_validate.dspy: 前端专用,返回bricks Message/Error widget
- create_validate.ui: Form指向新dspy + submited事件绑定
- api_downapp.md: 文档同步更新
2026-05-29 23:40:19 +08:00

33 lines
1.2 KiB
Plaintext

import json
# Vendor callback POSTs JSON body with BytedToken.
# The callback URL is configured when calling CreateVisualValidateSession.
# Typical payload: {"BytedToken": "...", "ReqUUID": "...", "Status": "..."}
body_str = http_request.get("body", "") or ""
byted_token = ""
try:
body = json.loads(body_str) if body_str else {}
byted_token = body.get("BytedToken", "")
if not byted_token:
byted_token = body.get("byted_token", "")
if not byted_token:
byted_token = body.get("Token", "")
except:
byted_token = ""
if not byted_token:
byted_token = params_kw.get("BytedToken", params_kw.get("byted_token", ""))
if not byted_token:
return json.dumps({"status": "error", "data": {"message": "缺少 BytedToken 参数"}}, ensure_ascii=False)
# vendor is determined by looking up the session record
result = await rl_handle_callback(byted_token, project_name="default")
if result.get('success'):
return json.dumps({"status": "ok", "data": {"vendor_group_id": result.get('vendor_group_id', '')}}, ensure_ascii=False)
else:
return json.dumps({"status": "error", "data": {"message": result.get('message', '回调处理失败')}}, ensure_ascii=False)