请问wx.config配置到哪里?还有就是timestamp,nonceStr,signature这三个参数如何获取的呢?有没有代码接口呢?目前在做微信语音播放这块,好多都是自学,有没有相同经验可以借鉴下,谢谢!!!
2条回答 默认 最新
- 张懿勉 2015-10-17 01:36关注
token = CommonUtil.getToken(appid, appsecret); // jsapi ticket jsapi_ticket = SignUtil.getJsapi_ticket(token.getAccessToken()); // JSSDK - for user center upload signature = SignUtil.getJsSDKSignature(jsapi_ticket, nonceStr, timestamp, url_1);
nonceStr你写一个字符串,我在项目中写的和微信中配置的token是一致的。
timestamp=1417504553(我的timestamp赋值内容)getJsapi_ticket的实现方法:
public static String getJsapi_ticket(String access_token){ String ticket = ""; String requestUrl = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+access_token+"&type=jsapi"; String requestMethod = "GET"; String outputStr = null;// JSONObject.fromObject(new TokenJson(access_token)).toString(); // 先从线程中取值,如果取不到,说明没有使用线程,再利用这个方法获取 // 因为发送信息等操作,都是调用的这个方法,所以在这里进行处理一下吧 JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, requestMethod, outputStr); if (null != jsonObject) { ticket = jsonObject.getString("ticket"); } return ticket; }
附上getJsSDKSignature的实现方法:
public static String getJsSDKSignature( String jsapi_ticket,String noncestr, String timestamp, String url) { String string1 = "jsapi_ticket="+jsapi_ticket; string1 += "&noncestr=" + noncestr; string1 += "×tamp=" + timestamp; string1 += "&url=" + url; String ciphertext = null; try { MessageDigest md = MessageDigest.getInstance("SHA-1"); // 对接后的字符串进行sha1加密 byte[] digest = md.digest(string1.toString().getBytes()); ciphertext = byteToStr(digest); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ciphertext; }
你获得各个数据值之后,可以用微信提供的网上验证工具验证是否正确
http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=jsapisign本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报