fix: rl_callback支持火山GET回调(bytedToken参数名), 添加调试日志
This commit is contained in:
parent
ccb9430a25
commit
5fa1040adc
@ -1,27 +1,51 @@
|
|||||||
# Vendor callback POSTs JSON body with BytedToken.
|
import json
|
||||||
# The callback URL is configured when calling CreateVisualValidateSession.
|
from appPublic.log import debug
|
||||||
# Typical payload: {"BytedToken": "...", "ReqUUID": "...", "Status": "..."}
|
|
||||||
|
# Vendor callback: GET or POST
|
||||||
|
# Volcengine example (GET):
|
||||||
|
# ?bytedToken=xxx&resultCode=10000&algorithmBaseRespCode=0
|
||||||
|
# &reqMeasureInfoValue=1&verify_type=real_time
|
||||||
# Return format depends on vendor requirements.
|
# Return format depends on vendor requirements.
|
||||||
|
|
||||||
|
debug(f"[rl_callback] params_kw keys: {list(params_kw.keys())}")
|
||||||
|
debug(f"[rl_callback] params_kw: {params_kw}")
|
||||||
|
|
||||||
body_str = http_request.get("body", "") or ""
|
body_str = http_request.get("body", "") or ""
|
||||||
byted_token = ""
|
byted_token = ""
|
||||||
|
result_code = ""
|
||||||
|
|
||||||
|
# 1. Try POST body (JSON)
|
||||||
try:
|
try:
|
||||||
body = json.loads(body_str) if body_str else {}
|
body = json.loads(body_str) if body_str else {}
|
||||||
byted_token = body.get("BytedToken", "")
|
byted_token = (body.get("BytedToken") or body.get("bytedToken")
|
||||||
if not byted_token:
|
or body.get("byted_token") or body.get("Token") or "")
|
||||||
byted_token = body.get("byted_token", "")
|
result_code = body.get("resultCode") or body.get("ResultCode") or ""
|
||||||
if not byted_token:
|
|
||||||
byted_token = body.get("Token", "")
|
|
||||||
except:
|
except:
|
||||||
byted_token = ""
|
pass
|
||||||
|
|
||||||
|
# 2. Fallback: query string params (GET callback)
|
||||||
|
if not byted_token:
|
||||||
|
byted_token = (params_kw.get("bytedToken")
|
||||||
|
or params_kw.get("BytedToken")
|
||||||
|
or params_kw.get("byted_token")
|
||||||
|
or params_kw.get("BytedToken")
|
||||||
|
or "")
|
||||||
|
if not result_code:
|
||||||
|
result_code = params_kw.get("resultCode", "")
|
||||||
|
|
||||||
|
debug(f"[rl_callback] byted_token={byted_token}, resultCode={result_code}")
|
||||||
|
|
||||||
if not byted_token:
|
if not byted_token:
|
||||||
byted_token = params_kw.get("BytedToken", params_kw.get("byted_token", ""))
|
return json.dumps({"code": "400", "message": "Missing bytedToken"})
|
||||||
|
|
||||||
if not byted_token:
|
# Process callback
|
||||||
return {"success": False, "message": "缺少 BytedToken 参数"}
|
|
||||||
|
|
||||||
# vendor is determined by looking up the session record
|
|
||||||
result = await rl_handle_callback(byted_token, project_name="default")
|
result = await rl_handle_callback(byted_token, project_name="default")
|
||||||
return result
|
|
||||||
|
debug(f"[rl_callback] handle_callback result: {result}")
|
||||||
|
|
||||||
|
# Volcengine expects HTTP 200 with any body for success.
|
||||||
|
# Return a simple success/failure response.
|
||||||
|
if result.get("success"):
|
||||||
|
return json.dumps({"code": "200", "message": "ok"})
|
||||||
|
else:
|
||||||
|
return json.dumps({"code": "500", "message": result.get("message", "callback error")})
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user