Files
wx_service/docs/common/wechat_official.md
T
nepiedg 1c48fbdeaf Integrate WeChat Official Account support and update configuration
- Added WeChat Official Account configuration options to .env.example and config.go for OAuth2 integration.
- Updated main.go to initialize WeChat OAuth handler and register routes for handling OAuth requests.
- Enhanced documentation to include references for WeChat Official Account functionality.
- Updated route registration to accommodate the new OAuth handler for improved API structure.
2025-12-31 03:55:30 +00:00

1.8 KiB

微信公众号:code 换取 openid/用户信息

本接口用于微信公众号网页授权(OAuth2):前端拿到微信回调的 code 后,调用后端换取 openid,并可选获取用户信息(昵称/头像/unionid 等)。 https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx65d83a301fc84068&redirect_uri=https%3A%2F%2Fwww.baidu.com&response_type=code&scope=&state=1#wechat_redirect https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx65d83a301fc84068&redirect_uri=https%3A%2F%2Fwww.baidu.com&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

配置

.env 中配置(示例见:.env.example):

  • WECHAT_OA_APP_ID
  • WECHAT_OA_APP_SECRET
  • WECHAT_OA_TIMEOUT_SECONDS(可选)

接口

POST /api/v1/wechat/official/oauth/code2user

说明:

  • 不需要登录(无需 Bearer Token),因为该 code 本身来自微信网页授权流程。

请求体:

{
  "code": "微信回调参数 code",
  "with_userinfo": true
}
  • with_userinfo 可选,默认 true
  • 若网页授权 scope 仅为 snsapi_base,通常只能拿到 openid,获取 userinfo 可能失败(接口会返回 userinfo_error 提示)。

curl 示例:

curl -X POST 'http://127.0.0.1:8080/api/v1/wechat/official/oauth/code2user' \
  -H 'Content-Type: application/json' \
  -d '{"code":"YOUR_CODE","with_userinfo":true}'

成功响应示例(节选):

{
  "code": 200,
  "message": "success",
  "data": {
    "openid": "oXXXX",
    "unionid": "oXXXX",
    "scope": "snsapi_userinfo",
    "expires_in": 7200,
    "userinfo": {
      "openid": "oXXXX",
      "nickname": "昵称",
      "headimgurl": "https://...",
      "sex": 1,
      "province": "Guangdong",
      "city": "Shenzhen",
      "country": "CN",
      "unionid": "oXXXX"
    }
  }
}