ホームページ  >  記事  >  バックエンド開発  >  WeChatのMomentsへの共有とPHPで実装された共有機能の数の記録についての説明

WeChatのMomentsへの共有とPHPで実装された共有機能の数の記録についての説明

jacklove
jackloveオリジナル
2018-07-03 17:46:222073ブラウズ

この記事では主に、PHP で実装された WeChat の Moments 共有機能と共有数の記録機能を紹介し、PHP WeChat 共有機能インターフェースの呼び出しと共有数統計の具体的な操作スキルを例の形式で分析します。以下を参照してください。

この記事の例では、PHP で実装された WeChat を Moments に共有し、共有数を記録する機能について説明します。参照用に全員と共有します。詳細は次のとおりです:

1. JS ファイルを導入します
2. 構成インターフェイスを介して権限検証構成を挿入します
3. を介して成功した検証を処理します準備完了インターフェイス
4. 合格エラー インターフェイス処理の検証に失敗しました

JSDK ファイルの説明:https://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html

(1)

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

(2) Webconfig 検証情報を取得する値をページ

#
<?php
$url=dirname(dirname(dirname(dirname(dirname(dirname(dirname(__FILE__)))))));
$url=$url.&#39;/addons/lb_vote/jssdk.php&#39;;
include $url;
$jsdk=new JSSDK(&#39;wxa3816b432f7291ba&#39;,&#39;e469db86bec9661650362dc2f9df8956&#39;);
 $signPackage = $jsdk->GetSignPackage();
?>
に追加します

(3) 構成の確認

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

(4) Moments インターフェイスへの WeChat 共有

wx.ready(function(){
   wx.onMenuShareTimeline({
  title: &#39;测试分享朋友圈功能&#39;, // 分享标题
  link: "{php echo &#39;http://&#39;.$_SERVER[&#39;HTTP_HOST&#39;].$_SERVER[&#39;REQUEST_URI&#39;];}", // 分享链接
  imgUrl: &#39;{php echo $_W[&#39;siteroot&#39;];}{$photo}&#39;, // 分享图标
  success: function () {
    // 用户确认分享后执行的回调函数 记录分享的次数
   $.ajax({
      url:"{php echo $this->createMobileUrl(&#39;Index&#39;,array(&#39;op&#39;=>&#39;share&#39;))}",
      type:&#39;post&#39;,
      data:"id="+{$userinfo[&#39;id&#39;]}+"&rid="+{$userinfo[&#39;rid&#39;]},
      dataType:&#39;json&#39;,
      success:function(data){
       if(data.flags==1){
        alert(data.msg);
       }else if(data.flags==2){
        alert(data.msg);
        location.href="{php echo $this->createMobileUrl(&#39;Index&#39;,array(&#39;op&#39;=>&#39;display&#39;,&#39;id&#39;=>$id))}" rel="external nofollow" ;
       }
      }
     });
  },
  cancel: function () {
    // 用户取消分享后执行的回调函数
    alert(&#39;取消分享成功!&#39;);
  }
   });
});

(5) 検証エラー時に実行される関数

wx.error(function(res){
   alert(res);
});

(6) PHP 側でデータベースを更新、共有数を記録し、処理情報をユーザーに返します

if($op==&#39;share&#39;){
  $voteinfo=pdo_fetch("SELECT *FROM ".tablename(&#39;lb_vote_info&#39;)." WHERE rid = :rid and id=:id and uniacid=:uniacid and pass=:pass", array(&#39;:rid&#39; => $_GPC[&#39;rid&#39;],&#39;:uniacid&#39;=>$_W[&#39;uniacid&#39;],&#39;:pass&#39;=>1,&#39;id&#39;=>$_GPC[&#39;id&#39;]));
 $sharenum=intval($voteinfo[&#39;sharenum&#39;])+1;
 $data=array(
 &#39;sharenum&#39;=>$sharenum,
 );
$res=pdo_update(&#39;lb_vote_info&#39;, $data, array(&#39;id&#39; =>$_GPC[&#39;id&#39;],&#39;uniacid&#39;=>$_W[&#39;uniacid&#39;],&#39;rid&#39;=>$_GPC[&#39;rid&#39;]));
if(!empty($res)){
   $msg[&#39;msg&#39;]=&#39;已分享到朋友圈!&#39;;
   $msg[&#39;flags&#39;]=2;
   echo json_encode($msg);
}else{
  $msg[&#39;msg&#39;]=&#39;分享失败!&#39;;
  $msg[&#39;flags&#39;]=1;
   echo json_encode($msg);
}
}

#興味があるかもしれない記事:

PHP 解析 XML 形式データ ツール クラスの説明例

PHP におけるクラスの静的呼び出しと範囲解決演算子の違い

#配列に基づいて PHP で実装されたスタック関数とキュー関数の例の詳細な説明


##

以上がWeChatのMomentsへの共有とPHPで実装された共有機能の数の記録についての説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。