需要的材料
1:一个可以测试的微信小程序
2:此微信小程序的APPID和APP_SECRET
小程序用户表
CREATE TABLE `wx_user` (
`id` int(20) NOT NULL AUTO_INCREMENT,
`openid` varchar(28) DEFAULT NULL COMMENT '小程序的openid',
`nick_name` varchar(100) DEFAULT NULL COMMENT '昵称',
`real_name` varchar(100) DEFAULT NULL COMMENT '姓名',
`headimg_url` varchar(100) DEFAULT NULL COMMENT '头像',
`gender` tinyint(1) DEFAULT NULL COMMENT '性别 0-男、1-女',
`country` varchar(100) DEFAULT NULL COMMENT '所在国家',
`province` varchar(100) DEFAULT NULL COMMENT '省份',
`city` varchar(100) DEFAULT NULL COMMENT '城市',
`language` varchar(100) DEFAULT NULL COMMENT '语种',
`mobile` varchar(50) DEFAULT NULL COMMENT '手机号码',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`login_time` datetime DEFAULT NULL COMMENT '登录时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='小程序用户表';
pom.xml
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.47</version>
</dependency>
Controller
package com.yymt.startalk_yyt.controller;
import com.alibaba.fastjson.JSONObject;
import com.yymt.startalk_yyt.common.R;
import com.yymt.startalk_yyt.service.WeChatLoginAuthService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import org.bouncycastle.util.Arrays;
import org.bouncycastle.util.encoders.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.AlgorithmParameters;
import java.security.Security;
import java.util.Map