文章目录
一、简单介绍二、临时二维码HttpUtils获取ticket查看二维码 四、测试一、简单介绍
开发文档:微信开发文档
目前有2种类型的二维码:
临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
用户扫描带场景值二维码时,可能推送以下两种事件:
如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者。
如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。
获取带参数的二维码的过程包括两步,首先创建二维码ticket,然后凭借ticket到指定URL换取二维码。
创建二维码ticket
每次创建二维码ticket需要提供一个开发者自行设定的参数(scene_id),分别介绍临时二维码和永久二维码的创建二维码ticket过程。
二、临时二维码
以临时二维码为例。
临时二维码请求说明
http请求方式:POSTURL:https://api./cgi-bin/qrcode/create?access_token=TOKENPOST数据格式:
json POST数据例子:
{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}
或者也可以使用以下POST数据创建字符串形式的二维码参数:
{"expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}
HttpUtils
HttpUtils工具的下载、使用:HttpUtils的用法
获取ticket
/*** 获得二维码的ticket* 临时二维码请求说明* http请求方式: POST URL: https://api./cgi-bin/qrcode/create?access_token=TOKEN* {"ticket":"gQGz8DwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAycUZUUGhsOXZmakUxUURhN052Y2gAAgSnD75fAwSAOgkA","expire_seconds":604800,"url":"http:\/\/\/q\/02qFTPhl9vfjE1QDa7Nvch"}* @return*/public String getQRCodeTicket() throws Exception {String host = "https://api.";String path = "/cgi-bin/qrcode/create";String token = WXServiceImpl.getWXToken();Map<String, String> headers = new HashMap<String, String>();Map<String, String> querys = new HashMap<String, String>();querys.put("access_token",token);String data= "{\"expire_seconds\": 604800, \"action_name\": \"QR_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \"lsh\"}}}";HttpResponse httpResponse = HttpUtils.doPost(host, path, headers, querys, data);String respJsonStr = EntityUtils.toString(httpResponse.getEntity());JSONObject jsonObject = JSON.parseObject(respJsonStr);System.out.println("jsonObject:"+jsonObject);String ticket = (String)jsonObject.get("ticket");return ticket;}
查看二维码
通过ticket换取二维码:
HTTPGET请求(请使用https协议)https://mp./cgi-bin/showqrcode?ticket=TICKET
将上边返回的ticket
替换TICKET
,直接在浏览器地址访问即可看到二维码信息。