Java實(shí)現(xiàn)微信公眾號(hào)獲取臨時(shí)二維碼功能示例
本文實(shí)例講述了Java實(shí)現(xiàn)微信公眾號(hào)獲取臨時(shí)二維碼功能。分享給大家供大家參考,具體如下:
我們做微信公眾號(hào)開發(fā)時(shí)為了推廣,可能需要服務(wù)端去生成公眾號(hào)的臨時(shí)二維碼,然后再進(jìn)行一定的圖片合成操作,制作一張漂亮的推廣海報(bào)。別人掃一下二維碼進(jìn)入關(guān)注公眾號(hào)界面,點(diǎn)擊關(guān)注我們可以拿到二維碼里面的信息官網(wǎng)地址
記錄一下獲取臨時(shí)二維碼操作過(guò)程。
1.獲取access_token 上一篇文章寫了 就不贅述了;
2.根據(jù)access_token獲取二維碼ticket,獲取到了二維碼ticket就基本山是成功了;
3.通過(guò)ticket換取二維碼,其實(shí)就是拼接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"); /** * 實(shí)際應(yīng)用中可以根據(jù)過(guò)期時(shí)間服務(wù)器存儲(chǔ)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是獲取到寫死的,單接口測(cè)試 可以使用微信提供的網(wǎng)頁(yè)測(cè)試工具獲取。
scene_str里面對(duì)應(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)與算法教程》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
Spring Boot中配置定時(shí)任務(wù)、線程池與多線程池執(zhí)行的方法
這篇文章主要給大家介紹了關(guān)于Spring Boot中配置定時(shí)任務(wù)、線程池與多線程池執(zhí)行的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Spring Boot具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09SpringCloud基于RestTemplate微服務(wù)項(xiàng)目案例解析
這篇文章主要介紹了SpringCloud基于RestTemplate微服務(wù)項(xiàng)目案例,在寫SpringCloud搭建微服務(wù)之前,先搭建一個(gè)不通過(guò)springcloud只通過(guò)SpringBoot和Mybatis進(jìn)行模塊之間通訊,通過(guò)一個(gè)案例給大家詳細(xì)說(shuō)明,需要的朋友可以參考下2022-05-05Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值
這篇文章主要介紹了Spring Boot如何配置內(nèi)置Tomcat的maxPostSize值方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08Springboot中動(dòng)態(tài)語(yǔ)言groovy介紹
Apache的Groovy是Java平臺(tái)上設(shè)計(jì)的面向?qū)ο缶幊陶Z(yǔ)言,這門動(dòng)態(tài)語(yǔ)言擁有類似Python、Ruby和Smalltalk中的一些特性,可以作為Java平臺(tái)的腳本語(yǔ)言使用,這篇文章主要介紹了springboot中如何使用groovy,需要的朋友可以參考下2022-09-09springboot使用EMQX(MQTT協(xié)議)的實(shí)現(xiàn)
最近由于iot越來(lái)越火, 物聯(lián)網(wǎng)的需求越來(lái)越多, 那么理所當(dāng)然的使用mqtt的場(chǎng)景也就越來(lái)越多,本文主要介紹了springboot使用EMQX(MQTT協(xié)議)的實(shí)現(xiàn),感興趣的可以了解一下2023-10-10SpringBoot配置多個(gè)數(shù)據(jù)源超簡(jiǎn)單步驟(連接多個(gè)數(shù)據(jù)庫(kù))
公司項(xiàng)目有連接多個(gè)不同數(shù)據(jù)庫(kù)的需求,特研究了一下,根據(jù)網(wǎng)上的資料,這篇文章主要給大家介紹了關(guān)于SpringBoot配置多個(gè)數(shù)據(jù)源(連接多個(gè)數(shù)據(jù)庫(kù))的相關(guān)資料,需要的朋友可以參考下2024-05-05