解决微信未认证用户关于JSSDK分享问题

时间:2015-07-29 23:04:43

不需要你有认证微信号,也不用设置开发者ID、密匙和安全域名就可以直接使用分享功能了,只需在网页上加几行代码就可以在新浪SAE环境下使用微信分享功能。

一步解决微信未认证用户关于JSSDK分享问题

ajax已经过跨域处理,在您任何需要使用微信分享功能的网页上加上以下几行代码即可:

<script src="http://libs.useso.com/js/jquery/1.10.2/jquery.min.js"></script>    
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>      
<script>    
url=encodeURIComponent(location.href.split('#')[0]);    
$.ajax({    
type : "get",    
url : "http://game.huceo.com/jssdk/jssdk_txapi.php?url="+url,    
dataType : "jsonp",    
jsonp: "callback",    
jsonpCallback:"success_jsonpCallback",    
success : function(data){    
wx.config({    
appId: data.appId,    
timestamp: data.timestamp,    
nonceStr: data.nonceStr,    
signature: data.signature,    
jsApiList: [    
"onMenuShareTimeline",    
"onMenuShareAppMessage"    
]    
});    
},    
error:function(data){    
alert("g.huceo.com-no!");    
}    
});    
wx.ready(function () {    
	wx.onMenuShareTimeline({    //HTML5游戏中已有自定义分享函数请省略
title: '微信朋友圈上最好玩的手机小游戏', // 分享标题    
link: 'http://g.huceo.com/weixin/zhili/', // 分享链接    
imgUrl: 'http://g.huceo.com/img/kuaipao.png', // 分享图标    
success: function () {    
// 用户确认分享后执行的回调函数    
		window.location = "http://mp.weixin.qq.com/s?__biz=MzA4Njg1MjkzOA==&mid=200770039&idx=1&sn=a97ee832189c4b1d5eb9947f7e74e7ad#rd";    
},    
cancel: function () {    
// 用户取消分享后执行的回调函数    
		window.location = "http://mp.weixin.qq.com/s?__biz=MzA4Njg1MjkzOA==&mid=200770039&idx=1&sn=a97ee832189c4b1d5eb9947f7e74e7ad#rd";    
}    
});    
wx.onMenuShareAppMessage({    //HTML5游戏中已有自定义分享函数请省略
title: '微信朋友圈上最好玩的手机小游戏', // 分享标题    
desc: '微信朋友圈上最好玩的手机小游戏大全,无需下载,即点即玩!', // 分享描述    
link: 'http://g.huceo.com/weixin/zhili/', // 分享链接    
imgUrl: 'http://g.huceo.com/img/kuaipao.png', // 分享图标    
type: '', // 分享类型,music、video或link,不填默认为link    
dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空    
success: function () {    
// 用户确认分享后执行的回调函数    
		window.location = "http://mp.weixin.qq.com/s?__biz=MzA4Njg1MjkzOA==&mid=200770039&idx=1&sn=a97ee832189c4b1d5eb9947f7e74e7ad#rd";    
},    
cancel: function () {    
// 用户取消分享后执行的回调函数    
		window.location = "http://mp.weixin.qq.com/s?__biz=MzA4Njg1MjkzOA==&mid=200770039&idx=1&sn=a97ee832189c4b1d5eb9947f7e74e7ad#rd";    
}    
});    
});	
    
wx.error(function (res) {    
alert(res.errMsg);    
});    
</script>


上次在《怎么使用微信JSSDK的自定义分享功能》中,一些朋友表示还是比较麻烦,此外,上次的文章也忘了考虑大家在SAE空间应用的问题,由于SAE没有写入权限,ticket和token值无法做全局缓存,导致页面运行超过7200秒后报错。

在使用SAE空间做WEB应用的朋友,可以使用SAE的Memcache服务(控制台左侧-服务管理-点击初始化)来缓存拼接URL获取的ticket和token值。

在上篇文章中,请将jssdk.php文件中48行:

$data = json_decode(file_get_contents("jsapi_ticket.json"));

替换为:

$mmc = memcache_init(); ////开启SAE缓存服务
$data = json_decode(memcache_get($mmc,"ticket")); //SAE方法读缓存

第59、60、61行:

替换为:

memcache_set($mmc,"ticket",json_encode($data));//SAE方法写到缓存


同样,第72、82、83、84行替换为以上代码,ticket改为token即可。


此外,本微信公众号下的用户,回复“天行API”就可以直接注册使用天行API数据服务了哦,后期正在规划更强大的功能,例如自定义API,可以满足大家采集任何指定网站的数据进行API输出的需求,上线在具体讲讲。


代码运行环境新浪云SAE开通地址:https://www.sinacloud.com/public/login/inviter/gaimrn-mddmzeKWrhKWnaoGem699eIGvfoy6dg.html (首次注册可获得200免费云豆奖励,首次充值可获得600云豆奖励)

本站所有文章均为天行博客原创,转载请注明来源及出处!

作者:宇天行 (关于我

本文首发地址:https://www.huceo.com/post/415.html

或许您还会喜欢这些文章:

Tags: 作者:宇天行 | 分类:开发技术 | 评论:27 | 浏览:40067