解决微信未认证用户关于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: 作者:宇天行 | 分类:开发技术 | 评论:26 | 浏览:23686

您正在以游客身份发表评论:

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

雷达探币2021-11-04 11:08:16回复评论
通常一个年轻的姑娘,起初只认为婚姻是双方纯洁的结合,后来才突然发现了肉体的爱情,也就是精神上最纯洁的感情所产生的有力的结果
啦啦啦2017-09-21 21:57:18回复评论
微信分享上安卓分享给ios怎么会没有图片
kimho2017-12-18 01:48:55回复评论
现在还能正常使用吗?博主
小书童2017-08-14 11:48:34回复评论
前端通过ajax请求验证最新的解决方法:http://jacean.github.io/2016/04/19/%E5%BE%AE%E4%BF%A1%E5%BC%80%E5%8F%91-php%E4%BD%BF%E7%94%A8ajax%E8%AE%A4%E8%AF%81%E7%AD%BE%E5%90%8D/
宇天行2017-05-09 00:42:11回复评论
请注意:这个现在失效,不能使用,代码可以参考。
kimho2017-12-18 01:49:36回复评论
现在还有可以正常使用的版本吗?博主
宇天行2017-12-21 20:17:40回复评论
需要认证之后才可以
上海养老院2017-04-26 13:19:20回复评论
学习了 好全面
男和可博客2017-04-26 13:18:58回复评论
好好好好爱好
灵感创作2016-01-10 10:03:16回复评论
网站不错!
我在大学2016-01-08 10:41:00回复评论
这个代码还能用吗?
知道91博客2015-12-07 16:22:40回复评论
学习了 好全面 真是太棒了
陈小予2015-12-07 16:22:39回复评论
留个脚印!
雪鹰领主2015-12-07 16:22:39回复评论
。。。。
冷欺花2015-12-07 16:22:39回复评论
楼主好!感谢啊!正在为没有公众号的网页分享发愁,用了您提供的代码,但是打开页面提示“config: invalid signature”,求解答啊。。。
宇天行2015-12-07 16:22:39回复评论
不好意思,已经失效了。。。
冷欺花2015-12-07 16:22:39回复评论
以为是不在sinaapp的域名问题,特意临时去申请了个app,又折腾了半天django,把网页传上去了,但是还是不行啊。。还是报config: invalid signature错误。。咋办咧。。。
宇天行2015-12-07 16:22:39回复评论
你的微信认证了没?
朱海涛博客2015-12-07 16:22:38回复评论
这个好,最近正在研究这个,谢谢博主哈
af论坛2015-12-07 16:22:38回复评论
顶一下。
评论者2015-12-07 16:22:37回复评论
我把网页放在自己公司的那个服务器,不行,是不是一定要在新浪SAE环境下使用
宇天行2015-12-07 16:22:37回复评论
必须在sinaapp.com域名下,自己的域名用https://www.huceo.com/post/414.html这个办法。
不成功啊2015-12-07 16:22:37回复评论
不成功啊
斗欲博客2015-12-07 16:22:36回复评论
这篇文章真心不错,博主继续加油!——斗欲博客有许多好玩的、有趣的东西噢~欢迎回访(。・∀・)ノ゙ http://www.idouyu.com/
灵商智库2015-12-07 16:22:36回复评论
非常喜欢你的博客风格哈
美女图片站2015-12-07 16:22:36回复评论
太专业了。低头掳过。