微信公眾號模板消息接口開發(fā)Java實(shí)現(xiàn)方法代碼
公眾當(dāng)中的功能 有許許多多,目前主要介紹模板消息接口的功能使用。
目的:
為了給關(guān)注過公眾號的用戶進(jìn)行消息的推送,可以群發(fā)以及給指定的用戶去發(fā)送消息,通常像一些訪客、物業(yè)報(bào)修、以及支付的結(jié)果等等都可能會(huì)運(yùn)用到該接口。
使用:
在微信公眾號的開發(fā)者文檔當(dāng)中 選擇模板消息接口,其中就有接口的講解以及使用。
目前我們主要使用測試號去進(jìn)行講解和使用(個(gè)人注冊訂閱號,企業(yè)主要使用服務(wù)號)。
按照以下步驟獲取公眾號的測試信息:appID、appsecret 唯一等。
獲取以下數(shù)據(jù):
然后就是進(jìn)行接口配置信息,首先我們是測試的公眾號,所以只需要在以上界面當(dāng)中去驗(yàn)證接口,若是正式上線則需要工具開發(fā)文檔的要求去配置服務(wù)器的信息等,規(guī)則都是相似的?。?!
所以我們需要在下面的頁面當(dāng)中配置驗(yàn)證的接口:
@GetMapping("get") @ApiOperation(value = "微信公眾號驗(yàn)證接口") public String init(String signature,String timestamp,String nonce,String echostr) throws NoSuchAlgorithmException { String token = "test"; List<String> stringList = Arrays.asList(token, timestamp, nonce); Collections.sort(stringList); StringBuilder stringBuilder=new StringBuilder(); for (String s : stringList) { stringBuilder.append(s); } MessageDigest sha1 = MessageDigest.getInstance("sha1"); byte[] bytes = sha1.digest(stringBuilder.toString().getBytes()); StringBuilder sum=new StringBuilder(); for (byte aByte : bytes) { sum.append(Integer.toHexString(((aByte>>4)&15))); sum.append(Integer.toHexString(aByte&15)); } if (signature!=null&&signature.equals(sum.toString())){ return echostr; } return echostr; }
首先代碼當(dāng)中的token就是在公眾號當(dāng)中配置的token需要相同,下一步就是按照文檔要求:1、將token、timestamp、nonce三個(gè)參數(shù)進(jìn)行字典序排序;2、將三個(gè)參數(shù)字符串拼接成一個(gè)字符串進(jìn)行sha1加密;3、開發(fā)者獲得加密后的字符串可與signature對比
具體的sha1加密算法可以去網(wǎng)上搜尋以下資料,如果成功了則就會(huì)提示配對成功?。?!
注:在驗(yàn)證時(shí),若該服務(wù)部署在服務(wù)器上,則使用服務(wù)器的地址即可,若沒有服務(wù)器,則可以使用內(nèi)網(wǎng)穿透實(shí)現(xiàn)驗(yàn)證。
獲取access_token:
在調(diào)用接口的時(shí)候大多數(shù)都會(huì)使用到access_token,因此我們需要按文檔要求去獲取到access_token。
以上也都是官方提供的方法以及接口調(diào)用去獲取到 access_token。
private static AccessToken getToken() throws IOException { String url=String. format("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s",appid,secret); String st = HttpRestUtils.get(url, null); JSONObject jsonObject=new JSONObject(st); String access_token = jsonObject.getStr("access_token"); Long expires_in = jsonObject.getLong("expires_in"); accessToken.setToken(access_token); accessToken.setExpiresTime(expires_in); return accessToken; } public static String getAccessToken() throws IOException { if (accessToken!=null || accessToken.isExpires()){ getToken(); } return accessToken.getToken(); }
以上則是獲取到access_token,當(dāng)然access_token存在過期時(shí)間,因此在獲取到的同時(shí)也需要進(jìn)行過期的判斷,如果過期了則重新獲取。
后續(xù)模板消息推送功能的操作將會(huì)發(fā)布,請持續(xù)關(guān)注?。。?/p>
總結(jié)
到此這篇關(guān)于微信公眾號模板消息接口開發(fā)Java實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)微信公眾號模板消息接口開發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中過濾器、監(jiān)聽器和攔截器的區(qū)別詳解
這篇文章主要介紹了Java中過濾器、監(jiān)聽器和攔截器的區(qū)別詳解,有些朋友可能不了解過濾器、監(jiān)聽器和攔截器的區(qū)別,本文就來詳細(xì)講一下,相信看完你會(huì)有所收獲,需要的朋友可以參考下2024-01-01BeanUtils.copyProperties()參數(shù)的賦值順序說明
這篇文章主要介紹了BeanUtils.copyProperties()參數(shù)的賦值順序說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-09-09MyBatis中XML 映射文件中常見的標(biāo)簽說明
這篇文章主要介紹了MyBatis中XML 映射文件中常見的標(biāo)簽說明,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07mybatis plus CU自動(dòng)填充 和 軟刪除自動(dòng)填充的實(shí)現(xiàn)方法
這篇文章主要介紹了mybatis plus CU自動(dòng)填充 和 軟刪除自動(dòng)填充的實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07解決cmd運(yùn)行java程序“找不到文件”提示的方案
在本篇文章里小編給大家分享的是關(guān)于解決cmd運(yùn)行java程序“找不到文件”提示的方案,有需要的朋友們可以參考下。2020-02-02