更新時間:2022-07-19 08:09:53 來源:動力節點 瀏覽1457次
微信公眾平臺,即平時發現我們所說的“公眾號”,曾用名“官方平臺”、“媒體平臺”,但被冠以“公眾平臺”。 媒體使用的平臺,是對所有公眾都開放的統一平臺。
微信公眾平臺地址:https://mp.weixin.qq.com/
公眾平臺公分4大規劃:我們的微信訂閱號、服務號、企業號。按照2016年公開微信公開課,企業信號將與企業微信聯合,因此主要針對前三部分開始講解:
簡單對比一下前三者的區別以及本次即課程的講解重點:
(1)訂閱號和服務號傳統消息意義的“公眾號”,具有群發能力,詳細區別在官方平臺查看:http : //kf.qq.com/faq/140806zARbmm140826M36RJF.html我們可以引用能力能力在服務方面,而同時開發模式,同時使用更多的服務號,可以使用更多的接口,而“號”的詞是“割割服務號”的。案例進行操作。
(2)微小程序,原本為“微應用號”,在微生態系統中的應用蘋果和谷歌的限制,“應用號”未上線便便,取而代之即是根信根植信根割的“2”微信小程序其堪比程序的運行體驗,也“微杰瑞小而成為時下火的開發方向。而全新的H5 開發課程,也將參與時下火爆的信小程序開發。
(1)賬號注冊
微公眾平臺“進入微信公眾平臺, 點擊用戶立即訂閱”,點擊“用戶訂閱號”,選擇“服務號”選擇機構注冊,個人訂閱號)
重新注冊時需重新填寫申報信息,根據提示可以,此處不做申報。
(2)測試賬號申請
如果暫時不想注冊賬號無法注冊服務號,官方或者提供的測試記錄。地址: http ://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/ login后掃描二維碼,即可獲得一個測試賬號,擁有全部權限。
外網映射工具
微信公眾平臺在訪問后臺時,必須提供能夠正確訪問的外網地址,微信平臺對后臺URL的要求有兩個點:
1)必須能夠用公網訪問
2)必須使用80端口訪問
要兩點,我們選擇購買外網服務器,比如阿里云、百度實現、騰訊云……都是不錯的選擇。如果沒有服務器選擇使用外網映射工具,將我們的內網鏈接可以映射以上為公網,比較不錯的映射軟件有:花生殼、grok、nat123等……
這幾款軟件都可以百度很容易找到并下載,下面簡單講解一下用法:
進入dos環境,切換到ngrock所在的盤符,輸入ngrock 8080回車:
回車后等待一會,自動得到公用鏈接,下圖顯示負載訪問網直接提供的鏈接,自動本機127.0.0.1:8080下的鏈接內容,分別是http協議和https協議的地址:
下面看看我們公眾平臺的數據微信:
從上圖可以,微信公眾平臺實際處理的只是一個業務連接,或者實際的業務連接,實際提供的服務代碼是看到我們自己的服務器網覆蓋。就可以在我們自己的電腦(服務器)上編寫后臺代碼,并通過授權工具提供到微信訪問的網址,然后可以在我們的網站上綁定網址。
下面將進入實際的開發過程,我們可以參考官方提供的開發文檔: https ://mp.weixin.qq.com/wiki
(1)重新填寫服務器配置
進入微信公眾平臺,點擊左側【開發——基本配置】,選擇【服務器配置】。自動進入配置頁面:
其中:
網址:即我們所說的后臺服務器公網訪問地址
Token:開發者自定的驗證權限
EncodingAESKey:常用字符串,如果消息加解密采用安全模式才需驗證方式
(2)驗證消息是否有效
當點擊提交的時候,微信到服務器發送一個獲取請求,我們上面的地址,同時傳遞四個參數:
我們通過檢驗簽名對請求進行內容開發(下面有類似的方式)。如果確認請求請求來自服務器,請原返回echostr參數,則生效,使者成功訪問失敗。加密/智能流程如下:
下面,我們實現代碼操作。
(1)使用MyEclipse創建Web項目,并新建一個servlet:
(2)在servlet doGet中,獲取上述的正確參數方法:
(3)操作編寫類,進行操作的方法:
五確定步驟,操作上面【2】三個參考步驟流程
使用sha1加密方法
(4)Servlet 中調用微校驗方法,并驗證結果,如果檢驗成功,將返回給你的常用字符串:eahostr原路給信平臺
至此,Servlet及檢查工具類,編寫完成。
(5)啟動Tomcat,將Servlet的本地地址(例如本機為:localhost:8080/WeiXin/servlet/WeiXinServlet 能夠進行公網正確映射,參照上面第三個圖形確定內容,進行公網映射,公網地址訪問。
我將直接將代碼中的杰瑞教育 公網服務器進行訪問。獲得地址:http : //www.jredu100.com/WeiXin/servlet/WeiXinServlet
進入微信后臺配置相關信息:
點擊提交,微信將發送Servlet,調用doGet,并進行我們編寫的驗證操作,如果最后成功的方法字符串,則綁定成功。
(1)Servlet源碼(只保留doGet部分):
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String signature = request.getParameter("signature");
String timestamp = request.getParameter("timestamp");
String nonce = request.getParameter("nonce");
String echostr = request.getParameter("echostr");
PrintWriter out = response.getWriter();
if(CheckUtil.checkSignature(signature, timestamp, nonce)){
//如果校驗成功,將得到的隨機字符串原路返回
out.print(echostr);
}
}
(2)CheckUtil源碼(可直接復制其中的getSha1加密方法):
package com.jredu.util;
import java.security.MessageDigest;
import java.util.Arrays;
public class CheckUtil {
public static final String tooken = "jredu100"; //開發者自行定義Tooken
public static boolean checkSignature(String signature,String timestamp,String nonce){
//1.定義數組存放tooken,timestamp,nonce
String[] arr = {tooken,timestamp,nonce};
//2.對數組進行排序
Arrays.sort(arr);
//3.生成字符串
StringBuffer sb = new StringBuffer();
for(String s : arr){
sb.append(s);
}
//4.sha1加密,網上均有現成代碼
String temp = getSha1(sb.toString());
//5.將加密后的字符串,與微信傳來的加密簽名比較,返回結果
return temp.equals(signature);
}
public static String getSha1(String str){
if(str==null||str.length()==0){
return null;
}
char hexDigits[] = {'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f'};
try {
MessageDigest mdTemp = MessageDigest.getInstance("SHA1");
mdTemp.update(str.getBytes("UTF-8"));
byte[] md = mdTemp.digest();
int j = md.length;
char buf[] = new char[j*2];
int k = 0;
for (int i = 0; i < j; i++) {
byte byte0 = md[i];
buf[k++] = hexDigits[byte0 >>> 4 & 0xf];
buf[k++] = hexDigits[byte0 & 0xf];
}
return new String(buf);
} catch (Exception e) {
// TODO: handle exception
return null;
}
}
}
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習