• 欢迎@方程式 @小云 加入我们
  • Register

WordPress使用微信分享JSSDK示例及回调处理

wordpress页面模板中想要使用微信分享,可以参考微信官方的JSSDK,这里给个示例,包含分享到朋友圈和回调函数。

直接将如下代码段放在主题目录的模板中即可。

<?php
/**
 * Template Name: 模板
 * @since 1.0
 **/
if(!defined('WP_USE_THEMES')) { exit('Access Denied'); }
if( ! is_user_logged_in() ){ wp_redirect( home_url('/login') ); }
get_header();


// share info
$sets = get_option("share_options");


// weixin jssdk
require_once TEMPLATEPATH."/jssdk-wx/jssdk.php";
$jssdk = new JSSDK(APPID, AppSecret);
$signPackage = $jssdk->GetSignPackage();
?>
<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
<script>
//分享成功后处理函数
function share_success(){
	$.ajax({
		url: ccc.ajax_url,
		dataType: "json",
		data: {
			action:'do_after_share',
			_ajax_nonce: ccc.nonce,
		},
		success: function (data) {
			alert(data.msg);
		}
	});
}

//alert(location.href.split('#')[0]); //页面完整的url
/*
 * 注意:
 * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
 * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
 * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
 *
 * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
 * 邮箱地址:weixin-open@qq.com
 * 邮件主题:【微信JS-SDK反馈】具体问题
 * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
 */
wx.config({
	debug: true,
	appId: '<?php echo $signPackage["appId"];?>',
	timestamp: <?php echo $signPackage["timestamp"];?>,
	nonceStr: '<?php echo $signPackage["nonceStr"];?>',
	signature: '<?php echo $signPackage["signature"];?>',
	jsApiList: [ // 所有要调用的 API 都要加到这个列表中
		//'checkJsApi',  //判断当前客户端版本是否支持指定JS接口
		'onMenuShareTimeline', //分享给好友
		'onMenuShareAppMessage', //分享到朋友圈
		'onMenuShareQQ',  //分享到QQ
		'onMenuShareWeibo' //分享到微博
	]
});
//ready函数用于调用API,如果你的网页在加载后就需要自定义分享和回调功能,需要在此调用分享函数。//如果是微信游戏结束后,需要点击按钮触发得到分值后分享,这里就不需要调用API了,可以在按钮上绑定事件直接调用。因此,微信游戏由于大多需要用户先触发获取分值,此处请不要填写如下所示的分享API
wx.ready(function(){
	//分享到朋友圈的API
	wx.onMenuShareTimeline({
		title: '<?php echo $sets["share_txt"];?>', // 分享标题
		link: 'http://yangjunwei.com/?from-share', // 分享链接
		imgUrl: '<?php echo get_template_directory_uri();?>/images/girl.png', // 分享图标
		success: function(){// 用户确认分享后执行的回调函数
			//window.location = "http://yangjunwei.com";
			
			share_success();
			
			/*
			// share_success()函数内部代码也可以直接调用
			$.ajax({
				url: ccc.ajax_url,
				dataType: "json",
				data: {
					action:'do_after_share',
					_ajax_nonce: ccc.nonce,
				},
				success: function (data) {
					if(data.success>0){
						alert("分享赠送双倍菜豆成功!");
					}else{
						alert("未获得菜豆!");
					}
				}
			});
			*/

			alert('分享到朋友圈成功');
		},
		cancel: function () {
			// 用户取消分享后执行的回调函数
			alert('分享取消');
		}
	});
	//分享给朋友
	wx.onMenuShareAppMessage({
		title: '<?php echo $sets["share_txt"];?>', // 分享标题
		desc: '<?php echo $sets["share_desc"];?>', // 分享描述
		link: 'http://yangjunwei.com/?from-share', // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
		imgUrl: '<?php echo get_template_directory_uri();?>/images/girl.png', // 分享图标
		type: '', // 分享类型,music、video或link,不填默认为link
		dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空
		success: function () { 
			// 用户确认分享后执行的回调函数
			share_success();
		},
		cancel: function () { 
			// 用户取消分享后执行的回调函数
		}
	});
	wx.error(function(res){
		// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
		alert("errorMSG:"+res);
	});
});
</script>


<div class="article">
	<ul class="share_list">
	<?php
		// 自定义钩子 share_center,分享中心
		do_action("share_center");
	?>
	</ul>
</div>

</section>
<?php get_footer(); ?>

share_success() 函数执行分享成功后的操作,比如分享成功后增加用户积分等。

Ajax 后端执行函数:

// Ajax: 分享成功后执行函数
add_action( 'wp_ajax_do_after_share', 'do_after_share_function' );
function do_after_share_function(){
	check_ajax_referer( 'share_nonce' );
	
	$msg = 'msg测试';
	$return = array('msg'=>$msg);
	echo json_encode($return);
	exit;
}
版权声明:转载请注明来自杨俊伟博客,本文地址:http://yangjunwei.com/a/2724.html
除非注明,杨俊伟博客文章均为原创,转载请注明出处和链接!
 

Comments are closed.

评论已关闭

我还是想用邮箱注册

登录

忘记密码 ?

用第三方帐号快捷登录

已有账户?前往登录吧~

注册