接口文档

微信网页授权接口文档

面向业务网站与 App 的统一接入说明。请根据服务号来源选择对应章节:平台统一微信登录,或自有服务号授权(可选)。

租户共享平台服务号

一、平台统一微信登录

适用于不使用自有服务号的租户。平台托管微信服务号与 PC 网站应用,业务系统只需保存 site_keysite_secretredirect_uri

1. 授权请求

GET https://auth.aikelaidev.cn/oauth/authorize

参数必填说明
site_key站点唯一标识
redirect_uri已登记的 HTTP 或 HTTPS 回调白名单地址;协议、主机、端口和路径必须与登记值完全匹配
login_mode推荐省略或传 auto:微信内直接进入 H5 授权;普通手机浏览器显示微信唤起与复制链接引导;电脑浏览器自动展示扫码;仅调试时传 h5website
entry_url普通手机浏览器引导页展示的业务登录入口;必须与 redirect_uri 同源并参与签名
scopeH5 可传 snsapi_basesnsapi_userinfo;PC 自动使用 snsapi_login
timestampnonce服务端生成
sign去掉 sign 后按字段名排序,拼接 key=value,以 site_secret 做 HMAC-SHA256

手机浏览器说明:微信网页授权只能在微信内置浏览器完成。普通手机浏览器会显示“尝试打开微信”“复制微信授权登录链接”和业务系统入口;若系统禁止唤起,请复制授权登录链接到微信聊天窗口打开,即可继续授权并返回原业务回调。

签名计算:删除 sign 字段,忽略空值,按参数名 ASCII 升序排列,拼接为 key=value&key=value,再使用站点 site_secret 进行 HMAC-SHA256;最终结果使用小写十六进制。

timestamp=1710000000\nnonce=abc123\nredirect_uri=https://your.example.com/oauth/callback\nscope=h5_userinfo\nsite_key=YOUR_SITE_KEY\nsign=HMAC_SHA256(上述字段, SITE_SECRET)

2. 回调与验票

业务回调收到一次性 ticketstate 后,服务端立即请求:

POST https://auth.aikelaidev.cn/api/oauth/ticket/verify

{"site_key":"YOUR_SITE_KEY","ticket":"CALLBACK_TICKET","timestamp":1710000000,"nonce":"SERVER_RANDOM","sign":"HMAC_SHA256_SIGNATURE"}

3. 成功返回

{"code":0,"message":"ok","data":{"openid":"微信用户 openid","unionid":"可选 unionid","nickname":"微信昵称","avatar_url":"头像地址","scope":"snsapi_userinfo","expires_in":7200}}
租户自有服务号

二、自有服务号授权(可选)

仅适用于租户坚持使用自己的服务号。会员套餐开放多少个自有服务号,租户即可在额度内授权并使用多少个;额度为 0 时需先升级套餐。平台管理员配置开放平台组件、租户完成服务号授权后,H5 与 PC 仍使用和平台公共服务号完全相同的业务接口与 SDK。

1. 前置配置

在后台“站点基础设置 → 开放平台授权(仅自有服务号,可选)”配置组件凭证、微信服务器回调地址、统一 OAuth 回调地址,并上传业务域名验证文件。租户在“我的公众号”完成管理员扫码授权。

2. 授权请求

请求地址仍为 GET https://auth.aikelaidev.cn/oauth/authorize,参数与上方完全一致;自动模式下,手机浏览器和微信内使用站点绑定的自有服务号,电脑浏览器使用平台网站应用扫码,租户无需维护两套接口。手机系统或浏览器若限制自动打开微信,用户需允许跳转或在微信中打开当前页面。两种来源的用户应优先通过 unionid 关联,无法取得 unionid 时由业务系统提供账号绑定。

3. 回调与验票

回调收到 ticket 后,调用 POST https://auth.aikelaidev.cn/api/oauth/ticket/verify 验证。不要使用公众号 AppSecret 或组件 AppSecret 生成业务签名,签名只使用站点 site_secret

{"site_key":"YOUR_SITE_KEY","ticket":"CALLBACK_TICKET","timestamp":1710000000,"nonce":"SERVER_RANDOM","sign":"HMAC_SHA256_SIGNATURE"}

4. 返回结果

返回结构与平台统一微信登录一致:codemessagedata(openid、unionid、昵称、头像、scope、expires_in)。

三、安全与接入检查

  • 业务回调支持 HTTP 或 HTTPS,但必须提前登记白名单;协议、主机、端口和路径必须完全匹配。建议生产环境使用 HTTPS。
  • site_secret 只能保存在业务服务端,不得出现在前端或 App 公共代码中。
  • 回调收到 ticket 后立即验票;ticket 只能使用一次。
  • 验票成功后再创建或更新本地 Session,不能仅凭浏览器参数登录。