# 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. debug("[rl_callback] ===== START =====") debug(f"[rl_callback] params_kw: {params_kw}") print(f"[rl_callback] params_kw: {params_kw}") # Extract bytedToken and resultCode from query params (GET callback) byted_token = (params_kw.get("bytedToken") or params_kw.get("BytedToken") or params_kw.get("byted_token") or "") result_code = params_kw.get("resultCode", "") debug(f"[rl_callback] byted_token={byted_token}, resultCode={result_code}") print(f"[rl_callback] byted_token={byted_token}, resultCode={result_code}") if not byted_token: debug("[rl_callback] ERROR: missing bytedToken") return json.dumps({"code": "400", "message": "Missing bytedToken"}) # Process callback try: debug(f"[rl_callback] calling rl_handle_callback") result = await rl_handle_callback(byted_token, project_name="default") debug(f"[rl_callback] result: {result}") print(f"[rl_callback] result: {result}") except Exception as e: debug(f"[rl_callback] exception: {e}") print(f"[rl_callback] exception: {e}") print(format_exc()) return json.dumps({"code": "500", "message": f"Internal error: {str(e)}"}) if result.get("success"): return json.dumps({"code": "200", "message": "ok"}) else: return json.dumps({"code": "500", "message": result.get("message", "callback error")})