生成带参数的二维码
为了满足用户渠道推广分析和用户帐号绑定等场景的需要,公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码,用户扫描后,公众号可以接收到事件推送。
目前有2种类型的二维码:
1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期
2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
本次要实现的是第2种 :永久二维码
创建二维码ticket
accessToken:请看之前写的获取微信accessToken文章
openId:请看之前写的java 获取微信用户基本信息文章
String codeUrl =
https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=accessToken
String param = "{\"action_name\": \"QR_LIMIT_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \""+openId+"\"}}}";
JSONObject returnData = HttpClientTools.doPost(codeUrl, param);
logger.error("获取微信生成带参数的二维码ticket参数========================" + returnData + "==========================");
//创建二维码ticket
String ticket = returnData.get("ticket").toString();
把ticket 传到页面
通过ticket换取二维码
获取二维码ticket后,开发者可用ticket换取二维码图片。请注意,本接口无须登录态即可调用。
在jsp里面 调用
window.οnlοad=function show2dBarCode(){
$("#imageId").attr("src","https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket="+document.getElementById("ticket").value);
}
<img src="" id="imageId" height="100%" style="float: right">