微信开发 标签

微信客服消息乱码-httpClient

  |   0 评论   |   0 浏览

问题描述 今日测试微信客服消息接口、发过去之后微信发给用户的是乱码,Google了一下,解决办法很多,但是都不能解决我的问题。我用的是Apache的httpClient。 之前一直是乱码的代码: entity = new StringEntity(JSON.toJSONString(postForm)); entity.setContentEncoding(StandardCharsets.UTF_8.toString()); entity.setContentType(ContentType.APPLICATION_JSON.getMimeType()); 我是用了utf-8编码,ContentEncoding是utf-8,但是还是乱码。。。。经过一番尝试,map转json的时候编码可能发生了变化。 我把代码这样写了一下,StringEntity()的时候也加了一下编码。问题解决了。 entity = new StringEntity(JSON.toJSONString(postForm), "UTF-8"); entity.setContentEncoding(StandardC....

拉取微信用户信息乱码解决办法

  |   0 评论   |   0 浏览

问题描述 在做拉取微信用户的时候,所有的中文字都是乱码。好郁闷。查找了半天发现微信返回的编码格式是ISO-8859-1,我们需要用ISO-8859-1接收,然后再转成UTF-8。不做转化直接保存就是乱码的。 代码如下: try { if (StringUtils.isEmpty(url)) { return null; } String resStr = doPost(url, postForm, 0, contentType); if(resStr != null) { resStr = new String(resStr.getBytes("ISO-8859-1"), "UTF-8"); } return JSON.parseObject(resStr,clazz); }catch (Exception e){ throw new IOException(e); } 这样。我的问题解决了。

微信客服消息乱码-httpClient

  |   0 评论   |   0 浏览

问题描述 今日测试微信客服消息接口、发过去之后微信发给用户的是乱码,Google了一下,解决办法很多,但是都不能解决我的问题。我用的是Apache的httpClient。 之前一直是乱码的代码: entity = new StringEntity(JSON.toJSONString(postForm)); entity.setContentEncoding(StandardCharsets.UTF_8.toString()); entity.setContentType(ContentType.APPLICATION_JSON.getMimeType()); 我是用了utf-8编码,ContentEncoding是utf-8,但是还是乱码。。。。经过一番尝试,map转json的时候编码可能发生了变化。 我把代码这样写了一下,StringEntity()的时候也加了一下编码。问题解决了。 entity = new StringEntity(JSON.toJSONString(postForm), "UTF-8"); entity.setContentEncoding(StandardC....

微信扫码登录实现原理

  |   0 评论   |   0 浏览

我最近的很多工作围绕着微信公众号的开发进行的。对微信公众号开发的很多细节都比较清楚。扫码登录也基本是首选的登录方式。这里我就记录一下我们的微信扫码登录时怎么实现的。 我们是用websocket来实现的。大体思路就是 前端请求登录二维码的时候传token参数,后端保存token到数据库 手机扫码。后台判断扫码事件的参数是否合法,然后通过websocket把验证结果发送给客户端 客户端如果收到成功消息。则向服务端发送一条登录成功的确认消息。 服务端收到之后,进行用户登录状态的处理,session的保存,把处理结果返回给客户端 客户端再次收到成功标志之后,做登录跳转。标志着登录成功。 所有异常结果都由前端提示操作失败。 ##1. 进入登录页面,前端向后台请求二维码 在扫码登录页面,前端向后台发个Ajax请求,请求扫描登录二维码。这里需要一个传一个请求参数token,因为后面要用它进行验证。 token可用时间戳+随机数获取 var token = '' + new Date().getTime() + '_' + Math.floor(Math.random() * 1000); 后台接收....