(function(){
var origin_url = location.href;
var oauth_url = 'https://vx.mcilife.com/weixin/api/oauth/?callback='; var $_GET = (function(){
var url = window.document.location.href.toString();
var u = url.split("?");
if(typeof(u[1]) == "string"){
u = u[1].split("&");
var get = {};
for(var i in u){
var j = u[i].split("=");
get[j[0]] = j[1];
}
return get;
} else {
return {};
}
})();
//localStroage
var storage = {
read:function(name){
return localStorage.getItem(name);
},
write:function(name,value){
localStorage.setItem(name, String(value));
},
rm:function(name){
localStorage.removeItem(name);
},
clear:function(){
localStorage.clear();
}
}
//鐢ㄦ埛
var user = {
login:function(){ if(storage.read('token') === null && !$_GET['token']){
//token鍙傛暟銆佸瓨鍌ㄩ兘涓嶅瓨鍦� 鎺堟潈
user.oauth();
}else if($_GET['token'] && storage.read('token') === null){
//token瀛樺湪銆佸瓨鍌ㄤ笉瀛樺湪 鍐欏叆瀛樺偍 璺宠浆
storage.write('token',$_GET['token']);
user.setInfo();//鑾峰彇鍒皌oken涔嬪悗鏇存柊鐢ㄦ埛淇℃伅
location.href = origin_url;
}else if(storage.read('token') !== null){ }
},
oauth:function(){
var url = encodeURIComponent(origin_url);
location.href= oauth_url + url;
},
setInfo:function(){
if(storage.read('openid')
&& storage.read('unionid')
&& storage.read('nickname')
&& storage.read('headimgurl')
&& storage.read('isSubscribe')) return false; var isApp = getQueryString("isApp");
if(isApp=="10000"||isApp=="10001"){ }else if(isApp=="20000"){ $.ajax({
url:'https://vx.mcilife.com/weixin/api/getinfo/?token='+storage.read('token'),
type:'get',
async:false,
dataType:'json',
success:function(data){
if(data.code == 0){ if('openid' in data.data) storage.write('openid',data.data.openid);
if('unionid' in data.data) storage.write('unionid',data.data.unionid);
if('nickname' in data.data) storage.write('nickname',data.data.nickname);
if('headimgurl' in data.data) storage.write('headimgurl',data.data.headimgurl);
if('isSubscribe' in data.data) storage.write('isSubscribe',data.data.isSubscribe); }else{
user.oauth();//鑾峰彇淇℃伅澶辫触锛岄噸鏂版巿鏉�
}
}
})
}
}
}; if(isApp=="20000"){
user.login();
} //授权成功
var shareimg = 'http://gcw.mcilife.com/Square/image/mc.jpg';//分享的图片
$.ajax({
url : "http://vx.mcilife.com/weixin/jssdk/share/",//分享接口地址
type : 'post',
data:{url:location.href},
cache: false,
dataType : 'json',
success : function(data) {
console.log(data);
wx.config( {
appId : data.data.appId,// 必填,公众号的唯一标识
timestamp : data.data.timestamp,// 必填,生成签名的时间戳
nonceStr : data.data.nonceStr,// 必填,生成签名的随机串
signature : data.data.signature,// 必填,签名,见附录1
jsApiList : [ 'onMenuShareTimeline', 'onMenuShareAppMessage', 'showOptionMenu' ,'onMenuShareQQ' ,'onMenuShareWeibo' ]
// 必填,需要使用的JS接口列表,所有JS接口列表见附录2
}); wx.ready(function() {
wx.showOptionMenu();//打开分享按钮 //分享到朋友圈
wx.onMenuShareTimeline( {
title : "微信朋友圈:山屿海广场舞活动",// 分享标题
desc: '活动快乐,广场舞......快来参加!!', //描述
link : window.location.href,// 分享链接
imgUrl : shareimg,// 分享图标
success : function(data) { $.ajax({
url: 'http://'+setIp+':8080/mcilife-inter/gcw/insertUserVoteNum',
type:'post',
dataType:'json',
cache: false,
data:{
userId:userId,
num:2,
isTime:0
},
success: function(data) {
},
error: function () { }
}) },
cancel : function() { }
}); //分享到朋友
wx.onMenuShareAppMessage( {
title : '微信好友:山屿海广场舞活动',
desc : '活动快乐,广场舞......快来参加!!',
link : window.location.href,
imgUrl : shareimg,
success : function(data) {// 用户确认分享后执行的回调函数
$.ajax({
url: 'http://'+setIp+':8080/mcilife-inter/gcw/insertUserVoteNum',
type:'post',
dataType:'json',
cache: false,
data:{
userId:userId,
num:2,
isTime:0
},
success: function(data) {
},
error: function () { }
})
},cancel : function() {}
}); wx.onMenuShareQQ({
title: 'QQ:山屿海广场舞活动',
desc: '活动快乐,广场舞......快来参加!!',
link:window.location.href,
imgUrl: shareimg,
success: function () {
$.ajax({
url: 'http://'+setIp+':8080/mcilife-inter/gcw/insertUserVoteNum',
type:'post',
dataType:'json',
cache: false,
data:{
userId:userId,
num:2,
isTime:0
},
success: function(data) {
},
error: function () { }
})
},
cancel: function () { }
}); wx.onMenuShareWeibo({
title: '微博:山屿海广场舞活动',
desc: '活动快乐,广场舞......快来参加!!',
link: window.location.href,
imgUrl: shareimg,
success: function () {
$.ajax({
url: 'http://'+setIp+':8080/mcilife-inter/gcw/insertUserVoteNum',
type:'post',
dataType:'json',
cache: false,
data:{
userId:userId,
num:2,
isTime:0
},
success: function(data) {
},
error: function () { }
})
},
cancel: function () { }
});
})
}
}) })()

JS授权的更多相关文章

  1. 浏览器通知js授权

    // 获得权限 Notification.requestPermission(); // 点击按钮 document.querySelector('#button').addEventListener ...

  2. [转]passport.js学习笔记

    概述 passport.js是Nodejs中的一个做登录验证的中间件,极其灵活和模块化,并且可与Express.Sails等Web框架无缝集成.Passport功能单一,即只能做登录验证,但非常强大, ...

  3. 如何系统地学习Node.js?

    转载自知乎:http://www.zhihu.com/question/21567720 ------------------------------------------------------- ...

  4. 微信小程序button授权页面,用户拒绝后仍可再次授权

    微信小程序授权页面,进入小程序如果没授权跳转到授权页面,授权后跳转到首页,如果用户点拒绝下次进入小程序还是能跳转到授权页面,授权页面如下 app.js  中的 onLaunch或onShow中加如下代 ...

  5. 【分享】2017 开源中国新增开源项目排行榜 TOP 100

    2017 年开源中国社区新增开源项目排行榜 TOP 100 新鲜出炉! 这份榜单根据 2017 年开源中国社区新收录的开源项目的关注度和活跃度整理而来,这份最受关注的 100 款开源项目榜单在一定程度 ...

  6. 升讯威微信营销系统开发实践:(4)源代码结构说明 与 安装部署说明( 完整开源于 Github)

    GitHub:https://github.com/iccb1013/Sheng.WeixinConstruction因为个人精力时间有限,不会再对现有代码进行更新维护,不过微信接口比较稳定,经测试至 ...

  7. AngularJS官网seed目录结构

    1.AngularJS官网seed目录结构 css/ img/ js/ app.js controllers.js directives.js filters.js services.js lib/ ...

  8. 2016 年度开源中国新增开源软件排行榜 TOP 100

    2016 年度开源中国新增开源软件排行榜 TOP 100 2016 年度开源中国新增开源软件排行榜 TOP 100 新鲜出炉!本榜单根据 2016 年开源中国新收录的 3030 款软件的关注度和活跃度 ...

  9. 微信JS SDK配置授权,实现分享接口

    微信开放的JS-SDK面向网页开发者提供了基于微信内的网页开发工具包,最直接的好处就是我们可以使用微信分享.扫一扫.卡券.支付等微信特有的能力.7月份的时候,因为这个分享的证书获取问题深深的栽了一坑, ...

随机推荐

  1. python的partition() 方法

    描述 partition() 方法用来根据指定的分隔符将字符串进行分割. 如果字符串包含指定的分隔符,则返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串. p ...

  2. java日期和时间戳格式互转

    // 将日期格式转换成时间戳 public static void main(String[] args) throws Exception{ String time = "2018-05- ...

  3. SqlSugar解决SQLite访问的问题:Unable to load DLL 'SQLite.Interop.dll'

    SqlSugar用的版本是4.5.9.5,访问SQLite数据提示错误.在本机调试一时没有什么错误,把代码发布到服务器上以后刚开始运行没有问题,一段时间后报错. English Message : C ...

  4. 设计模式-Template Method Pattern

    将generic部份放在abstract base class中的实现的方法中,而将和具体context相关的部份作为abstract base class的虚方法,由derivatives去实现. ...

  5. RedHat/CentOS安装五笔输入法(转载)

    转自:http://www.zhukun.net/archives/5939 使用centos 仓库里的 ibus,我的 CenOS6.3 自带了 ibus 包.打开 System – prefere ...

  6. javascript 冒泡与捕获的原理及操作实例

    所谓的javascript冒泡与捕获不是数据结构中的冒泡算法,而是javascript针对dom事件处理的先后顺序,所谓的先后顺序是指针对父标签与其嵌套子标签,如果父标签与嵌套子标签均有相同的事件时, ...

  7. nginx_uWSGI_django_virtualenv_supervisor发布web服务器

    nginx_uWSGI_django_virtualenv_supervisor发布web服务器 nginx 导论 123456789101112131415161718192021222324252 ...

  8. BZOJ4571

    BZOJ4571 Description Transmission Gate 给定n个数, m次询问, 每次询问[l,r]范围内的数加上x后异或b的最大值, x, b给出. \[n,m <= 2 ...

  9. 人工智能-深度学习(2)TensorFlow安装及基本使用(学习笔记)

    一.TensorFlow 简介 TensorFlow 是 Google 开源的一款人工智能学习系统.为什么叫这个名字呢? Tensor 的意思是张量,代表 N 维数组:Flow 的意思是流,代表基于数 ...

  10. LoadRunner12学习之路(1-5)

    本次LoadRunner12学习用户指南,学习周期预计3天,每天学习1-2单元内容! 2017.12.17 一.使用HPE Web Tours示例应用程序 本教程使用 HPE Web Tours(一个 ...