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

測(cè)試頁(yè)面

創(chuàng)建臨時(shí)二維碼

長(zhǎng)鏈接轉(zhuǎn)短鏈接
源碼地址
JFinal Weixin 學(xué)習(xí)筆記(1)-- 目錄