PHP技术

当前位置:首页 > PHP技术 >

微信中通过JS代码分享到朋友圈实例代码

时间:2015-12-19        阅读:次        QQ群:182913345

步骤一:绑定域名
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。 
 
步骤二:引入JS文件
在需要调用JS接口的页面引入如下JS文件:http://res.wx.qq.com/open/js/jweixin-1.0.0.js
 
步骤三:通过config接口注入权限验证配置
<?php
	//获取access_token
	$url='https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wxf7e7d834bd3687
&secret=450633ea76e5be5b8f70a25c1ce619';
	$ch=curl_init();
	curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
	curl_setopt($ch,CURLOPT_URL,$url);
	$json=curl_exec($ch);
	curl_close($ch);
	$arr=json_decode($json,1);
	
	//获取ticket
	$url='https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token='.$arr['access_token'].'&type=jsapi';
	$ch=curl_init();
	curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
	curl_setopt($ch,CURLOPT_URL,$url);
	$json=curl_exec($ch);
	curl_close($ch);
	$arr=json_decode($json,1);
?>

<script>
	//生成签名的随机串
	var createNonceStr=Math.random().toString(36).substr(2, 15);
	
	//生成签名的时间戳
	var createTimeStamp=parseInt(new Date().getTime() / 1000) + '';

	//签名生成
	var str='jsapi_ticket='+'<?php echo $arr['ticket'];?>'+'&noncestr='+createNonceStr+
'&timestamp='+createTimeStamp+'&url='+location.href.split('#')[0];
	shaObj = new jsSHA(str, 'TEXT');
	var signature =shaObj.getHash('SHA-1', 'HEX');

	wx.config({
		debug: false,
		appId: 'wxf7e7d834bd3687',
		timestamp: createTimeStamp,
		nonceStr: createNonceStr,
		signature: signature,
		jsApiList: [
		'onMenuShareAppMessage',
		'onMenuShareTimeline',
		'hideMenuItems',
		'showMenuItems',
		'hideAllNonBaseMenuItem',
		'showAllNonBaseMenuItem',
		'hideOptionMenu',
		'showOptionMenu',
		'closeWindow',
		'scanQRCode'
		]
	});
</script>

步骤四:通过ready接口处理成功验证
<script>
	wx.ready(function () {
		// 2.2 监听“分享到朋友圈”按钮点击、自定义分享内容及分享结果接口
		document.querySelector('#onMenuShareTimeline').onclick = function () {
			wx.onMenuShareTimeline({
				title: '分享标题',
				link: '分享的url,以http或https开头',
				imgUrl: '分享图标的url,以http或https开头',
				trigger: function (res) {
					alert('用户点击分享到朋友圈');
				},
				success: function (res) {
					alert('已分享');
				},
				cancel: function (res) {
					alert('已取消');
				},
				fail: function (res) {
					alert(JSON.stringify(res));
				}
				alert('已注册获取“分享到朋友圈”状态事件');
			});

			$(".wx_zf").show();
			$(".start_bottom").hide();
		};

		function decryptCode(code, callback) {
			$.getJSON('/jssdk/decrypt_code.php?code=' + encodeURI(code), function (res) {
				if (res.errcode == 0) {
					codes.push(res.code);
				}
			});
		}

		var shareData = {
			title: '分享标题',
			desc:'分享描述',
			link: '分享的url,以http或https开头',
			imgUrl: '分享图标的url,以http或https开头'
		};

		wx.onMenuShareAppMessage(shareData);
		wx.onMenuShareTimeline(shareData);
	});
</script>

步骤五:通过error接口处理失败验证
<script>
	wx.error(function(res){
	  alert(res.errMsg);
	});
</script>

上一篇:网站微信授权登录详细教程

下一篇:没有了

扫一扫,更多精彩内容推送

PHP技术分享

分享PHP技术,前端技术,数据库,SEO优化,服务器,网络安全等知识,是php程序员工作学习的好帮手!

Copyright © 2013-2015.PHP技术分享 www.php520.cn  版权所有  网站地图    PHP学习交流群

免责声明:网站内容收集于互联网,本网站不承担任何由于内容的合法性及健康性所引起的争议和法律责任。

欢迎大家对网站内容侵犯版权等不合法和不健康行为进行监督和举报。 沪ICP备15014499号-2