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)