PHP配置网页微信分享

PHP配置网页微信分享

01

首先,微信公众号开启开发者模式,拿到app_id和secret,请求接口IP地址写入IP白名单里,如果有端口号,要记得加上端口号。

02

前端动态获取url,(当前网页的URL,不包含#及其后面部分)最好是使用window.location.href.split(“#”)获取得到,然后使用encodeURI转义url。

03

请求后端接口,传入转义后的url。

04

后端拿到url,反转义urldecode($url),使用easywechat获取签名:(new EasyWechat(‘公众号app_id+secret’))->js->signature($url);得到签名返回给前端即可。

PHP配置网页微信分享

HTML代码 

<script> wx.config({   debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。   appId: "appId", // 必填,公众号的唯一标识   timestamp:"timestamp" , // 必填,生成签名的时间戳   nonceStr: "nonceStr", // 必填,生成签名的随机串,此处记得要驼峰写法   signature: "signature",// 必填,签名,见附录1   jsApiList: ['onMenuShareAppMessage'] // 必填,需要使用的JS接口列表 });  wx.ready(function(){   wx.onMenuShareAppMessage({       title: '测试', // 分享标题       desc: '测试分享描述', // 分享描述       link: "url", // 分享链接       imgUrl: '图片url', // 分享图标       type: 'link', // 分享类型,music、video或link,不填默认为link       dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空       success: function () {        alert('分享成功');     },     cancel: function () {        alert('取消分享了');     }   }); });</script>

PHP配置网页微信分享

后端PHP代码

 $url = urldecode($_POST['url']);//前端传来的转义过的url,需要反转义 $timestamp = time();  $appId = 'xxxxxxx'; //自己平台的appid $secret = 'xxxxxxxx';// 秘钥 $getToken = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxxx&secret=xxxxx");// 获得token $getTokenRes = json_decode($getToken,True); $token = $getTokenRes['access_token'];// 取出 至于存储代码就不列举了  $getTicket = file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token."&type=jsapi"); $getTicketRes = json_decode($getTicket,True); $jsapiTicket = $getTicketRes['ticket'];// 取出JS凭证, 至于存储代码就不列举了 //开始签名算法了  $countSignature['noncestr'] = 'sjijfdif'; //随意字符串,此处要记得全小写 $countSignature['jsapi_ticket'] = $jsapiTicket; $countSignature['timestamp'] = $timestamp; $countSignature['url'] = $url;//动态获取URL ksort($countSignature); $signature = ''; foreach($countSignature as $k => $v){    $signature .= $k.'='.$v.'&'; } $signature = substr($signature, 0, strlen($signature)-1);  $signature = sha1($signature);// 得到签名 $returnData = [  "appId" => $appId,  "nonceStr" => $countSignature['noncestr'],  "timestamp" => $timestamp,  "url" => $url,  "signature" => $signature,];echo json_encode(['data' => $returnData, 'msg' => 'success', 'code' => 10000]);如果使用easywechat的话,直接use EasyWeChatFoundationApplication as EsayWechat; $returnData = (new EasyWechat('公众号app_id+secret'))->js->signature($url);echo json_encode(['data' => $returnData, 'msg' => 'success', 'code' => 10000]);

未经允许不得转载:PHP100中文网 - 中国第一档PHP资源分享门户 » PHP配置网页微信分享

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏