JFinal Weixin 學(xué)習(xí)筆記(9)-- 微信賬號二維碼

接口介紹


生成帶參數(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)-- 目錄

參考文章

微信開發(fā)之推廣支持
jfinal-weixin-wiki 帳號管理

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 點擊訪問原文您還可以加入全棧技術(shù)交流群(QQ群號:254842154) 現(xiàn)在很多網(wǎng)站都已經(jīng)建立了一套完整的用戶賬號...
    hellojammyPlus閱讀 63,144評論 10 127
  • 社交紅利閱讀筆記 書名:社交紅利(修訂升級版) 作者:徐志斌 出版社:中信出版社 正文前筆記: 推薦序1摘要 社交...
    鳧水閱讀 9,042評論 4 26
  • 倏忽之間,這已經(jīng)是加入baby組織的"一起成長"活動的第三周。這一周總體來說,不盡人如意,只能給自己一個差評...
    小_麥閱讀 123評論 0 0
  • 聊聊開會這件事。 1、 昨天下午開了個會,大概兩個多小時,領(lǐng)導(dǎo)聲情并茂的朗讀了幾篇學(xué)習(xí)文件,還洋洋灑灑的做了點評,...
    老胡冷靜閱讀 660評論 1 2