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 相关文章推荐
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
php 获取可变函数参数的函数
Aug 26 PHP
第五章 php数组操作
Dec 30 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
微信API接口大全
Apr 15 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
[原创]php逐行读取txt文件写入数组的方法
Jul 02 PHP
简单介绍PHP非阻塞模式
Mar 03 PHP
php截取视频指定帧为图片
May 16 PHP
php+ajax+json 详解及实例代码
Dec 12 PHP
利用PHP获取汉字首字母并且分组排序详解
Oct 22 PHP
php 中htmlentities导致中文无法查询问题
Sep 10 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
Look And Say 序列php实现代码
2011/05/22 PHP
如何在旧的PHP系统中使用PHP 5.3之后的库
2015/12/02 PHP
PHP聚合式迭代器接口IteratorAggregate用法分析
2017/12/28 PHP
javascript 闭包疑问
2010/12/30 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
使用纯javascript实现放大镜效果
2015/03/18 Javascript
微信jssdk在iframe页面失效问题的解决措施
2016/03/03 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
Bootstrap导航条学习使用(二)
2017/02/08 Javascript
JavaScript编写一个贪吃蛇游戏
2017/03/09 Javascript
vue+vuex+axio从后台获取数据存入vuex实现组件之间共享数据
2017/04/22 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
vue 过滤器filter实例详解
2018/03/14 Javascript
微信小程序scroll-view实现字幕滚动
2018/07/14 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
[04:50]2019DOTA2高校联赛秋季赛四强集锦
2019/12/27 DOTA
Python 常用 PEP8 编码规范详解
2017/01/22 Python
Python实现读取及写入csv文件的方法示例
2018/01/12 Python
opencv python 基于KNN的手写体识别的实例
2018/08/03 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
2020/04/17 Python
CSS3实现可爱的小黄人动画
2016/07/11 HTML / CSS
Booking.com德国:预订最好的酒店和住宿
2020/02/16 全球购物
优良学风班申请材料
2014/02/13 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
活动主持人开场白
2015/05/28 职场文书
2015年教务处干事工作总结
2015/07/22 职场文书
幼儿园教师管理制度
2015/08/05 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL
如何利用 CSS Overview 面板重构优化你的网站
2021/10/24 HTML / CSS