php实现的微信分享到朋友圈并记录分享次数功能

时间:2022-08-28 20:20:00

本文实例讲述了php实现的微信分享到朋友圈并记录分享次数功能。分享给大家供大家参考,具体如下:

1.引入JS文件
2.通过config接口注入权限验证配置
3.通过ready接口处理成功验证
4.通过error接口处理失败验证

JSDK档说明:https://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

(1)

  1. <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script> 

(2)页面加入获取webconfig验证信息的值

  1. <?php 
  2. $url=dirname(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__))))))); 
  3. $url=$url.'/addons/lb_vote/jssdk.php'
  4. include $url; 
  5. $jsdk=new JSSDK('wxa3816b432f7291ba','e469db86bec9661650362dc2f9df8956'); 
  6.  $signPackage = $jsdk->GetSignPackage(); 
  7. ?> 

(3)验证config

  1. wx.config({ 
  2. debug: false
  3. appId:'<?php echo $signPackage["appId"];?>'// 必填,公众号的唯一标识 
  4. timestamp:<?php echo $signPackage["timestamp"];?>, // 必填,生成签名的时间戳 
  5. nonceStr: '<?php echo $signPackage["nonceStr"];?>'// 必填,生成签名的随机串 
  6. signature:'<?php echo $signPackage["signature"];?>',// 必填,签名,见附录1 
  7. jsApiList: ['checkJsApi','onMenuShareTimeline'// 
  8. }); 

(4)微信分享到朋友圈接口

  1. wx.ready(function(){ 
  2.    wx.onMenuShareTimeline({ 
  3.   title: '测试分享朋友圈功能'// 分享标题 
  4.   link: "{php echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];}", // 分享链接 
  5.   imgUrl: '{php echo $_W['siteroot'];}{$photo}'// 分享图标 
  6.   success: function () { 
  7.     // 用户确认分享后执行的回调函数 记录分享的次数 
  8.    $.ajax({ 
  9.       url:"{php echo $this->createMobileUrl('Index',array('op'=>'share'))}"
  10.       type:'post'
  11.       data:"id="+{$userinfo['id']}+"&rid="+{$userinfo['rid']}, 
  12.       dataType:'json'
  13.       success:function(data){ 
  14.        if(data.flags==1){ 
  15.         alert(data.msg); 
  16.        }else if(data.flags==2){ 
  17.         alert(data.msg); 
  18.         location.href="{php echo $this->createMobileUrl('Index',array('op'=>'display','id'=>$id))}" rel="external nofollow" ; 
  19.        } 
  20.       } 
  21.      }); 
  22.   }, 
  23.   cancel: function () { 
  24.     // 用户取消分享后执行的回调函数 
  25.     alert('取消分享成功!'); 
  26.   } 
  27.    }); 
  28. }); 

(5)验证错误时执行的函数

  1. wx.error(function(res){ 
  2.    alert(res); 
  3. }); 

(6)PHP端更新数据库,记录分享次数 返回处理信息给用户

  1. if($op=='share'){ 
  2.   $voteinfo=pdo_fetch("SELECT *FROM ".tablename('lb_vote_info')." WHERE rid = :rid and id=:id and uniacid=:uniacid and pass=:pass", array(':rid' => $_GPC['rid'],':uniacid'=>$_W['uniacid'],':pass'=>1,'id'=>$_GPC['id'])); 
  3.  $sharenum=intval($voteinfo['sharenum'])+1; 
  4.  $data=array( 
  5.  'sharenum'=>$sharenum, 
  6.  ); 
  7. $res=pdo_update('lb_vote_info', $data, array('id' =>$_GPC['id'],'uniacid'=>$_W['uniacid'],'rid'=>$_GPC['rid'])); 
  8. if(!empty($res)){ 
  9.    $msg['msg']='已分享到朋友圈!'
  10.    $msg['flags']=2; 
  11.    echo json_encode($msg); 
  12. }else
  13.   $msg['msg']='分享失败!'
  14.   $msg['flags']=1; 
  15.    echo json_encode($msg); 

希望本文所述对大家PHP程序设计有所帮助。