国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

微信開發之——JSSDK,通過config接口注入權限驗證配置

2024-04-27 15:05:20
字體:
來源:轉載
供稿:網友

步驟1:綁定域名

先登錄微信公眾平臺進入“公眾號設置”的“功能設置”里填寫“JS接口安全域名”。備注:登錄后可在“開發者中心”查看對應的接口權限。

步驟2:引入js

在需要調用JS接口的頁面引入如下JS文件,(支持https):http://res.wx.QQ.com/open/js/jweixin-1.0.0.js請注意,如果你的頁面啟用了https,務必引入 https://res.wx.qq.com/open/js/jweixin-1.0.0.js ,否則將無法在iOS9.0以上系統中成功使用JSSDK.最好下載JS到本地。

步驟3:通過config接口注入權限驗證配置

先貼前臺web頁(test.jsp)主要代碼如下:
$(function(){	var url = window.location.href;	//Ajax注入權限驗證	$.ajax({		url:"${basePath }JSSDK/ticket.do",		dataType: 'json',		data: {"url" : url},		complete: function(xmlHttPRequest, textStatus){					},		error: function(xmlhttpRequest, textStatus, errorThrown){			alert("發生錯誤:"+errorThrown);		},		success: function(res){			var appId = res.appId;			var noncestr = res.noncestr;			var jsapi_ticket = res.jsapi_ticket;			var timestamp = res.timestamp;			var signature = res.signature;			wx.config({			    debug: true, //開啟調試模式,調用的所有api的返回值會在客戶端alert出來,若要查看傳入的參數,可以在pc端打開,參數信息會通過log打出,僅在pc端時才會打印。			    appId: appId, //必填,公眾號的唯一標識			    timestamp: timestamp, // 必填,生成簽名的時間戳			    nonceStr: noncestr, //必填,生成簽名的隨機串			    signature: signature,// 必填,簽名,見附錄1			    jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ',			                'onMenuShareWeibo','onMenuShareQZone','chooseImage',			                'uploadImage','downloadImage','startRecord','stopRecord',			                'onVoiceRecordEnd','playVoice','pauseVoice','stopVoice'] //必填,需要使用的JS接口列表,所有JS接口列表 見附錄2			});		}	});}); 

${appId} 是公眾號配置里獲得。

${jsapi_ticket}進入后臺頁面訪問接口獲得。

url 當前web頁的地址。

jsApiList 需要使用的JS接口列表。

后臺代碼入下(主要獲取jsapi_ticket以便生成簽名signature,傳遞給前臺):

	@RequestMapping(value = "/ticket.do")	public void getSignature(HttpServletRequest request, HttpServletResponse response, Model model){		String weburl = request.getParameter("url");		Long timestamp = System.currentTimeMillis()/1000;		int noncestr = new Random().nextInt();				accessTokenUtil accessTokenUtil = new AccessTokenUtil();		String accessToken = accessTokenUtil.getAccessToken();		//獲取jsapi_ticket		String jsapi_ticket = null;		try {			String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=" + accessToken + "&type=jsapi";			String responseText = HttpUtil.get(url);			jsapi_ticket = null;			JSONObject object = JSONObject.fromObject(responseText);			if (object.containsKey("ticket")) {				jsapi_ticket = object.getString("ticket");			}		} catch (Exception e) {			// TODO Auto-generated catch block			e.printStackTrace();		}				//生成signature		List<String> nameList = new ArrayList<String>();		nameList.add("noncestr");		nameList.add("timestamp");		nameList.add("url");		nameList.add("jsapi_ticket");		Map<String, Object> valueMap = new HashMap<String, Object>();		valueMap.put("noncestr", noncestr);		valueMap.put("timestamp", timestamp);		valueMap.put("url", weburl);		valueMap.put("jsapi_ticket", jsapi_ticket);		Collections.sort(nameList);		String origin = "";		for (int i = 0; i < nameList.size(); i++) {			origin += nameList.get(i) + "=" + valueMap.get(nameList.get(i)).toString() + "&";		}		origin = origin.substring(0, origin.length() - 1);		String signature = sha1(origin);		Map<String, Object> map = new HashMap<String, Object>();		map.put("jsapi_ticket", jsapi_ticket);		map.put("appId", WXAccount.appid);		map.put("signature", signature.toLowerCase());		map.put("timestamp", timestamp.toString());		map.put("noncestr", String.valueOf(noncestr));		response.setContentType("application/json; charset=utf-8");		PrintWriter writer = null;		try {			writer = response.getWriter();			JSONObject responSEObject = JSONObject.fromObject(map);			writer.print(responseObject);		} catch (IOException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}finally{			writer.flush();			writer.close();		}			}

注意:變量timestamp、noncestr 必須作為String型傳遞給后臺,否則 IOS將一直報錯 config:fail

部分摘自微信開發者文檔......


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 波密县| 武鸣县| 新巴尔虎右旗| 卓资县| 洛宁县| 河池市| 临高县| 富裕县| 高陵县| 安岳县| 黄大仙区| 自贡市| 南涧| 盐池县| 华宁县| 柘荣县| 城步| 小金县| 临泉县| 嘉峪关市| 曲水县| 大兴区| 武隆县| 武城县| 玉屏| 株洲县| 那坡县| 晴隆县| 巴彦淖尔市| 通榆县| 新绛县| 尤溪县| 孟连| 稷山县| 祁门县| 平陆县| 无棣县| 曲沃县| 奎屯市| 鸡西市| 天津市|