前言
介绍下最近一段时间内在公司做的一个微信小程序小项目几个核心功能的设计流程和部门代码实现
- 微信小程序登陆
- 获取手机号
- 微信OCR识别
- 微信人脸识别
- 微信支付
备注:本文章没有和公司相关的私密信息;每个功能都是通用
的插件
微信小程序登陆
通过code获取secretKey和openId的接口封装
# 这个appId是指小程序id 在微信公众平台申请小程序的时候会生成 WxMaService wxMaService=WxMaConfiguration.getMaService(appId); # 这里是设置失败重试次数 每一次失败重试时间间隔会变成 比如第一次3秒 第二次隔6秒重试一次 第三次隔9秒重复一次 所以对于用户来说不希望等待太久 所以设置为失败重试次数为0 即失败了 直接返回错误 不重试 wxMaService.setMaxRetryTimes(0); WxMaJscode2SessionResult session =wxService.getUserService().getSessionInfo(code);
关键代码
https://gitee.com/pingfanrenbiji/resource/tree/master/%E5%BE%AE%E4%BF%A1%E5%B0%8F%E7%A8%8B%E5%BA%8F/%E5%BE%
demo源码
https://gitee.com/pingfanrenbiji/weixin-java-miniapp-demo
依赖pom
<dependency> <groupId>com.github.binarywang</groupId> <artifactId>weixin-java-miniapp</artifactId> <version>${weixin-java-miniapp.version}</version> </dependency> <properties> <weixin-java-miniapp.version>4.0.2-SNAPSHOT</weixin-java-miniapp.version> </properties>
配置
wx: miniapp: configs: - appid: xxxx #微信小程序的appid 必填 secret: xxxx #微信小程序的Secret 必填 token: #微信小程序消息服务器配置的token 非必填 aesKey: #微信小程序消息服务器配置的EncodingAESKey 非必填 msgDataFormat: JSON
依赖包weixin-java-miniapp源码
https://gitee.com/pingfanrenbiji/WxJava/tree/master/weixin-java-miniapp
获取手机号
手机号解密关键代码
WxMaPhoneNumberInfo phoneNoInfo = wxService.getUserService().getPhoneNoInfo(sessionKey,encryptedData, iv);
本地解密函数