可以,但有两个核心前提:备案域名和 HTTPS 加密。
微信小程序的底层逻辑是“轻量级前端 + 重度后端”,它本身不承载业务逻辑,所有数据交互必须通过 HTTPS 请求发往你的服务器。微信官方为了安全和合规,对网络请求做了严格限制,直接说结论:
1. 必须使用 HTTPS
这是硬性规定。你不能用 http:// 开头,必须配置 SSL 证书。
- 如果你自己搭建服务器(比如阿里云 ECS、腾讯云 CVM),你需要在服务器上部署 Nginx/Apache,并申请免费或付费的 SSL 证书(Let’s Encrypt 免费证书完全够用)。
- 证书需要绑定到你的域名上。
2. 域名必须备案
这是国内云厂商的红线。
- 你在小程序后台配置的“request 合法域名”、“uploadFile 合法域名”等,必须是已经经过 ICP 备案的域名。
- 如果你的服务器在国内(阿里云、腾讯云、华为云等),域名必须完成工信部备案流程,否则无法解析,也无法在小程序后台添加白名单。
- 注意:即使你服务器在海外(AWS、DigitalOcean 等),虽然技术上能通,但根据《互联网信息服务管理办法》,面向中国大陆用户提供服务的网站/小程序,原则上也需要备案。而且微信审核时,如果发现域名未备案或指向海外 IP,大概率会被拒审或封禁接口。所以,老老实实走国内备案流程是最稳妥的。
3. 服务器环境要求
你自己搭建的后端可以是任何技术栈(Java Spring Boot、Node.js、Python Django/Flask、Go 等),只要满足以下条件:
- 支持 HTTPS 协议。
- 返回标准的 JSON 数据。
- 处理跨域问题(CORS)—— 因为小程序运行在微信客户端内,不是浏览器,所以不需要像 Web 开发那样频繁处理 CORS,但后端最好还是规范地设置响应头。
- 能够承受并发请求(根据你的用户量调整服务器配置)。
4. 小程序后台配置
在你的微信公众平台(mp.weixin.qq.com)后台:
- 进入「开发」->「开发管理」->「开发设置」。
- 找到「服务器域名」部分。
- 将你的备案域名添加到
request、uploadFile、downloadFile等列表中。 - 保存后生效。
常见坑点提醒:
- IP 地址不能直接作为域名:小程序不支持直接使用服务器的公网 IP 地址发起请求,必须用域名。
- 端口限制:默认只允许 443 端口(HTTPS 标准端口)。如果你想用其他端口,需要反向XX到 443。
- 本地调试:开发阶段可以在微信开发者工具中勾选“不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书”,方便联调。但一旦发布上线,这个选项无效,必须严格符合上述规则。
- CDN 提速:如果资源较多,建议搭配 CDN 使用,但 CDN 回源域名也需备案。
总结
能用,且非常普遍。 绝大多数中小型企业的小程序都是自建后端(或基于开源框架二次开发)。只要你搞定 备案域名 + SSL 证书 + 微信后台白名单配置,就能顺畅对接。
如果你不想折腾服务器运维、SSL 证书续期、安全加固这些琐事,也可以考虑微信云开发(Cloud Base),它是 Serverless 架构,免运维,内置数据库和存储,适合初创项目或 MVP 验证,但长期来看成本和灵活性不如自建服务器可控。
云技术博客