接口介紹
生成帶參數(shù)的二維碼 QrcodeApi
為了滿足用戶渠道推廣分析和用戶帳號綁定等場景的需要,公眾平臺提供了生成帶參數(shù)二維碼的接口。使用該接口可以獲得多個帶不同場景值的二維碼,用戶掃描后,公眾號可以接收到事件推送。
1、臨時二維碼,是有過期時間的,最長可以設(shè)置為在二維碼生成后的30天(即2592000秒)后過期,但能夠生成較多數(shù)量。臨時二維碼主要用于帳號綁定等不要求二維碼永久保存的業(yè)務(wù)場景 。
2、永久二維碼,是無過期時間的,但數(shù)量較少(目前為最多10萬個)。永久二維碼主要用于適用于帳號綁定、用戶來源統(tǒng)計等場景。
/**
* 創(chuàng)建臨時二維碼
* @param expireSeconds 該二維碼有效時間,以秒為單位。 最大不超過604800(即7天)。
* @param sceneId 場景值ID,臨時二維碼時為32位非0整型
* @return ApiResult 二維碼信息
*/
public static ApiResult createTemporary(int expireSeconds, int sceneId);
/**
* 創(chuàng)建永久二維碼
* @param sceneId 場景值ID,永久二維碼時最大值為100000(目前參數(shù)只支持1--100000)
* @return ApiResult 二維碼信息
*/
public static ApiResult createPermanent(int sceneId);
/**
* 創(chuàng)建永久二維碼
* @param sceneStr 場景值ID(字符串形式的ID),字符串類型,長度限制為1到64,僅永久二維碼支持此字段
* @return ApiResult 二維碼信息
*/
public static ApiResult createPermanent(String sceneStr);
/**
* 通過ticket換取二維碼地址,拼接二維碼連接,可直接通過<img>顯示
* @param ticket 換取二維碼參數(shù)
* @return String url
*/
public static String getShowQrcodeUrl(String ticket);
長鏈接轉(zhuǎn)短鏈接接口 ShorturlApi
將一條長鏈接轉(zhuǎn)成短鏈接。
主要使用場景: 開發(fā)者用于生成二維碼的原鏈接(商品、支付二維碼等)太長導(dǎo)致掃碼速度和成功率下降,將原長鏈接通過此接口轉(zhuǎn)成短鏈接再生成二維碼將大大提升掃碼速度和成功率。
/**
* 長鏈接轉(zhuǎn)短鏈接接口
* @param longUrl 需要轉(zhuǎn)換的長鏈接,支持http://、https://、weixin://wxpay 格式的url
* @return ApiResult 短連接信息
*/
public static ApiResult getShortUrl(String longUrl);
代碼
WeixinApiController.java
// 生成帶參數(shù)的二維碼
// 創(chuàng)建臨時二維碼
public void createTemporary(){
ApiResult apiResult = null;
// 過期時間
int expireSeconds = 604800;
// 場景值
int sceneId = 111;
// 生成臨時二維碼
apiResult = QrcodeApi.createTemporary(expireSeconds, sceneId);
// 獲取 ticket,拼接 url
JSONObject jsonObjec = JSONObject.parseObject(apiResult.getJson());
String ticket = jsonObjec.getString("ticket");
String outMessage = "apiResult: " + apiResult.getJson() +"\n"
+ "QrcodeUrl: " + QrcodeApi.getShowQrcodeUrl(ticket);
renderText(outMessage);
}
// 長鏈接轉(zhuǎn)短鏈接接口 ShorturlApi
public void getShortUrl(){
ApiResult apiResult = null;
String longUrl = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQHT7zwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyemlhcVFPa0JmUWoxM01GRk5wMW0AAgRw7x9ZAwSAOgkA";
apiResult = ShorturlApi.getShortUrl(longUrl);
JSONObject jsonObjec = JSONObject.parseObject(apiResult.getJson());
String shorUrl = jsonObjec.getString("short_url");
String outMessage = "apiResult: " + apiResult.getJson() +"\n"
+ "longUrl: " + longUrl + "\n\n"
+ "shorUrl: " + shorUrl;
renderText(outMessage);
}
index.html
<h3>微信賬號二維碼</h3>
點擊<a href='/api/createTemporary'>【創(chuàng)建臨時二維碼】</a><br>
點擊<a href='/api/getShortUrl'>【長鏈接轉(zhuǎn)短鏈接】</a><br>
運行結(jié)果
測試頁面
創(chuàng)建臨時二維碼
長鏈接轉(zhuǎn)短鏈接
源碼地址
JFinal Weixin 學(xué)習(xí)筆記(1)-- 目錄