用 AppKey 调用已授权微信账号的小程序 code 服务
你只需要在主站完成微信扫码授权,然后在请求 Header 里带上 AppKey 和 AppSecret,就可以通过这里的接口查询账号信息或获取指定 OpenID 的小程序 code。
1. 主站授权微信
进入主站 WechatAuth 页面,手动扫码完成微信授权。这里不提供扫码登录接口。
2. 申请 AppKey
在“API接口”标签页申请 AppKey,并立即保存只显示一次的 AppSecret。
3. 调用接口
请求 Header 写入 AppKey 和 AppSecret,再按接口说明传参数。
AppSecret 只在创建或重置成功时显示一次。忘记了无法找回,只能回主站点击“重置 AppSecret”。
统一鉴权方式
两个接口都使用相同 Header。Header 名区分清楚即可,值不要写引号。
| Header | 必填 | 说明 |
|---|---|---|
AppKey |
是 | 你的接口账号,格式像 rl-a1b2c3。删除 AppKey 后旧值会失效。 |
AppSecret |
是 | 你的接口密钥,格式像 rls-...。它证明调用者是你本人,请不要发给别人。 |
Content-Type |
get-code 必填 | 调用 get-code 时填 application/json,表示请求体是 JSON。 |
可直接复制的调用示例
下面的示例里,https://你的接口域名 换成你绑定到 frontend-yyb 的域名。
curl
终端命令
curl -X POST 'https://你的接口域名/api/yyb/get-code' \
-H 'Content-Type: application/json' \
-H 'AppKey: rl-a1b2c3' \
-H 'AppSecret: rls-你的AppSecret' \
-d '{"openid":"微信OpenID","appid":"目标小程序AppID"}'
JavaScript fetch
Node.js / 浏览器
const res = await fetch('https://你的接口域名/api/yyb/get-code', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'AppKey': 'rl-a1b2c3',
'AppSecret': 'rls-你的AppSecret'
},
body: JSON.stringify({
openid: '微信OpenID',
appid: '目标小程序AppID'
})
});
const data = await res.json();
console.log(data);
Python requests
Python 3
import requests
resp = requests.post(
"https://你的接口域名/api/yyb/get-code",
headers={
"Content-Type": "application/json",
"AppKey": "rl-a1b2c3",
"AppSecret": "rls-你的AppSecret",
},
json={
"openid": "微信OpenID",
"appid": "目标小程序AppID",
},
timeout=30,
)
print(resp.status_code)
print(resp.json())
先查账号列表
get-info
curl 'https://你的接口域名/api/yyb/get-info' \ -H 'AppKey: rl-a1b2c3' \ -H 'AppSecret: rls-你的AppSecret'
接口一:get-info
GET
/api/yyb/get-info
用途:查看当前 AppKey 对应用户的微信授权账号、积分、微信配额、今日免费调用次数和 AppKey 调用量。这个接口不扣积分。
成功响应示例
JSON
{
"success": true,
"data": {
"user": {
"id": "用户ID",
"username": "用户名",
"level": "common",
"points": 120.5
},
"app_key": {
"app_key": "rl-a1b2c3",
"total_call_count": 18,
"get_info_call_count": 4,
"get_code_call_count": 14,
"last_used_at": "2026-06-26 10:20:30"
},
"wechat_auth": {
"quota": 2,
"used": 1,
"accounts": [
{
"id": "微信卡片ID",
"remark": "备用号",
"openid": "o123456789",
"nickname": "微信昵称",
"avatar_url": "头像地址",
"expire_at": 1790000000000,
"status": "online",
"is_valid": true,
"last_error": ""
}
]
},
"billing": {
"billing_date_cn": "2026-06-26",
"free_quota": 1,
"used_success_count": 0,
"over_quota_cost_points": 10
}
}
}
字段说明
| 字段 | 意思 | 怎么用 |
|---|---|---|
success |
这次请求是否成功。 | true 表示可以读取 data;false 表示看 message 找原因。 |
user.points |
当前剩余积分,已经换算成“积分”单位。 | 今日免费次数用完后,get-code 成功会按这里的积分扣。 |
app_key.total_call_count |
当前 AppKey 成功调用接口的总次数。 | 包含 get-info 和 get-code。 |
wechat_auth.quota |
当前用户最多可以保留几个微信授权账号。 | 申请 AppKey 时至少需要 2 个微信配额。 |
wechat_auth.used |
当前已经创建且未删除的微信卡片数量。 | 包含有效和失效账号,不包含已删除账号。 |
accounts[].openid |
微信账号的唯一标识。 | 调用 get-code 时要把它放进请求体。 |
accounts[].is_valid |
这个微信授权当前是否可用。 | 只有 true 的账号能调用 get-code。 |
billing.free_quota |
今天最多可以免费成功调用 get-code 的次数。 |
会员等级和绑定情况会影响这个值。 |
billing.used_success_count |
今天已经成功使用的 get-code 次数。 |
小于 free_quota 时,下一次成功通常仍免费。 |
接口二:get-code
POST
/api/yyb/get-code
用途:给指定 OpenID 的微信账号获取某个小程序的 code。这个接口会校验 OpenID 必须属于当前 AppKey 的用户,不能跨用户调用。
请求体字段
| 字段 | 必填 | 说明 | 例子 |
|---|---|---|---|
openid |
是 | 要操作的微信账号 OpenID。先调用 get-info 可以看到账号列表。 |
o123456789 |
appid |
是 | 目标小程序 AppID。你要拿哪个小程序的 code,就填哪个小程序的 AppID。 | wx1234567890abcdef |
成功响应示例
JSON
{
"success": true,
"message": "获取 code 成功",
"data": {
"code": "021abc...",
"openid": "o123456789",
"appid": "wx1234567890abcdef",
"account": {
"remark": "备用号",
"nickname": "微信昵称",
"is_valid": true
},
"billing": {
"billing_date_cn": "2026-06-26",
"free_quota": 1,
"used_before": 0,
"used_free_quota": true,
"charged_cents": 0,
"charged_points": 0,
"deducted": false,
"refunded": false
}
}
}
计费字段说明
| 字段 | 意思 | 常见情况 |
|---|---|---|
billing.used_free_quota |
这次成功调用是否使用了今日免费次数。 | true 表示本次没有扣积分;false 表示走积分扣费。 |
billing.used_before |
本次调用前,今天已经成功调用了多少次。 | 用于判断本次为什么免费或扣费。 |
billing.charged_points |
本次实际扣除的积分。 | 免费时是 0;超额成功时通常是 10。 |
billing.deducted |
是否已经写入积分扣除记录。 | 超额扣费成功时为 true。 |
billing.refunded |
是否因为积分日志写入失败而自动退回本次扣费。 | 一般为 false;如果为 true,本次 code 仍然获取成功。 |
常见错误和状态码
接口失败时,优先看 HTTP 状态码,再看响应里的 message。
400参数错误,例如缺少 openid、appid,或微信授权已失效。
401AppKey/AppSecret 缺失、不存在、已删除或密钥不正确。
402今日免费次数已用完,并且积分不足。
403OpenID 不属于当前用户,或账号被封禁。
失败响应示例
JSON
{
"success": false,
"message": "该 OpenID 不属于当前用户,或授权账号已删除"
}
小提示:如果你不知道该填哪个 OpenID,先调用
get-info,从 wechat_auth.accounts 数组里复制 openid。如果 is_valid 是 false,请回主站重新扫码授权。