微信公眾號模板消息接口開發(fā)Java實現(xiàn)方法代碼
公眾當(dāng)中的功能 有許許多多,目前主要介紹模板消息接口的功能使用。
目的:
為了給關(guān)注過公眾號的用戶進行消息的推送,可以群發(fā)以及給指定的用戶去發(fā)送消息,通常像一些訪客、物業(yè)報修、以及支付的結(jié)果等等都可能會運用到該接口。
使用:
在微信公眾號的開發(fā)者文檔當(dāng)中 選擇模板消息接口,其中就有接口的講解以及使用。
目前我們主要使用測試號去進行講解和使用(個人注冊訂閱號,企業(yè)主要使用服務(wù)號)。
按照以下步驟獲取公眾號的測試信息:appID、appsecret 唯一等。

獲取以下數(shù)據(jù):

然后就是進行接口配置信息,首先我們是測試的公眾號,所以只需要在以上界面當(dāng)中去驗證接口,若是正式上線則需要工具開發(fā)文檔的要求去配置服務(wù)器的信息等,規(guī)則都是相似的?。。?/p>

所以我們需要在下面的頁面當(dāng)中配置驗證的接口:

@GetMapping("get")
@ApiOperation(value = "微信公眾號驗證接口")
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三個參數(shù)進行字典序排序;2、將三個參數(shù)字符串拼接成一個字符串進行sha1加密;3、開發(fā)者獲得加密后的字符串可與signature對比
具體的sha1加密算法可以去網(wǎng)上搜尋以下資料,如果成功了則就會提示配對成功?。?!
注:在驗證時,若該服務(wù)部署在服務(wù)器上,則使用服務(wù)器的地址即可,若沒有服務(wù)器,則可以使用內(nèi)網(wǎng)穿透實現(xiàn)驗證。
獲取access_token:
在調(diào)用接口的時候大多數(shù)都會使用到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存在過期時間,因此在獲取到的同時也需要進行過期的判斷,如果過期了則重新獲取。
后續(xù)模板消息推送功能的操作將會發(fā)布,請持續(xù)關(guān)注!??!
總結(jié)
到此這篇關(guān)于微信公眾號模板消息接口開發(fā)Java實現(xiàn)方法的文章就介紹到這了,更多相關(guān)微信公眾號模板消息接口開發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java中過濾器、監(jiān)聽器和攔截器的區(qū)別詳解
這篇文章主要介紹了Java中過濾器、監(jiān)聽器和攔截器的區(qū)別詳解,有些朋友可能不了解過濾器、監(jiān)聽器和攔截器的區(qū)別,本文就來詳細講一下,相信看完你會有所收獲,需要的朋友可以參考下2024-01-01
BeanUtils.copyProperties()參數(shù)的賦值順序說明
這篇文章主要介紹了BeanUtils.copyProperties()參數(shù)的賦值順序說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09
MyBatis中XML 映射文件中常見的標(biāo)簽說明
這篇文章主要介紹了MyBatis中XML 映射文件中常見的標(biāo)簽說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07
mybatis plus CU自動填充 和 軟刪除自動填充的實現(xiàn)方法
這篇文章主要介紹了mybatis plus CU自動填充 和 軟刪除自動填充的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-07-07

