第一步:填寫服務器配置
兵車未動,糧草先行,首先你得有臺服務器,80端口未被占用~
想必這里的api大家都看過的
說明:URL填寫你服務器80端口的URL,比如樓主的是(http://******/weixinTest.jspx),這里還需要與微信握手,以確保次連接有效;
Token數(shù)字和英文組成的字符串,最大長度為32字符,比如樓主的是xb12369;
EncodingAESKey直接用后面的隨機生成,到目前為止還沒用用到這個;
第二步:驗證服務器地址的有效性
剛才也說過,微信會校驗你的URL是否有效,那么接下來開始正式握手!?。?/p>
說明:1,字典排序
- ArrayList list = new ArrayList();
- list.add(token);
- list.add(timestamp);
- list.add(nonce);
-
- Collections.sort(list, new SpellComparator());
-
-
- /**
- * 漢字拼音排序比較器
- */
- static class SpellComparator implements Comparator{
- public int compare(Object o1, Object o2) {
- try {
- // 取得比較對象的漢字編碼,并將其轉(zhuǎn)換成字符串
- String s1 = new String(o1.toString().getBytes("GB2312"), "ISO-8859-1");
- String s2 = new String(o2.toString().getBytes("GB2312"), "ISO-8859-1");
- // 運用String類的 compareTo()方法對兩對象進行比較
- return s1.compareTo(s2);
- } catch (Exception e) {
- e.printStackTrace();
- }
- return 0;
- }
- }
2,sha1加密,關(guān)于這種加密,百度一下到處都是
- //將三個參數(shù)字符串拼接成一個字符串進行sha1加密
- String digest = new SHA1Utils().getDigestOfString(temp.getBytes());
3,請原樣返回echostr參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。
之前就一直卡在這里,沒有搞清楚啥叫原樣返回,后面終于弄明白了,然來是要printwriter到微信
- if(digest.equalsIgnoreCase(signature)){
- try{
- System.out.println("我成功了~~~~");
- //開發(fā)者通過檢驗signature對請求進行校驗(下面有校驗方式)。
- //若確認此次GET請求來自微信服務器,請原樣返回echostr參數(shù)內(nèi)容,則接入生效,成為開發(fā)者成功,否則接入失敗。
-
- PrintWriter out = response.getWriter();
- out.print(echostr);
- out.flush();
- out.close();
-
- System.out.println("這次你再改成功改了吧~~~");
- }catch (Exception e) {
- e.printStackTrace();
- }
- }else{
- System.out.println("sha1加密后:" +digest+ "微信返回的是:"+signature);
- }
部分代碼如下,僅供參考:
認證通過后,微信公共平臺將會得到一個AppID,AppSecret,有了這兩個你就可以往下高更深入的東西了!??!
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。