微信小程序
本框架已经集成了微信小程序的接口封装,可以通过简单的配置,实现微信小程序的接口调用。
启用配置
通过下面的配置类可以知道,我们是通过wx.ma.enabled=true来启用微信小程序的配置的。 
application.yml也对其进行了优化 
这样我们可以通过三种方式启用微信小程序的配置类。
方式一
通过application.yml进行配置,直接将wx.ma.enabled设置为true,即
wx:
ma:
enabled: ${WX_MA_ENABLED:true}
方式二
通过环境变量进行配置,即WX_MA_ENABLED=true
方式三
通过启用时候传入参数,即-Dwx.ma.enabled=true 上面三种方式任选一种即可。
配置项
上面虽然启用了微信小程序的配置类,但是实际上,我们并没有进行任何配置,如果这个时候启动服务,那么会抛出异常。所以需要进行配置项的配置。 配置项如下:
| 属性 | 描述 | 是否必填 |
|---|---|---|
| WX_MA_APPID | 小程序的appid | 是 |
| WX_MA_SECRET | 小程序的secret | 是 |
| WX_MA_TOKEN | 小程序的token | 否 |
| WX_MA_AES_KEY | 小程序的的EncodingAESKey | 否 |
| WX_MA_MSG_DATA_FORMAT | 小程序的消息数据格式 | 否 |
上面的配置项,可以通过两种方式进行配置。
方式一
通过环境变量进行配置,即 mac/linux
export WX_MA_APPID=xxx
export WX_MA_SECRET=xxx
方式二
【系统设置】-【参数配置】-【新增】
下面是idea中配置参数的截图: 

使用
配置完成后,我们就可以使用微信小程序的接口了。
关于授权登录
我们框架已经实现了授权登录,登录接口和用户名+密码登录接口一样,只是入参不同。
POST /sys/login
请求body参数:
{
"grantType": "wxMa",
"code": "xxx"
}
- grantType: 授权类型,固定为wxMa,对应的是
WxMaGranter.java类 - code: 微信小程序的code,由小程序获取
注:目前该授权登录是不会自动注册用户,如果用户不存在,那么会返回错误。如果是如下错误,则会返回openid和unionid。
{
"code": 10041002,
"msg": "您未绑定微信,请先绑定!",
"data": {
"wx_openid": "xx",
"wx_openid": "xxx"
}
}
此时,可以把openid和unionid保存起来,然后跳转到登录页面,让用户绑定微信。(一般情况可以跳转到手机号授权页,通过手机号授权登录关联)
关于手机号授权登录
我们框架已经实现了手机号授权登录,登录接口和用户名+密码登录接口一样,只是入参不同。 POST /sys/login 请求body参数:
{
"grantType": "wxMaPhone",
"code": "xxx",
"wx_openid": "xxx",
"wx_unionid": "xxx"
}
- grantType: 授权类型,固定为wxMaPhone,对应的是
WxMaPhoneGranter.java类 - code: 微信小程序的code,由小程序获取
- wx_openid: 前面授权登录获取到的微信小程序的openid
- wx_unionid: 前面授权登录获取到的微信小程序的openid
注:手机号授权登录,如果手机号不存在,那么会自动注册用户。
关于账号关联
- 先使用用户名+密码或手机授权登录
- 再调用关联账号接口
POST /sys/relThirdAccountByCode请求body参数:
{
"relType": "WxMa",
"code": "xxx"
}
- relType: 关联类型,固定为WxMa
- code: 微信小程序的code,由小程序获取
关于取消账号关联
POST /sys/unRelThirdAccount 请求body参数:
{
"relType": "WxMa"
}
- relType: 关联类型,固定为WxMa
其他小程序接口
详见:WxJava文档
关于关系表
用户授权登录之后,会返回用户信息,用户信息中会包含openid,openid就是关系表需要的关联字段。详见:sys_rel_third_account
