不言不语

您现在的位置是: 首页 >  PHP

PHP

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

2022-06-01PHP
微信怎么通过js分享到朋友圈?下面为大家带来一则实例!

步骤一:绑定域名

先登录微信公众平台进入“公众号设置”的“功能设置”里填写“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>


文章评论