微信小程序的时代已经来临,在刚过去的2018年微信公开课pro版大会上,张小龙也透露小程序将是他们花最多时间来做,也是最大的项目。小程序将开启商业化时代,支持广告变现、促成电商交易。在如此红火的背景下,作为一名技术渣,有所💓的同时,也尝试来做小程序。废话不多说,小的就把过程甩上来。
开始之前,我这边先做一个简单的说明。简单来说,一般微信小程序从无到有,你都需要经历以下几个基本步骤:
1、申请自己的微信小程序开发账号;
2、获取自己的https证书
3、部署自己的服务器,包括应用程序服务器和数据库
4、开发自己的微信小程序,包括前端显示和后端逻辑处理;
5、发布自己的项目
这次我主要讲述的是微信小程序如何连接java web后台进行数据请求,即上面步骤的2、3。其他步骤1、4、5,例如申请微信小程序开发账号和具体的开发过程,这边就不再赘述了,网上相关的资料已经很多了,请自行搜索。
同时前端开发、交互设计此等对艺术和审美具有高要求的活不是技术渣的领域;同时,不同种类的小程序开发要求不同,根据自己项目选择接下去你们的活吧!
接下来进入本文正题。
第一、为什么及如何获取自己的https证书?
在微信开发中,使用wx.request进行数据请求时:
wx.request({
url: 'https://域名:端口/action',
data: e.detail.value,
method: 'POST',
success:function(res) {
console.log('submit success');
},
fail:function(res){
console.log('submit fail');
},
complete:function(res){
console.log('submit complete');
}
})
会发现,微信域名只支持 https (request、uploadFile、downloadFile) 协议;域名不能使用IP 地址或 localhost;且域名必须经过 ICP 备案;所以说,在开始开发前你需要准备一个已经备案成功的域名,一个https ssl证书。
鉴于学习的低成本,想要免费的,可惜的是还是没有找到免费的。于是去网友推荐的一个网站进行了购买,https://www.appnode.com/ssl。
购买完成之后,点击下载证书,你就获得了一个你的域名+.crt结尾的证书。但是要配置到你的tomcat中,你还是需要进行一些转换:将.crt结尾的文件证书上传到你购买的服务器上(linux操作系统),进入到存放证书的目录,执行以下语句:
1)openssl pkcs12 -export -in 你的域名.crt -inkey 你的域名.key -out temp.p12 -name temp(输入密码)
2) keytool -importkeystore -srckeystore temp.p12 -srcstoretype PKCS12 -destkeystore temp.jks(输入密码)(如果没有权限chmod -R 777 keytool)
你就获得了temp.jks文件,同时配置tomcat server.xml 文件:
第二、服务器部署以及域名设置(本质就是捡便宜的买买买!)
技术渣没有钱,穷屌丝一枚啊!为了降低成本,一般大家可以在网上资料一搜索,有很多平台提供免费的服务器,但是现实情况是,经过搜索,拥有免费服务器的时代已经一去不复返了。网上资料中搜索的免费服务器都已经下架。小的只能在腾讯云上购买一个最低配版的服务器,费用是86元/月(当然如果你是高富帅、白富美、不差钱的主,请绕道。。。俗话说,拥有顶级的装备,刷副本打boss才快啊,只要你有钱,顶级装备配起来!!!!)
接下来,小的还在腾讯云弄了一个.club结尾的域名,可以免费使用一年(敲黑板!免费哦!!!!在这里不得不佩服马哥哥的大气)。同时,你还要花一些时间进行备案(整体大概用时两周,涵盖填写申请、幕布寄送拍照、服务商&网管局审核)。最后将你的域名解析到你服务器的ip地址上就搞定啦(撒花🎉🎉🎉)
在购买的服务器上进行了java服务的部署,jdk安装、数据库安装(为了省钱没有购买数据库服务,直接安装了一个mysql)、将war包发布于tomcat中,并启动服务。
配置完成之后,你在重启你的tomcat,用https://你的域名:接口/请求名进行请求,如果有数据返回,就说明你成功啦!!!当然,你也就可以将该域名放到微信的请求wx.request中进行后端的数据请求啦~~~
以上说的如果有不明白的,也可以留言进行提问,我会第一时间进行回答的~~
另外打个小广告:无论你是想做微商还是电商,还是兴趣开发各种小程序,有需要小的,可以抛给我橄榄枝,各种打杂来者不拒哈(我内心的os:屌丝一切都是为了心中的女神,要给她买买买啊。。。。。。 TF一整套的目标今年是完不成了,哎)