微信对域名有严格的安全限制,尤其是涉及 网页授权(OAuth)、JS-SDK、支付回调、网页跳转 等功能时,必须将域名加入 微信白名单,否则会被拦截或报错。以下是微信不同场景下的域名白名单配置方法:
1. 微信公众平台(公众号)域名白名单
适用于 网页授权(OAuth)、JS-SDK、支付回调 等功能。
(1)网页授权(OAuth)域名白名单
- 作用:用于
snsapi_base 或 snsapi_userinfo 授权登录。 - 配置位置:
- 登录 微信公众平台 → 开发 → 接口权限 → 网页授权域名。
- 只能填写 主域名(如
example.com),不能带 http:// 或 https://,也不能带路径(如 example.com/path 不行)。 - 最多可配置 20 个域名。
(2)JS-SDK 安全域名
- 作用:用于微信 JS-SDK 的
wx.config 签名验证。 - 配置位置:
- 登录 微信公众平台 → 设置 → 公众号设置 → 功能设置 → JS 接口安全域名。
- 同样只能填写 主域名(如
example.com),不能带协议或路径。 - 最多可配置 5 个域名。
(3)微信支付回调域名
- 作用:用于微信支付成功后的服务器回调通知(
notify_url)。 - 配置位置:
- 登录 微信商户平台 → 产品中心 → 开发配置 → 支付配置 → 支付回调 URL。
- 可以填写 完整 URL(如
https://example.com/pay/notify),但必须备案且支持 HTTPS。
2. 微信开放平台(小程序/网站应用)域名白名单
适用于 小程序、网站应用 的域名校验。
(1)小程序 request 合法域名
- 作用:小程序
wx.request 请求的域名必须在此列表中。 - 配置位置:
- 登录 微信公众平台(小程序后台) → 开发 → 开发设置 → 服务器域名 → request 合法域名。
- 必须 HTTPS,不能带端口号(如
https://example.com:8080 不行)。 - 最多可配置 200 个域名。
(2)小程序 socket 合法域名
- 作用:小程序
wx.connectSocket 的 WebSocket 域名。 - 配置位置:
- 同上,在 服务器域名 → socket 合法域名。
(3)小程序 uploadFile/downloadFile 合法域名
- 作用:小程序文件上传下载的域名。
- 配置位置:
- 在 服务器域名 → uploadFile 合法域名 和 downloadFile 合法域名。
(4)网站应用授权域名
- 作用:网站应用使用微信登录时的回调域名。
- 配置位置:
- 登录 微信开放平台 → 开发 → 网站应用 → 开发信息 → 授权回调域。
- 只能填写 主域名(如
example.com),不能带协议或路径。
3. 微信企业号/企业微信域名白名单
适用于 企业微信 的应用回调、网页授权等。
(1)企业微信应用可信域名
- 作用:企业微信应用回调、网页授权的域名。
- 配置位置:
- 登录 企业微信管理后台 → 应用管理 → 应用 → 开发配置 → 可信域名。
- 必须 HTTPS,不能带端口号。
(2)企业微信网页授权域名
- 作用:企业微信 OAuth 授权登录的域名。
- 配置位置:
- 同上,在 开发配置 → 网页授权及 JS-SDK 域名。
4. 常见问题
Q1:域名必须备案吗?
- 公众号、小程序、开放平台:必须备案(中国大陆服务器)。
- 企业微信:如果服务器在海外,可以不备案(但建议备案)。
Q2:域名可以带端口吗?
- 不可以!微信白名单域名 不能带端口号(如
example.com:8080 不行)。
Q3:子域名需要单独配置吗?
- 需要!
sub.example.com 和 example.com 是不同的域名,必须分别配置。
Q4:HTTPS 证书必须是可信的吗?
- 是的!微信要求 HTTPS 证书必须由受信任的 CA 颁发(如 Let's Encrypt、DigiCert 等),自签名证书会被拒绝。
Q5:修改域名白名单后多久生效?
- 通常 立即生效,但某些接口(如支付回调)可能需要 缓存刷新(等待几分钟)。