Java實現(xiàn)微信公眾號獲取臨時二維碼功能示例
本文實例講述了Java實現(xiàn)微信公眾號獲取臨時二維碼功能。分享給大家供大家參考,具體如下:
我們做微信公眾號開發(fā)時為了推廣,可能需要服務(wù)端去生成公眾號的臨時二維碼,然后再進(jìn)行一定的圖片合成操作,制作一張漂亮的推廣海報。別人掃一下二維碼進(jìn)入關(guān)注公眾號界面,點擊關(guān)注我們可以拿到二維碼里面的信息官網(wǎng)地址
記錄一下獲取臨時二維碼操作過程。
1.獲取access_token 上一篇文章寫了 就不贅述了;
2.根據(jù)access_token獲取二維碼ticket,獲取到了二維碼ticket就基本山是成功了;
3.通過ticket換取二維碼,其實就是拼接url和ticket。
public class WeChatQRCodeTest {
public static void main(String[] args) {
String qrcodeUrl = "";
try {
String accessToken = "15_Yws71Wr-Fk9DW5acDWvyn3YWTfp_jkuBxCl8Hue5hRrB064FVrYSPZgNqdxpw1WKVbp0c7DIerwzGa2iuJDI2er3q7ntf" +
"WNteHZbpSXwCLnUh0p16UQvUhisKKqTrPAMQQdHXklTywmQ6L8MVKNiAJAAPS";
JSONObject jsonObject = new JSONObject();
jsonObject.put("expire_seconds", 2592000);
jsonObject.put("action_name", "QR_STR_SCENE");
JSONObject actionInfo = new JSONObject();
JSONObject scene = new JSONObject();
scene.put("scene_str", "二維碼中攜帶的信息");
actionInfo.put("scene", scene);
jsonObject.put("action_info", actionInfo);
String url = "https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + accessToken;
String result = HttpClientUtil.doPostJson(url, jsonObject.toJSONString());
JSONObject resultJson = JSONObject.parseObject(result);
String ticket = resultJson.getString("ticket");
/**
* 實際應(yīng)用中可以根據(jù)過期時間服務(wù)器存儲ticket
*/
Integer expire_seconds = resultJson.getInteger("expire_seconds");
qrcodeUrl = "https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=" + URLEncoder.encode(ticket, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println(qrcodeUrl);
}
}
代碼如上,這里HttpClientUtil即上篇博客的HttpClientUtil,access_token是獲取到寫死的,單接口測試 可以使用微信提供的網(wǎng)頁測試工具獲取。
scene_str里面對應(yīng)的值即我們需要攜帶在二維碼中的信息。
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java字符與字符串操作技巧總結(jié)》、《Java數(shù)組操作技巧總結(jié)》、《Java數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Java編碼操作技巧總結(jié)》和《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
Spring Boot中配置定時任務(wù)、線程池與多線程池執(zhí)行的方法
這篇文章主要給大家介紹了關(guān)于Spring Boot中配置定時任務(wù)、線程池與多線程池執(zhí)行的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
SpringCloud基于RestTemplate微服務(wù)項目案例解析
這篇文章主要介紹了SpringCloud基于RestTemplate微服務(wù)項目案例,在寫SpringCloud搭建微服務(wù)之前,先搭建一個不通過springcloud只通過SpringBoot和Mybatis進(jìn)行模塊之間通訊,通過一個案例給大家詳細(xì)說明,需要的朋友可以參考下2022-05-05
Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值
這篇文章主要介紹了Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08
springboot使用EMQX(MQTT協(xié)議)的實現(xiàn)
最近由于iot越來越火, 物聯(lián)網(wǎng)的需求越來越多, 那么理所當(dāng)然的使用mqtt的場景也就越來越多,本文主要介紹了springboot使用EMQX(MQTT協(xié)議)的實現(xiàn),感興趣的可以了解一下2023-10-10
SpringBoot配置多個數(shù)據(jù)源超簡單步驟(連接多個數(shù)據(jù)庫)
公司項目有連接多個不同數(shù)據(jù)庫的需求,特研究了一下,根據(jù)網(wǎng)上的資料,這篇文章主要給大家介紹了關(guān)于SpringBoot配置多個數(shù)據(jù)源(連接多個數(shù)據(jù)庫)的相關(guān)資料,需要的朋友可以參考下2024-05-05

