【诡异】微信开发时调用jssdk,在安卓设备中成功调用;在ios设备中返回错误消息:config fail,无其他具体错误消息,且接口权限显示获取ok,无法调用

她们叫我小猪z 2015-10-29 11:59:40
js代码如下:
var app = {};
app.appId="";
app.jsApiTicket="";
app.sign = "";
app.nonceStr="";
app.timeStamp="";
app.func={};
var logoUrl = "http://ysj.weilaila.com:8080/demo/img/baby_logo.jpg";
//生成随机字符串
app.func.createRandomStr=function(num){
var s = "0123456789qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
var r = [];
var x = s.split("");
for(var i = 0; i<num; i++){
var random = parseInt(Math.random()*62);
r.push(x[random]);
}
return r.join("");
};


app.func.getUrl = function(){
return location.href.split("#")[0];
}

//得到js api 接口凭证
app.func.getConfigInfo=function(){
$.ajax({
type:"POST",
url:"user/getjsapisign.jhtml",
data:{
url:app.func.getUrl(),
nonceStr:app.func.createRandomStr()
},
async:false,
success:function(data){
if(data.status=="ok"){
app.jsApiTicket = data.jsApiTicket;
app.appId=data.appId;
app.sign=data.sign;
app.nonceStr = data.nonceStr;
app.timeStamp = data.timeStamp;
app.func.wxconfig();
}
else
{
window.location.reload();
}
},
error:function(){
alert("网络出错,请检查你的网络");
window.location.reload();
}
});
};
/*//生成时间戳
app.func.createTimeStamp=function(){
return Date.parse(new Date())/1000;
};*/

/*//生成签名
app.func.createSign=function(obj){
var str="";
var param = ['jsapi_ticket','noncestr','timestamp','url'];
param.sort();
for(var i = 0; i<param.length;i++){
str+=param[i]+"="+obj[param[i]];
if(i!=param.length-1){
str+="&"
}
}
console.log(str);
return CryptoJS.SHA1(str).toString();
}*/


app.func.wxconfig = function(){
wx.config({
debug:false,
appId:app.appId,
timestamp:app.timeStamp,
nonceStr:app.nonceStr,
signature:app.sign,
jsApiList:[
'onMenuShareTimeline',
'onMenuShareAppMessage',
'hideOptionMenu',
'showOptionMenu',
'hideMenuItems',
'showMenuItems',
'closeWindow'
]
});

wx.ready(function(){

wx.checkJsApi({
jsApiList:['onMenuShareTimeline','onMenuShareAppMessage'],
success:function(res){
if(!res.checkResult.onMenuShareAppMessage||!res.checkResult.onMenuShareTimeline){
alert('你的微信客户端不支持JSSDK,请升级你的客户端');
}
}
});

//*********这里的这些值,可以写死。******************
wx.onMenuShareTimeline({
title:'长得好看的人都来参加花式裹孩纸大赛了,赢取IPHONE6S,不服来战!',//分享标题
link:'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxec524716a0216797&redirect_uri=http%3a%2f%2fysj.weilaila.com%3a8080%2fdemo%2findex.jhtml&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect',//分享链接
imgUrl:logoUrl,//
type:'link',//type是music或者video,link
success:function(){
//以下是给用户加积分的函数请求
addNum();
}
});

wx.onMenuShareAppMessage({
title:'长得好看的人都来参加花式裹孩纸大赛了,赢取IPHONE6S,不服来战!',
desc:'据说只要眼疾手快,你就可以赢得大奖,走向人生巅峰',//分享描述
link:'https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxec524716a0216797&redirect_uri=http%3a%2f%2fysj.weilaila.com%3a8080%2fdemo%2findex.jhtml&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect',
imgUrl:logoUrl,
success:function(){
addNum();
}
});

function addNum(num){
var addscroe = 5;
$.ajax({
type:"POST",
data:{
score:addscroe,
type:1
},
url:"user/addscore.jhtml",
async:true,
success:function(data){
alert("分享成功!");
if(data.error)
window.location.href = "index/rank.jhtml?score=0";
else
window.location.href = "index/rank.jhtml?score="+addscroe;
},
error:function(){
alert('抱歉,网络出错,请重新分享');
}
});
}

});
}
app.func.getConfigInfo();







...全文
2885 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
火休 2018-01-15
  • 打赏
  • 举报
回复
微信在连接上自动添加参数,ios和Android不一样,导致验证的连接加密结果不同,(android只有一个参数,ios有两个参数)

if(location.search)
  location.href=location.origin+location.pathname;
如果你的连接上有其他的参数,需要对照参数名进行过滤
小宫举 2017-08-11
  • 打赏
  • 举报
回复
啊哈哈,我的可以了,请注意,如果你的页面启用了https,务必引入 https://res.wx.qq.com/open/js/jweixin-1.0.0.js ,否则将无法在iOS9.0以上系统中成功使用JSSDK
lance1019 2016-05-17
  • 打赏
  • 举报
回复
我也遇到同样的问题 求解决方案
  • 打赏
  • 举报
回复
问题已经解决 随机字符串,时间戳,签名等都需要在后台代码生成再传到视图层,不能再视图层用js生成
心系星尘 2015-11-26
  • 打赏
  • 举报
回复
在需要调用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 如需使用摇一摇周边功能,请引入 jweixin-1.1.0.js 备注:支持使用 AMD/CMD 标准模块加载方法加载
qq_32888035 2015-11-17
  • 打赏
  • 举报
回复
我和你一样的问题啊,解决了吗?用微信 JS 接口签名校验工具看签名也正常
  • 打赏
  • 举报
回复
debug:
"errorMsg":"config fail"
"checkResult":"onMenuShareTimeline:true,onMenuShareAppMessage:true,";" errMsg :checkJsApi:ok"

3,143

社区成员

发帖
与我相关
我的任务
社区描述
微信开发即微信公众平台开发,将企业信息、服务、活动等内容通过微信网页的方式进行表现,通过二次开发可以将公众账号由一个媒体型营销工具转化成提供服务的产品。
社区管理员
  • 微信开发
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧