{"components":{"schemas":{"APIErrorResponse":{"properties":{"code":{"description":"非 0 业务错误码。","example":400,"type":"integer"},"data":{"additionalProperties":true,"description":"错误响应当前固定返回 null。","nullable":true,"type":"object"},"msg":{"example":"ref is required","type":"string"}},"required":["code","msg","data"],"type":"object"},"APIResponse":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"additionalProperties":true,"description":"实际数据载荷，可以是对象、数组或 null。","nullable":true,"type":"object"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"},"AccountPublic":{"properties":{"alias":{"description":"账号别名。","nullable":true,"type":"string"},"avatar":{"description":"本地头像路径或远程头像 URL。","nullable":true,"type":"string"},"created_at":{"format":"int64","type":"integer"},"id":{"format":"int64","type":"integer"},"last_checked_at":{"format":"int64","nullable":true,"type":"integer"},"nickname":{"description":"账号昵称。","nullable":true,"type":"string"},"openid":{"type":"string"},"status":{"description":"账号状态。","nullable":true,"type":"string"},"uin":{"format":"int64","nullable":true,"type":"integer"},"updated_at":{"format":"int64","type":"integer"}},"required":["id","openid","created_at","updated_at"],"type":"object"},"AccountRefRequest":{"properties":{"ref":{"description":"账号 ID、UIN 或 openid。支持批量操作的接口不传时表示全部账号。","type":"string"}},"type":"object"},"DeleteAccountResponse":{"properties":{"deleted":{"format":"int64","type":"integer"},"openid":{"type":"string"}},"required":["deleted","openid"],"type":"object"},"HealthResponse":{"properties":{"ok":{"type":"boolean"}},"required":["ok"],"type":"object"},"OperateWXDataRequest":{"properties":{"app_id":{"type":"string"},"payload":{"additionalProperties":true,"description":"完整的 operateWxData 请求 JSON。","nullable":true,"type":"object"},"ref":{"description":"账号 ID、UIN 或 openid。","type":"string"}},"required":["ref","app_id","payload"],"type":"object"},"QRCreateResponse":{"properties":{"image_base64":{"description":"当 as_base64=true 时返回二维码图片 data URI。","nullable":true,"type":"string"},"image_url":{"example":"/qr/{session_id}/image","type":"string"},"session_id":{"type":"string"},"status":{"example":"pending","type":"string"}},"required":["session_id","status","image_url"],"type":"object"},"QRPollResponse":{"properties":{"errcode":{"nullable":true,"type":"integer"},"status":{"enum":["pending","scanned","authorized","confirmed","expired","cancelled","unknown"],"type":"string"}},"required":["status"],"type":"object"},"RefreshResponse":{"oneOf":[{"$ref":"#/components/schemas/RefreshResult"},{"items":{"$ref":"#/components/schemas/RefreshResult"},"type":"array"}]},"RefreshResult":{"properties":{"id":{"format":"int64","type":"integer"},"nickname":{"description":"账号昵称。","nullable":true,"type":"string"},"openid":{"type":"string"},"status":{"example":"alive","type":"string"},"uin":{"format":"int64","nullable":true,"type":"integer"}},"required":["id","openid","status"],"type":"object"},"ResyncResponse":{"oneOf":[{"$ref":"#/components/schemas/AccountPublic"},{"items":{"$ref":"#/components/schemas/AccountPublic"},"type":"array"}]},"WxappRequest":{"properties":{"app_id":{"type":"string"},"ref":{"description":"账号 ID、UIN 或 openid。","type":"string"}},"required":["ref","app_id"],"type":"object"},"WxappResponse":{"properties":{"openid":{"type":"string"},"result":{"additionalProperties":true,"description":"wxapp 接口返回结果。","nullable":true,"type":"object"}},"required":["openid","result"],"type":"object"}}},"info":{"description":"用于微信扫码登录、账号管理和 wxapp 接口调用的 API。","title":"YYB Go 接口文档","version":"1.0.0"},"openapi":"3.0.3","paths":{"/accounts":{"delete":{"parameters":[{"description":"账号 ID、UIN 或 openid。","in":"query","name":"ref","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"$ref":"#/components/schemas/DeleteAccountResponse"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"删除结果。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"删除账号","tags":["accounts"]},"get":{"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"items":{"$ref":"#/components/schemas/AccountPublic"},"type":"array"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"已保存的账号列表。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"获取账号列表","tags":["accounts"]}},"/accounts/avatar":{"get":{"parameters":[{"description":"账号 ID、UIN 或 openid。","in":"query","name":"ref","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"image/jpeg":{"schema":{"format":"binary","type":"string"}}},"description":"头像图片。"},"302":{"description":"跳转到远程头像地址。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"获取账号头像","tags":["accounts"]}},"/accounts/refresh":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountRefRequest"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"$ref":"#/components/schemas/RefreshResponse"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"刷新结果。未传 ref 时返回数组。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"刷新账号存活状态","tags":["accounts"]}},"/accounts/resync":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountRefRequest"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"$ref":"#/components/schemas/ResyncResponse"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"同步后的账号信息。未传 ref 时返回数组。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"重新同步账号资料","tags":["accounts"]}},"/health":{"get":{"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"$ref":"#/components/schemas/HealthResponse"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"服务正常。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"检查服务状态","tags":["health"]}},"/qr":{"post":{"parameters":[{"description":"是否同时返回二维码图片的 data URI。","in":"query","name":"as_base64","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"$ref":"#/components/schemas/QRCreateResponse"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"二维码会话创建成功。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"创建扫码登录会话","tags":["qr"]}},"/qr/{session_id}/confirm":{"post":{"parameters":[{"description":"二维码会话 ID。","in":"path","name":"session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"$ref":"#/components/schemas/AccountPublic"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"已保存的账号信息。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"确认已授权的扫码会话并保存账号","tags":["qr"]}},"/qr/{session_id}/image":{"get":{"parameters":[{"description":"二维码会话 ID。","in":"path","name":"session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"image/jpeg":{"schema":{"format":"binary","type":"string"}}},"description":"二维码图片。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"获取二维码图片","tags":["qr"]}},"/qr/{session_id}/poll":{"get":{"parameters":[{"description":"二维码会话 ID。","in":"path","name":"session_id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"$ref":"#/components/schemas/QRPollResponse"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"当前扫码状态。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"轮询扫码登录状态","tags":["qr"]}},"/wxapp/getCode":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WxappRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"$ref":"#/components/schemas/WxappResponse"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"getCode 调用结果。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"获取小程序code","tags":["wxapp"]}},"/wxapp/getPhoneNumber":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WxappRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"$ref":"#/components/schemas/WxappResponse"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"getPhoneNumber 调用结果。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"获取手机号","tags":["wxapp"]}},"/wxapp/operateWxData":{"post":{"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OperateWXDataRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"code":{"description":"业务状态码，0 表示成功，非 0 表示业务错误。","example":0,"type":"integer"},"data":{"$ref":"#/components/schemas/WxappResponse"},"msg":{"description":"提示信息，前端可直接用于 Toast 提示。","example":"success","type":"string"}},"required":["code","msg","data"],"type":"object"}}},"description":"operateWxData 调用结果。"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIErrorResponse"}}},"description":"错误响应。"}},"summary":"小程序云函数","tags":["wxapp"]}}},"servers":[{"url":"/"}],"tags":[{"description":"服务健康检查","name":"health"},{"description":"微信扫码登录","name":"qr"},{"description":"已保存的微信账号","name":"accounts"},{"description":"wxapp 业务接口调用","name":"wxapp"}]}
