问题描述
- 微信JSSDK,wx.config配置在哪里?三个参数如何获取?
-
请问wx.config配置到哪里?还有就是timestamp,nonceStr,signature这三个参数如何获取的呢?有没有代码接口呢?目前在做微信语音播放这块,好多都是自学,有没有相同经验可以借鉴下,谢谢!!!
解决方案
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
解决方案二:
timestamp, nonceStr这2个随机生成,说是timestamp,随机个字符串就行了,不一定是时间戳,随机字符串长度随便
时间: 2024-08-18 06:41:37