文档
测试

获取登录二维码V2

POST
https://api.convergence.com/login/getLoginQrcodeV2

接口描述

获取微信号登录客户端的二维码。

请求参数

参数名
类型
描述
必填
region
String
区域
必填
deviceId
String
设备ID,优先级最高
可选
uin
Long
微信号唯一标识
可选
loginPolicy
Integer
登录协议类型,0:IPAD 1:PC 2:MAC,默认IPAD登录
可选

请求参数示例

#### 示例一:指定旧设备ID登录 ``` { "region":"clientId-01", "deviceId":"2441eadfde32bd2d71153eb184facce2" } ``` #### 示例二:旧设备登录 ``` { "region":"clientId-01", "uin":2126295504, "loginPolicy":0 } ``` #### 示例三:新设备登录 ``` { "region":"clientId-01", "loginPolicy":0 } ``` #### 实例四:免扫码登陆 ``` { "region":"clientId-01", "uin":2126295504, "deviceId":"2441eadfde32bd2d71153eb184facce2" } ``` > 备注: > - 示例一通过deviceId精准的找到该设备并进行二维码获取。 > - 示例二通过uin,搜寻该uin在后台绑定的设备进行二维码获取。 > - 实例四,通过上一次二维码登陆退出后使用的uin与deviceId发起免扫码登陆,发起失败后则重新获取二维码返回。当取消免扫码登陆后,下次需重新二维码扫码登陆 > - **关于新旧设备的登录问题,详情见[登录模块](doc:LpLI6Sui)中设备相关的问答。**

异步响应参数

参数名
类型
描述
必填
code
Long
状态码
必填
deviceId
String
设备ID
必填
imgBuf
String
二维码内容-URL,需要转成二维码
必填
message
String
消息内容
必填
resultType
String
返回结果类型
必填
traceId
String
链路追踪ID
必填
region
String
区域
必填

异步响应参数示例

- 获取二维码异步响应参数 ``` { "code":0, "deviceId":"2441eadfde32bd2d71153eb184facce2", "imgBuf":"http://weixin.qq.com/x/46SQgOhM1TwoO1DPmxKj", "message":"", "resultType":"LOGIN_getLoginQrcode", "traceId":"7cce035e53bd46fab47cb444ab959c51", "region":"clientId-01" } ``` - 发起免扫码登陆异步响应参数 ``` { "code":0, "deviceId":"2441eadfde32bd2d71153eb184facce2", "imgBuf":"", "message":"", "resultType":"LOGIN_scan", "traceId":"7cce035e53bd46fab47cb444ab959c51", "region":"clientId-01" } ```

二维码url转二维码

#### 1、前端二维码url转二维码 ``` <html> <head> <!--引入jquery,jquery.qrcode--> <script type='text/javascript'src='http://cdn.staticfile.org/jquery/2.1.1/jquery.min.js'></script> <script type="text/javascript"src="http://cdn.staticfile.org/jquery.qrcode/1.0/jquery.qrcode.min.js"></script> </head> <body> <div id = "qrid"></div> </body> <script> $(function(){ var qrstr = "http://weixin.qq.com/x/YZ8dQIe7zyjeWazwBqzW"; $('#qrid').qrcode(qrstr);//不指定二维码大写 $('#qrid').qrcode({width: 280,height: 280,text: qrstr});//指定二维码大小 }); </script> </html> ``` #### 2、java二维码url转base64二维码 ``` # 引用依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId> <version>3.3.3</version> </dependency> # java示例 public static String qrcodeToBase64(String url) { Map<EncodeHintType, Object> hints = new HashMap<EncodeHintType, Object>(); hints.put(EncodeHintType.MARGIN, 0); try { BitMatrix bitMatrix = new QRCodeWriter().encode(url, BarcodeFormat.QR_CODE, 256, 256, hints); int[] rec = bitMatrix.getEnclosingRectangle(); int resWidth = rec[2] + 1; int resHeight = rec[3] + 1; BitMatrix resMatrix = new BitMatrix(resWidth, resHeight); resMatrix.clear(); for (int i = 0; i < resWidth; i++) { for (int j = 0; j < resHeight; j++) { if (bitMatrix.get(i + rec[0], j + rec[1])) { resMatrix.set(i, j); } } } int width = resMatrix.getWidth(); int height = resMatrix.getHeight(); BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); for (int x = 0; x < width; x++) { for (int y = 0; y < height; y++) { image.setRGB(x, y, resMatrix.get(x, y) == true ? Color.BLACK.getRGB() : Color.WHITE.getRGB()); } } ByteArrayOutputStream out = new ByteArrayOutputStream(); ImageIO.write(image, "png", out); base64Encoder base64Encoder = new BASE64Encoder(); return base64Encoder.encode(out.toByteArray()); } catch (Exception e) { log.error("url to qrcode error:{}", e); return null; } } ```