读者要求:已经学过微信小程序的入门官方教程,即其简易教程。
另外:如您的小程序需要进行微信支付,则首先需要完成微信认证(个人号不支持微信认证):【登录小程序】—>【设置】—>【微信认证详情】,同时,申请微信支付:微信认证后,可以在小程序后台,点击微信支付菜单项,选择申请微信支付。申请完成后,会发送微信支付商户号,商户平台用户名密码等信息到注册者邮箱。
如下介绍一个可运行的微信小程序登录+支付的demo。接触了小程序简易教程的,想必都知道我们必然有自己的后台应用服务器,来处理我们自己的业务逻辑、请求微信服务完成一定的功能。在此,我们的后台采用java环境,本文将首先介绍环境搭建的过程,随后介绍登录+支付的流程及代码。
一、后台web服务环境搭建
1. 安装jdk、tomcat,ICP备案的域名准备。
Linux安装jdk:https://blog.csdn.net/zhang918784312/article/details/79751283
Linux 安装tomcat:https://www.cnblogs.com/EasonJim/p/7202844.html
经过icp备案的域名,请自行准备。
2.配置https,由于小程序请求url必须是https,故而必须配置支持https请求。本人采用的是在阿里云购买的域名,故而采用的证书也是阿里云生成的ssl证书,可参考如下两篇博文进行配置。当然,你也可以通过别的方式生成证书,更或者通过nginx作反向代理到你的服务器。
https://blog.csdn.net/qq_28189091/article/details/75078164
https://blog.csdn.net/z_xuewen/article/details/78176509
同时,务必将您的小程序域名绑定在小程序后端。登入小程序后台,【设置】-【开发设置】-【服务器域名】
3. 部署web服务
如上两步完成后,请务必确认通过你的域名(https://...)可以展示tomcat的默认页之后,开始部署我们的web服务。在此,就简单粗暴的在webapps下建立小程序的根目录,我命名为wechatserver,在此目录下,创建WEB-INFO,下面的目录结构如下:
classes存放自己写的类的classes文件,lib存放我们项目依赖的jar包,logs用于存放我们的日志输出,web.xml是我们这个项目的配置。
demo中,我们只有一个servlet接收小程序前端请求,web.xml中增加配置如下:
<servlet>
<servlet-name>WechatServlet</servlet-name>
<servlet-class>com.icbc.servlet.WechatServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>WechatServlet</servlet-name>
<url-pattern>/servlet/WechatServlet</url-pattern>
</servlet-mapping>
4. log4j 应用
在开发调试中,我们免不了需要通过打印日志进行调试,因此在此增加了日志的使用。web.xml中增加配置:
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classes/log4j.properties</param-value>
</context-param>
在classes增加文件,log4j.properties,内容如下:
log4j.rootLogger = INFO,toConsole,D,E
log4j.appender.toConsole=org.apache.log4j.ConsoleAppender
log4j.appender.toConsole.Target=System.out
log4j.appender.toConsole.layout=org.apache.log4j.PatternLayout
log4j.appender.toConsole.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%p] %m%n
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.file = 你的目录/common.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = info
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t: