php微信浏览器分享设置以及回调详解

在微信中分享给好友/分享到朋友圈这个功能应该是比较常用的了,就拿分享到朋友圈举例,分享出去的内容在朋友圈的展示是以一张小图片+一个简单的介绍的形式来给好友看到的,点击后才是详情,那么这么一来,这张小图片和这段小简介就直接成为了这个被分享后的内容的被点击率的重中之重。在默认情况下,这张图片会载入内容主题部分的第一张大图片,而简介只会加载一个网址。这样的展示方式还是相当不尽如人意的,那我们来看一下这一些内容,是通过什么形式来设置的,拿PHP来做一个举例:

首先我们需要有一个公众号,并且获得appid及appsecret。

然后,我们通过appid和appsecret,就可以向微信平台来换取access_token了。

define("APPID", $appid); define("APPSECRET", $appsecret); // 获取access_token $token_access_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" . APPID . "&secret=" . APPSECRET; $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容 $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 $access_token = $result['access_token'];

通过access_token,我们可以向微信平台索取一个jsapi_ticket:

// 获取jsapi_ticket $ticket_url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=TOKEN"; $res = file_get_contents($ticket_url); //获取文件内容或获取网络请求的内容 $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 $ticket = $result['ticket'];

好了,准备工作就绪,我们可以开始我们的设置了。

微信的分享设置是通过wx.config来进行的。

<script> wx.config({ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId: '<?php echo APPID;?>', // 必填,公众号的唯一标识 timestamp: <?php echo $timestamp;?>, // 必填,生成签名的时间戳 nonceStr: '<?php echo $noncestr;?>', // 必填,生成签名的随机串 signature: '<?php echo $signature;?>',// 必填,签名 jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage'] // 必填,需要使用的JS接口列表 }); </script>

中间appid就是我们微信公众号的appid,timestamp是当前的时间戳,noncestr是随机的字符串,用来生成签名的,signature是生成的签名,jsapilist是我们需要使用的微信接口,这边的话我们就使用分享给好友以及分享到朋友圈这两个接口就可以了。

简单列一下timestamp,noncestr,以及signature的生成流程:

// 生成签名 // 生成随机字符串 class RandChar{ function getRandChar($length){ $str = null; $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; $max = strlen($strPol)-1; for($i=0;$i<$length;$i++){ $str.=$strPol[rand(0,$max)];//rand($min,$max)生成介于min和max两个数之间的一个随机整数 } return $str; } } $randCharObj = new RandChar(); $noncestr = $randCharObj->getRandChar(16); $timestamp = time(); if ($_SERVER['QUERY_STRING']){ $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']; }else{ $url = 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF']; } $parameters = array("noncestr" => $noncestr, "jsapi_ticket" => $ticket, "timestamp" => $timestamp, "url" => $url); ksort($parameters); $string1 = ""; foreach ($parameters as $key => $val){ $string1 .= $key."=".$val."&"; } $string1 = substr($string1,0,-1); $signature = sha1($string1);

至此,我们对于wx.config的一个配置就已经完成了,接下去就可以自由设置我们刚刚提到的小图片和简介内容了:

wx.ready(function(){ // 分享到朋友圈设置 wx.onMenuShareTimeline({ title: '测试标题', // 分享标题 link: 'http://www.baidu.com', // 分享链接 imgUrl: 'http://mp.weixin.qq.com/wiki/static/assets/dc5de672083b2ec495408b00b96c9aab.png', // 分享图标 success: function () { alert("分享成功"); }, cancel: function () { alert("分享失败"); } }); // 分享给好友 wx.onMenuShareAppMessage({ title: '测试标题', // 分享标题 desc: '测试分享描述', // 分享描述 link: 'http://www.baidu.com', // 分享链接 imgUrl: 'http://mp.weixin.qq.com/wiki/static/assets/dc5de672083b2ec495408b00b96c9aab.png', // 分享图标 type: '', // 分享类型,music、video或link,不填默认为link dataUrl: '', // 如果type是music或video,则要提供数据链接,默认为空 success: function () { alert("分享成功"); }, cancel: function () { alert("分享失败"); } }); })

中间提一下,success和cancel这两个的值也是相当常用的,分别表示成功分享后的js回调以及取消分享后的回调,用来做一些判断用户分享朋友圈后显示心理测试答案之类的小功能还是很有用的哦。

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

时间: 2024-12-27 09:59:47

php微信浏览器分享设置以及回调详解的相关文章

php微信浏览器分享设置以及回调详解_php实例

在微信中分享给好友/分享到朋友圈这个功能应该是比较常用的了,就拿分享到朋友圈举例,分享出去的内容在朋友圈的展示是以一张小图片+一个简单的介绍的形式来给好友看到的,点击后才是详情,那么这么一来,这张小图片和这段小简介就直接成为了这个被分享后的内容的被点击率的重中之重.在默认情况下,这张图片会载入内容主题部分的第一张大图片,而简介只会加载一个网址.这样的展示方式还是相当不尽如人意的,那我们来看一下这一些内容,是通过什么形式来设置的,拿PHP来做一个举例:  首先我们需要有一个公众号,并且获得appi

Android onLoadFinished与onLoaderReset回调详解及实例

Android onLoadFinished与onLoaderReset回调详解及实例 onLoadFinished 这个方法是在前面已创建的加载器已经完成其加载过程后被调用,这个方法保证会在应用到加载器上的数据被释放之前被调用.在此方法中,你必须删除所有对旧数据的使用(因为它将很快会被删除),但是不要自己去释放它们,因为它们的加载器会做这些事情. 加载器一旦了解到应用不再使用数据时,将马上释放这些数据.例如,如果数据是一个从CursorLoader来的游标,你不应调用游标的close(),如果

Android高仿微信表情输入与键盘输入详解_Android

       最近公司在项目上要使用到表情与键盘的切换输入,自己实现了一个,还是存在些缺陷,比如说键盘与表情切换时出现跳闪问题,这个相当困扰我,不过所幸在Github(其中一个不错的开源项目,其代码整体结构很不错)并且在论坛上找些解决方案,再加上我也是研究了好多个开源项目的代码,最后才苦逼地整合出比较不错的实现效果,可以说跟微信基本一样(嘿嘿,只能说目前还没发现大Bug,若发现大家一起日后慢慢完善,这里我也只是给出了实现方案,拓展其他表情我并没有实现哈,不过代码中我实现了一个可拓展的fragme

微信 小程序前端源码详解及实例分析_其它综合

微信小程序前端源码逻辑和工作流 看完微信小程序的前端代码真的让我热血沸腾啊,代码逻辑和设计一目了然,没有多余的东西,真的是大道至简. 废话不多说,直接分析前端代码.个人观点,难免有疏漏,仅供参考. 文件基本结构: 先看入口app.js,app(obj)注册一个小程序.接受一个 object 参数,其指定小程序的生命周期函数等.其他文件可以通过全局方法getApp()获取app实例,进而直接调用它的属性或方法,例如(getApp().globalData) //app.js App({ onLau

Java内部类之间的闭包和回调详解_java

前言 闭包(closure)是一个可调用的对象,它记录了一些信息,这些信息来自于创建它的作用域.通过这个定义,可以看出内部类是面向对象的闭包,因为它不仅包含外围类对象(创建内部类的作用域)的信息,还自动拥有一个指向此外围类对象的引用,在此作用城内,内部类有权操作所有的成员,包括private成员. Java最引人争议的问题之一就是,人们认为Java应该包含某种类似指针的机制,以允许回调(callback).通过回调,对象能够携带一些信息,这些信息允许它在稍后的某个时刻调用初始的对象.如果回调是通

php微信公众平台交互与接口详解_php实例

本文分为三大部分为大家进行介绍,具体内容如下 1.微信用户.微信服务器和后台服务器的交互 例:微信用户向公众号发送一条文本消息,这条消息会首先传给微信服务器,微信服务器处理这条信息并将其以xml数据格式传递给后台服务器,后台服务器接受到数据后会对数据进行处理,再响应数据以xml数据格式传递给微信服务器,微信服务器再响应到用户微信界面. 微信用户与微信后台服务器之间的交互过程就是数据传递过程,只不过需要需要通过微信服务器这个中转站. 那么微信服务器这个中转站到底有什么用? 对xml数据进行加工包装

路由器限制网络速度怎么设置?路由器限制网速设置方法(图文详解)

随着网络带宽的提高,我们路由器承载的用户数越来越多,虽然表面上带宽是提升上去了,但实际上随着用户数的增加,我们的带宽明显上是降低了.今天,晓月就和大家分享一下怎么通过路由器限制网络速度,达到均衡上网. 方法/步骤 1 首先,我们在浏览器的链接栏输入路由器的IP地址,默认的为"192.168.1.1"有的用户自行更改之后的可将路由器恢复出厂设置亦可,然后回车. 2 然后我们登陆我们的路由器,默认用户名和密码均为"admin",更改了用户名和密码的用户请使用更改后的用户

微信JS接口汇总及使用详解_javascript技巧

基本说明 使用说明 1.引入JS文件 在需要调用JS接口的页面引入如下JS文件,(支持https):http://res.wx.qq.com/open/js/jweixin-1.0.0.js 备注:支持使用 AMD/CMD 标准模块加载方法加载 2.注入配置config接口 所有需要使用JSSDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用). 复制代码 代码如下: wx.config({  debug:

路由器安装设置具体操作详解

家用网络设备随着网络发展也呈现着日新月异的变化,那么如何做好路由器安装设置呢?这是我们实现网上冲浪的第一步,那么下面就向大家详细介绍一个路由器安装设置的具体操作. 路由器安装设置实施过程: 路由器安装设置1 通常还内嵌了4口10/100M交换机,安装非常简单.当你申请了宽带线路上网后,ISP会为你安装好线路,你只需将进来的线路(将网线或 ADSLMODEM的LAN口)连接至路由器的WAN(广域网)接口,再将路由器的LAN(局域网)接口连接到集线器.交换机或电脑网卡上即可. 路由器安装设置2 路由