去了医院三四天,恢复了,再接着来
完成
店铺营业状态设置(设置营业状态+管理端查询营业状态+用户端查询营业状态)
HttpClient的使用
微信小程序开发流程
微信登录接口
收获
HttpClient
是客户端编程工具包,用于发送和接收http请求
https调用接口地址
GET https://api.weixin.qq.com/sns/jscode2session
小程序登录过程
登录过程:再小程序里通过wx.login()获得唯一授权码code,通过wx.request()发送给开发者服务器,开发者通过微信服务接口地址连接到微信服务,从而查询用户唯一标识openid
待用微信接口服务,获取用户的唯一Id
/**
* 调用微信接口服务,获取微信用户的openid
* @param code
* @return
*/
private String getOpenid(String code){
//调用微信接口服务,获取当前微信用户的openid,使用httpclien来调用
Map<String, String> map=new HashMap<>();
map.put("appid",weChatProperties.getAppid());
map.put("secret",weChatProperties.getSecret());
map.put("js_code",code);
map.put("grant_type","authorization_code");
String json = HttpClientUtil.doGet(WX_LOGIN, map);
JSONObject jsonObject = JSON.parseObject(json);
String openid = jsonObject.getString("openid");
return openid;
}
登录过程
public User wxlogin(UserLoginDTO userLoginDTO) {
String openid = getOpenid(userLoginDTO.getCode());
//判断openid是否为空,如果为空-登录失败-抛出异常
if (openid == null){
throw new LoginFailedException(MessageConstant.LOGIN_FAILED);
}
//判断当前用户是否为新用户
User user = userMapper.getByOpenid(openid);
//如果是新用户,自动完成注册
if (user == null){
user = User.builder()
.openid(openid)
.createTime(LocalDateTime.now())
.build();
userMapper.insert(user);
}
//返回用户对象
return user;
}
在测试过程过程中报500的错,查了sql没问题,最后检查出来是这里的接口地址多打了一个空格
public static final String WX_LOGIN = "https://api.weixin.qq.com/sns/jscode2session";