- 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: 文档同步更新
33 lines
1.2 KiB
Plaintext
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)
|