php实现微信分享朋友链接功能


Posted in PHP onFebruary 18, 2019

本文为大家分享了php实现微信分享朋友链接,供大家参考,具体内容如下

不是些高深知识,但是第一次做,确实费了很多的时间,终于一点一点的扣了出来,目前已经使用中。

解决这个问题,总共碰到了几次BUG,1是生成的签名不对,自己打印出来,在去微信的签名算法页面一一核对.这时候如果对了,还是不成功.那就是需要动态获取URL链接的。最后需要将 函数写在为微信的ready函数内,但是看文档讲需要用户触发的函数可以不写进去,所以当所有的问题解决后,发送给朋友的链接总是原生态的,后台又尝试将函数写入ready才解决了此事。

PHP

$this->time1 = time(); 
 $this->appId = 'xxxxxxx'; //自己平台的appid
 $this->nonceStr = 'xxxxxxxx';// 秘钥
 $res = file_get_contents("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=xxxx&secret=xxxxx");// 获得token
 $ress = json_decode($res,True);
 $token = $ress['access_token'];// 取出 至于存储代码就不列举了 
 $js = file_get_contents("https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=".$token."&type=jsapi");
 $jss = json_decode($js,True);
 $jsapi_ticket = $jss['ticket'];// 取出JS凭证, 至于存储代码就不列举了

//开始签名算法了 
 $dataa['noncestr'] = 'sjijfdif'; //随意字符串 一会要传到JS里去.要求一致 
 $dataa['jsapi_ticket'] = $jsapi_ticket;
 $dataa['timestamp'] = $this->time1;
 $this->url1 = $dataa['url'] = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];//动态获取URL
 ksort($dataa);
 $signature = '';
 foreach($dataa as $k => $v){
 $signature .= $k.'='.$v.'&';
 }
 $signature = substr($signature, 0, strlen($signature)-1); 
 $this->signature = sha1($signature);// 必填,签名,见附录1

HTML

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
改变Apache端口等配置修改方法
Jun 05 PHP
PHP 判断常量,变量和函数是否存在
Apr 26 PHP
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 PHP
编写php应用程序实现摘要式身份验证的方法详解
Jun 08 PHP
PHP时间格式控制符对照表分享
Jul 23 PHP
eaglephp使用微信api接口开发微信框架
Jan 09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 PHP
php中的字符编码转换函数用法示例
Oct 20 PHP
CI框架简单邮件发送类实例
May 18 PHP
PHP数组的定义、初始化和数组元素的显示实现代码
Nov 05 PHP
PHP获取文本框、密码域、按钮的值实例代码
Apr 19 PHP
PHP使用ActiveMQ实例
Feb 05 PHP
PHP实现唤起微信支付功能
Feb 18 #PHP
thinkphp5使用无限极分类
Feb 18 #PHP
thinkphp5实现无限级分类
Feb 18 #PHP
php实现文章评论系统
Feb 18 #PHP
php无限级分类实现评论及回复功能
Feb 18 #PHP
PHP-FPM 的管理和配置详解
Feb 17 #PHP
PHP get_html_translation_table()函数用法讲解
Feb 16 #PHP
You might like
PHP实现邮件群发的源码
2013/06/18 PHP
php强制运行广告的方法
2014/12/01 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
thinkPHP实现签到功能的方法
2017/03/15 PHP
PHP数组访问常用方法解析
2020/09/05 PHP
jQuery学习笔记之Helloworld
2010/12/22 Javascript
jquery实现网页查找功能示例分享
2014/02/12 Javascript
jquery实现pager控件示例
2014/04/09 Javascript
什么是Node.js?Node.js详细介绍
2014/06/01 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
基于javascript实现表格的简单操作
2016/05/21 Javascript
使用HTML5+Boostrap打造简单的音乐播放器
2016/08/05 Javascript
JavaScript实现获取用户单击body中所有A标签内容的方法
2017/06/05 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
详解VueJs中的V-bind指令
2018/05/03 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
[14:50]2018DOTA2亚洲邀请赛开幕式
2018/04/03 DOTA
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
简单易懂的python环境安装教程
2017/07/13 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
flask 实现上传图片并缩放作为头像的例子
2020/01/09 Python
keras 简单 lstm实例(基于one-hot编码)
2020/07/02 Python
英国巧克力贸易公司:Chocolate Trading Company
2017/03/21 全球购物
Clearly澳大利亚:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
会计毕业生求职简历的自我评价
2013/10/20 职场文书
档案接收函范文
2014/01/10 职场文书
党员批评与自我批评
2014/02/12 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
机关办公室岗位职责
2014/04/16 职场文书
2019学校请假条格式及范文
2019/06/25 职场文书
漫改真人电影「萌系男友是燃燃的橘色」公开先导视觉图
2022/03/21 日漫
Java中的Kafka为什么性能这么快及4大核心详析
2022/09/23 Java/Android
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL