js代码如下:

JavaScript code

 

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
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();
 
在需要调用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 标准模块加载方法加载

 
微信在连接上自动添加参数,ios和Android不一样,导致验证的连接加密结果不同,(android只有一个参数,ios有两个参数)

JavaScript code

 

?

1
2
if(location.search)
  location.href=location.origin+location.pathname;

如果你的连接上有其他的参数,需要对照参数名进行过滤

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

  1. 夺命雷公狗---微信开发55----微信js-sdk接口开发(2)接口功能介绍之签名算法

    我们JS-SDK里面其实有不少的接口 startRecord---录音 stopRecord---停止录音 playVoice---播放 pauseVoice---暂停播放 uploadImage-- ...

  2. 微信开发-PC调试-JS-SDK功能之分享功能调试

    一般涉及和第三方的开发调试,都会比较麻烦些.不过,像微信这样的大公司呢,产品技术是过硬的,所以,基本上只要自己把文档看仔细了,弄好了,基本就没有问题了. 对于后端接口一类的调试,主要就是通过打印访问日 ...

  3. c#微信开发,使用JS-SDK自定义分享功能,分享朋友圈,分享给朋友等

    如果一个后端开发掌握了微信开发,甚至有微信开发上线项目,这在换工作的时候 还是有竞争力的. 微信开发的资料很多,但是用asp.net c#进行微信开发好像比较少,或者资料不够完整. 使用JS-SDK自 ...

  4. 夺命雷公狗---微信开发54----微信js-sdk接口开发(1)之快速入门

    js-sdk基本介绍 除去服务号的九大接口外,微信提供了JS-SDK接口,所谓JS-SDK接口也就是在网页中使用javascript来更改网页设置, (比如隐藏右上角的菜单)获取用户状态(比如地理位置 ...

  5. 夺命雷公狗---微信开发56----微信js-sdk接口开发(3)所有接口功能

    按照上节课程里面的介绍,我们可以先将刚才在signatrue.php里获取到的信息填写进jssdk.htm模版文件里填写各个权限的参数 jssdk.htm代码如下: <!DOCTYPE html ...

  6. 微信开发时遇到的UrlConnection乱码的问题

    昨天做一个微信的模板消息推送的功能,功能倒是很快写完了,我本地测试微信收到的推送消息是正常的,但是一部署到服务器后微信收到的推送消息就变成乱码了. 为了找到原因,做了很多测试,查了一下午百度,最后得出 ...

  7. 微信公众号使用vue,安卓端点击按钮404,ios访问正常问题

    情景:微信公众号使用vue开发的单页面,在安卓端点击按钮访问显示404,ios访问正常问题,能正常显示. 解决:将微信公众号菜单按钮设置的路径中把WWW去掉后,安卓.ios都能正常访问. 问题路径ww ...

  8. iOS中UIKit——UIFont得到iOS设备上的系统字体

    for (NSString *fontFamily  in [UIFont familyNames]) { NSLog(@"字体家族是:%@",fontFamily); for(N ...

  9. (转)platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备

     platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备 2011-10-24 19:47:07 分类: LINUX   kernel_init中d ...

随机推荐

  1. 2019-1-9 c#时间格式

    DateTime now=DateTime.Now; //获取拼接形式的,精确到毫秒 now.ToString("yyyyMMddHHmmssfff"); //获取时间戳 自公元0 ...

  2. BZOJ.3227.[SDOI2008]红黑树tree(树形DP 思路)

    BZOJ orz MilkyWay天天做sxt! 首先可以树形DP:\(f[i][j][0/1]\)表示\(i\)个点的子树中,黑高度为\(j\),根节点为红/黑节点的最小红节点数(最大同理). 转移 ...

  3. BZOJ.2655.calc(DP/容斥 拉格朗日插值)

    BZOJ 洛谷 待补.刚刚政治会考完来把它补上了2333.考数学去了. DP: 首先把无序化成有序,选严格递增的数,最后乘个\(n!\). 然后容易想到令\(f_{i,j}\)表示到第\(i\)个数, ...

  4. Java并发编程(一)-- 多线程的基本概念

    多线程发展进程 在过去单CPU时代,单任务在一个时间点只能执行单一程序:发展到多任务阶段,计算机能在同一时间点并行执行多任务或多进程--虽然并不是真正意义上的“同一时间点”,而是多个任务或进程共享一个 ...

  5. 2186 ACM 水题 int 向下取整

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2186 扩展: #include <cstdio> 使用floor函数.floor(x)返回的是 ...

  6. 2111 ACM 贪心 水题

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=2111 题意:知道背包容量和物品单价.体积.问能买到的最大价值? 注意:单价指的是单位体积的价格 思路:先把 ...

  7. python3 词法拆分

    1.可以利用translate+string模块 2.可以利用jieba进行分词(结巴分词会分成词,但是我需要断句,所以这里不用) 3.利用python内置函数解决 仅仅只列出第3种方法,其他两种方法 ...

  8. 九大常用排序算法 python

    1.冒泡排序 import random from timewrap import * @cal_time def bubble_sort(li): for i in range(len(li)-1) ...

  9. BZOJ2616 : SPOJ PERIODNI

    长为$A$,宽为$B$的矩阵放$K$个车的方案数$=C(A,K)\times C(B,K)\times K!$. 建立笛卡尔树,那么左右儿子独立,设$f[i][j]$表示$i$子树内放$j$个车的方案 ...

  10. .net异常机制

    异常机制简介 当CPU运行到一些非法的指令,例如除零错误,访问内存页失败等指令,CPU会生成一个硬件异常,不同的异常有固定的异常代码作为标识符,异常产生以后CPU暂时不能继续执行后续的指令—因为后续的 ...