java 发表于 2018-5-15 15:34:21

小程序后台服务搭前提条件

分析一下微信官方文档根据小程序官方文档描述,微信小程序的wx.request请求有如下几点要求● 域名只支持 https (request、uploadFile、downloadFile) 和 wss (connectSocket) 协议;
● 域名不能使用 IP 地址或 localhost,且不能带端口号;
● 域名必须经过ICP 备案;
● 出于安全考虑,api.weixin.qq.com 不能被配置为服务器域名,相关API也不能在小程序内调用。开发者应将appsecret 保存到后台服务器中,通过服务器使用 appsecret 获取 accesstoken,并调用相关 API。重点在于前三条。
第一条:只支持https请求。这就要求我们的后台服务需要配置一个SSL证书。
第二条:说明端口号支持443(https请求默认为443),并且必须是一个域名例如www.baidu.com而不能是IP地址。
第三条:域名要去备案。这里就不介绍第三条域名的备案了。假设大家现在手里搞到了一个备了案的域名www.myweb.com如何搭建后台环境?第一步:申请一个SSL证书(免费的哦)登录阿里云,申请一个免费的DV SSL证书
https://common-buy.aliyun.com/?spm=5176.2020520163.cas.4.406f1768JUOggq&commodityCode=cas#/buy
https://img-blog.csdn.net/20171017213303150?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ29sdG9uX051bGw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
购买完证书后,在补全所属域名等信息。
如果信息填写都正确的话,证书很快就会通过审核。审核通过后,下载证书。
https://img-blog.csdn.net/20171017213327905?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ29sdG9uX051bGw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
解压下载下来的压缩包,会得到如下文件
https://img-blog.csdn.net/20171017213351740?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ29sdG9uX051bGw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
到这里,我们的证书准备工作就已经做完了。在SpringBoot中配置SSL证书首先,将.pfx文件放在resources目录下。这里假设是123465.pfx
然后在application.yml文件中填下如下配置server:port: 443ssl:    key-store: classpath:123456.pfx    key-store-password: 123456    keyStoreType: PKCS12
[*]1
[*]2
[*]3
[*]4
[*]5
[*]6
到此,SSL的配置就结束了。
此时,启动SpringBoot工程,会发现SpringBoot内置的Tomcat已经在443端口上启动了。当然了,前提是在443端口没有被占用的情况下。
https://img-blog.csdn.net/20171017213450630?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ29sdG9uX051bGw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast第三步:微信开发者工具的配置实际上,在本地开发调试的时候,不去操作前两步,也可以绕开HTTPS的限制,使用http请求而且也可以使用非443端口。只需要在【项目设置】中,勾选“不校验安全域名、TLS版本以及HTTPS证书”即可
https://img-blog.csdn.net/20171017213645519?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ29sdG9uX051bGw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast然而,如果想要发布小程序,则必须要改成https请求。那么在项目部署到公网环境之前,想要在本地测试一下https请求是否好用时该怎么办呢?我们可以通过修改hosts文件,将域名重定向到127.0.0.1地址上就可以在本地模拟访问域名https请求了。首先在微信小程序开发者后台中,配置域名
https://img-blog.csdn.net/20171017213757703?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQ29sdG9uX051bGw=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast
注意,这里不能加端口号(文档中有提,https默认的端口号即为443),例如:https://www.myweb.com之后,在系统hosts文件中添加如下(如何修改hosts文件网上资料很多,这里就不多做介绍了)127.0.0.1 www.myweb.com
[*]1
这样,在本机访问www.myweb.com就被重定向到本机地址上了。取消勾选“不校验安全域名、TLS版本以及HTTPS证书”,在微信小程序中request请求的url地址就可以写成www.myweb.com/…,即可在项目部署到公网环境之前,在本地模拟对设置好的域名发送请求,以便在本地检测程序是否有问题。总结一下1.在本地开发时,暂时可以不需要SSL证书,request请求可以为http和任意端口号。
2.小程序最终发布时,需要后台支持https,并且需要合法域名。此时就需要有个一ICP备案的域名,购买ssl证书并在后台配置证书,配置小程序服务域名。
https://blog.csdn.net/Colton_Null/article/details/78266810?locationNum=10&fps=1
页: [1]
查看完整版本: 小程序后台服务搭前提条件