|
java開發(fā)微信公眾號(hào),驗(yàn)證開發(fā)者步驟
關(guān)于微信大眾途徑開發(fā)報(bào)價(jià),不同的公司給出的價(jià)格不同。導(dǎo)致用戶很難做出選擇,這兒提示需求的朋友要了解一下了。如果有這方面的需求也能幫忙到自己。
這幾年微信大眾渠道開發(fā)比較熱門,可是微信大眾渠道的SDK和java的sample比較少,許多都是靠自己探索,首要進(jìn)行微信公眾號(hào)的開發(fā),你有必要得有個(gè)公眾號(hào)或許測(cè)驗(yàn)號(hào),有了這些條件后,你能夠在后臺(tái)里邊進(jìn)行裝備,驗(yàn)證服務(wù)器的操作。如果對(duì)我的文章有愛好,歡迎訂閱我的頭條號(hào),一點(diǎn)熱,yeehot.com1、登陸微信服務(wù)器后臺(tái),輸入你的服務(wù)器地址,還有生成你的token和EncodingAESKey這兒就闡明一下,其中URL是開發(fā)者用來接納微信服務(wù)器數(shù)據(jù)的接口URL。Token我們能夠自己輸入的,這個(gè)和我們的oauth 的token是一樣的。EncodingAESKey由開發(fā)者手動(dòng)填寫或隨機(jī)生成,將用作消息體加解密密鑰。如下圖java運(yùn)用spring mvc開發(fā)微信公眾號(hào)驗(yàn)證開發(fā)者過程2、創(chuàng)立一個(gè)srpingmvc的項(xiàng)目
這兒我就不作具體的介紹了。我之前的文章現(xiàn)已做了一個(gè)圖文的直播了。如果需求看回之前的文章,請(qǐng)自行查找IntelliJ IDEA建立springmvc項(xiàng)目圖文介紹
3、檢查微信開發(fā)者的文檔
依據(jù)微信大眾賬號(hào)的文檔,里邊要驗(yàn)證開發(fā)者這個(gè)過程,首要你需求驗(yàn)證URL有效性,開發(fā)者在微信后臺(tái)提交上面的參數(shù)后,微信會(huì)發(fā)一個(gè)get的懇求到你的服務(wù)器URL,當(dāng)然這個(gè)URL有必要是能夠外網(wǎng)訪問到的,里邊包含了四個(gè)參數(shù)。
signature,用來比對(duì)我們自己本地生成的sign和這個(gè)signature是否持平的。持平就回來參數(shù)echostr。
timestamp:時(shí)刻戳
nonce:隨機(jī)數(shù)
echostr:一個(gè)隨機(jī)字符串
開發(fā)者經(jīng)過查驗(yàn)signature對(duì)懇求進(jìn)行校驗(yàn),若承認(rèn)此次GET懇求來自微信服務(wù)器,原樣回來echostr參數(shù)內(nèi)容,則接入收效,成為開發(fā)者成功,不然接入失利。
詳情能夠閱覽
https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318183&token=&lang=zh_CN4、創(chuàng)立一個(gè)controller
了解上面的規(guī)矩后,我們能夠開發(fā)這個(gè)微信驗(yàn)證的controller,我們會(huì)收到四個(gè)參數(shù),我們需求timestamp參數(shù)和nonce參數(shù)和從服務(wù)器后臺(tái)裝備的token 依照字母的升序進(jìn)行拼接,然后運(yùn)用SHA-1對(duì)字符散列,然后判別取得加密后的字符串可與signature比照,如果成功回來nonce@ResponseBody
@RequestMapping(value = "/wx/developer", method = RequestMethod.GET)public String index(HttpServletRequest request) {Map params = new HashMap();
Map requestParams = request.getParameterMap();for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {String name = (String) iter.next();
String[] values = (String[]) requestParams.get(name);String valueStr = "";
for (int i = 0; i < values.length; i++) {
valueStr = (i == values.length - 1) ? valueStr + values[i]
: valueStr + values[i] + ",";
}
params.put(name, valueStr);
}
String signature = request.getParameter("signature");String timestamp = request.getParameter("timestamp");String nonce = request.getParameter("nonce");String echostr = request.getParameter("echostr");String token="后臺(tái)的token,自行設(shè)置";
String sign=digest(params,token);
if (sign.equals(signature))
{return echostr;
}
else {
return "";
}
}
5、將參數(shù)進(jìn)行排序,
我們這兒只需求對(duì)token,timestamp,nonce進(jìn)行排序,所以直接取出取得的參數(shù)和服務(wù)器的token進(jìn)行排序就能夠了。
public static String digest(Map params,String token) {StringBuilder result = new StringBuilder();
Listkeys = new ArrayList();
keys.add(token);
keys.add(params.get("timestamp"));
keys.add(params.get("nonce"));
Collections.sort(keys);
for (Iteratoriterator = keys.iterator(); iterator.hasNext(); ) {String key = iterator.next();
result.append(key);
}
System.out.println("sign="+result.toString());String reuslt="";
try
{MessageDigest crypt = MessageDigest.getInstance("SHA-1");crypt.reset();
crypt.update(result.toString().getBytes("UTF-8"));reuslt = byteToHex(crypt.digest());
}
catch (NoSuchAlgorithmException e)
{e.printStackTrace();
}
catch (UnsupportedEncodingException e)
{e.printStackTrace();
}
System.out.println("result="+reuslt);
return reuslt;
}
5、運(yùn)用SHA-1需求變換層十六進(jìn)制的字符輸出
private static String byteToHex(final byte[] hash) {Formatter formatter = new Formatter();
for (byte b : hash)
{formatter.format("%02x", b);
}
String result = formatter.toString();
formatter.close();
return result;
}
6、打包程序發(fā)布到服務(wù)器,然后在后臺(tái)驗(yàn)證一下
java運(yùn)用spring mvc開發(fā)微信公眾號(hào)驗(yàn)證開發(fā)者過程當(dāng)驗(yàn)證成功后能夠看到我們的裝備信息
java運(yùn)用spring mvc開發(fā)微信公眾號(hào)驗(yàn)證開發(fā)者過程當(dāng)然我們也能夠本地模仿一下數(shù)據(jù)來測(cè)驗(yàn)一下
http://localhost:8080/wx/developer?signature=d3c933fd3ba7b7c8b3e0b2fd906b00001fbc25de×tamp=1469529446&nonce=494132107&echostr=7427120323186098047java運(yùn)用spring mvc開發(fā)微信公眾號(hào)驗(yàn)證開發(fā)者過程今日就講到這兒
更多內(nèi)容請(qǐng)聯(lián)系新網(wǎng)塔專業(yè)開發(fā)人士:
新網(wǎng)塔致力于打造全球微信公眾號(hào)開發(fā)服務(wù)產(chǎn)業(yè)生態(tài)圈。提供:微信公眾號(hào)開發(fā)方案策劃、微信公眾號(hào)開發(fā)制度設(shè)計(jì)、微信公眾號(hào)開發(fā)開發(fā)、官網(wǎng)設(shè)計(jì)、視頻制作、ppt定制等一條龍無憂服務(wù)。
新網(wǎng)塔高端軟件定制,把您的想法放心的交給我們:
1.功能完善 :
以客戶的品牌架構(gòu)為基準(zhǔn),開發(fā)高效的網(wǎng)站后臺(tái)管理平臺(tái),為不同需求設(shè)置有效、清晰的功能結(jié)構(gòu)。
2.操作方便:
簡約式操作,網(wǎng)站整體架構(gòu)以用戶的良好體驗(yàn)進(jìn)行易用性布局和交互流程設(shè)計(jì)。
3.極速運(yùn)算:
運(yùn)算時(shí)間以協(xié)調(diào)世界時(shí)(UTC)秒速計(jì)算,計(jì)算準(zhǔn)確率恪守國際W3C標(biāo)準(zhǔn)和Unicode聯(lián)盟標(biāo)準(zhǔn)。
4.開發(fā)時(shí)限 :
以企業(yè)整體品牌形象建設(shè)需求為基礎(chǔ),集合數(shù)位行業(yè)-開發(fā)工程師,時(shí)限在5-10個(gè)工作日之間。
5.開發(fā)團(tuán)隊(duì) :
吸引數(shù)十位高級(jí)軟件工程師,并給予每位客戶最大的技術(shù)支持,保障解決客戶的后顧之憂。
新網(wǎng)塔微信公眾號(hào)開發(fā)開發(fā)優(yōu)勢(shì):
功能強(qiáng)大靈活、模塊擴(kuò)展容易
流程步驟一目了然,可控性強(qiáng)
貼近用戶需求,服務(wù)周詳
軟件開發(fā)周期短,費(fèi)用合理
開發(fā)公司:廣西新網(wǎng)塔科技有限公司
新網(wǎng)塔科技,新網(wǎng)塔微信公眾號(hào)開發(fā)開發(fā)
企業(yè)郵箱:239756421@qq.com
手機(jī):13307715169或13878807158
聯(lián)系人:黃經(jīng)理
聯(lián)系電話:0771-6758061
聯(lián)系傳真:0771-6758061
騰訊Q Q:239756421
微信:mmm36099或 13307715169
聯(lián)系地址:廣西南寧市廣西大學(xué)商業(yè)區(qū)明秀路百匯華庭B座5樓
企業(yè)級(jí)別:未認(rèn)證 我要認(rèn)證
聯(lián) 系 人:黃經(jīng)理(先生)
公司電話:0771-6758061
在線狀態(tài): [當(dāng)前離線]
所在地區(qū):廣西-南寧市
按字母索引  : a b c d e f g h i j k l m n o p q r s t u v w x y z
網(wǎng)站首頁 | 付款方式 | 關(guān)于我們 | 聯(lián)系方式 | 服務(wù)條款 | 版權(quán)隱私 | 網(wǎng)站地圖 | 排名推廣 | 廣告服務(wù) | 積分換禮 | 網(wǎng)站留言 | RSS訂閱 | TOP365 | 鄂ICP備14015623號(hào)-23
?2007-2023 鴻通網(wǎng)(www.qulun.com.cn)是專業(yè)的B2B綜合門戶站,提供生產(chǎn)廠家的電子商務(wù)供求服務(wù),是企業(yè)尋求b2b電子商務(wù)網(wǎng)絡(luò)貿(mào)易信息的首選平臺(tái)!鄂公網(wǎng)安備42018502006975