手机版

php微信高级界面调用方法(自定义菜单界面、客服界面、二维码)

时间:2021-09-11 来源:互联网 编辑:宝哥软件园 浏览:

如何调用微信高级界面

微信高级界面和微信普通界面的区别

后台服务器可以调用微信界面与微信用户进行交流。这个行为就是调用微信界面,这是基础界面,你可以调用它,不需要任何支付行为或者身份认证行为。但是有一些高级界面,你的微信微信官方账号必须达到一定的权限,比如在调用自定义菜单、微信支付等高级功能之前,先通过微信认证。但是,这些高级接口可以应用于微信公众号的测试号系统(与微信支付等交易相关的除外)。

微信高级界面的调用

要调用微信高级接口,需要先调用一个token_access接口。只有调用这个接口,才能调用其他高级接口。如下:连接高级接口示意图

调用token_access需要appID和appsecreset(这两个的由来在微信微信官方账号平台的开发中已经有描述(一))

调用代码如下

?PHP $ appid=' wxbad 0 B4 x 543 aa 0b 5e ';$ app secret=' ed 222 a 84 da 15 CD 24c 4 bdfa 5d 9 adbab F2 ';$ URL=' https://API . weixin . QQ.com/CGI-bin/token?grant _ type=client _ credential appid=$ appid secret=$ appsecret ';//下面是一个cURL会话进程,通过该进程可以返回一个字符串{ ' access _ token ' : ' nu7kr6v 9l 9 tqam 5 ne3 tpcttzx 797 wxw 4 snd 2 l2hbqlixldvow2l-se0i-wmolliniawzhbyhnjb ' }。这是我们想要的访问令牌。当调用高级函数接口时,它依赖于它。使用这个过程的时候,直接引用就可以了,不需要深入。这个cURL系统的相关功能有点多而且复杂。$ ch=curl _ init();//初始化curl _ setopt ($ ch,curl opt _ URL,$ URL);//与url curl _ setopt建立对话($ ch,curl opt _ SSL _ verifypeer,false);//配置curl _ setopt ($ ch,curl opt _ SSL _ verifyhost,false);//配置curl _ setopt ($ ch,curl opt _ return transfer,1);//configure $ output=curl _ exec($ ch);//执行对话,获取接口数据Access token curl _ close($ ch);//关闭会话$ jsoninfo=JSON _ decode ($ output,true);//解码接口数据,将json格式字符串转换为php变量或数组。默认值是一个变量,在加上true后,它就是一个数组。$ access _ token=$ jsoninfo[' access _ token '];调用微信高级界面

1)、调用自定义菜单功能

//创建自定义菜单的json字符串:$ JSON Menu=' { ' Button ' :[{ ' Name ' : ' About us ',' Sub _ Button ' :[{ ' Type ' 3360 ' Click ',' Name' :' Company Profile ',' Key {'type' :' click ',' Name ' : ' social response ',' Key ' : ' social response ' },{ ' Type ' 33: ' Click ',' Name 'sub _ button ' :[{ ' type ' : ' click ',' name' : '微信平台',' key': '微信平台' },{'type' 3360' click ',' name' : '微博应用',{'type' :' click ',' name' : '手机网站',' key': '手机网站' }] },{'name': '技术支持',' sub _ button ' :[{ ' type ' : ' Key ' : '文档下载' },{'type' :' click ',' name': '技术社区' },{ ' type ' 3: ' click ',' name' : 'access_token='。$ access _ token//接口地址$ result=https _ request ($ URL,$ JSON menu);//与接口var_dump建立会话($ result);函数https_request($url,$ data=null){ $ curl=curl _ init();curl_setopt($curl,CURLOPT_URL,$ URL);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);if(!空($data)){ curl_setopt($curl,CURLOPT_POST,1);curl_setopt($curl,CURLOPT _ POSTFIELDS,$ data);} curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$ output=curl _ exec($ curl);curl _ close($ curl);返回$ output}//将此代码添加到上面调用Access Token界面的代码中,实现微信微信官方账号界面的添加菜单功能。当我们给微信微信官方账号添加菜单时,如何设置点击菜单才会有相应的效果?这里涉及另一种xml类型的数据传输:

xmlToUserName![CData[GH _ 82479813 ed 64]]/TousernameFromusername![CData[OJPx _ jig-gyi3 _ q9 hxq4 rdhniqs]/FromUserNameCreateTiME 1392297442/CreateTimeMSgtype![CData[事件]]/MSgtypevent![CDATA[点击EventEventKey![CDATA[公司简介]]/EventKey/xml//以上是点击菜单的数据传输类型,数据会发送到后台服务器,然后服务器会进行响应。菜单类型很多,xml类型也不同。详情可在微信微信官方账号平台查看相应文档。

*这里需要说明的是,只要拥有微信微信官方账号的appID和appsecret,就可以在任何服务器空间运行这个php代码进入微信服务器调用相应的功能,无需在带有令牌验证的服务器下运行。令牌验证是后台服务器判断数据源是否来自微信服务器,与调用微信服务器的高级接口无关。Php文件必须在服务器上运行才能生效。

调用其他高级接口与调用自定义菜单相同。

2)调用客户服务界面

当微信用户主动向微信公众号发送消息(包括发送消息、点击自定义菜单点击事件、订阅事件、扫描二维码、支付成功事件)时,微信会向开发者推送消息数据。开发人员可以在一段时间内调用客户服务接口消息,并通过发布JSON数据包向用户发送消息。

复制代码代码如下: $ Access _ Token=' nfx6gfsspsslbkjlgmq 3 k1ym 8 _ fchre 7 ve2 zoilmmficqntknbwuohymaniforgcbpfhby4 qlgx9 FFA 36 tfme 2 sryskpzggqku-YGU7X8CGY _ 1tl q4n 1 mhsumwqg6k 6 rddo 8o 8g rouge 3 hiag ';$ OpenID=' o7lp 5t 6n 59 dex3u 0c 7 kri C9 qex-Q ';//微信用户有一个openID

下图显示了如何获取openID。

$data='{ 'touser': ' '。$openid。' msgtype':'text ',' text ' : { ' content ' : ' Hello World ' } } ';//通过基础消息接口发送的数据为XML格式,但调用客服接口发送的数据为json数据格式,更容易传输。$ URL=' https://API . weixin . QQ.com/CGI-bin/message/custom/send?access_token='。$ access _ token$result=https_request($url,$ data);var _ dump($ result);函数https_request($url,$ data){ $ curl=curl _ init();curl_setopt($curl,CURLOPT_URL,$ URL);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($curl,CURLOPT_POST,1);curl_setopt($curl,CURLOPT _ POSTFIELDS,$ data);curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$ result=curl _ exec($ curl);if(curl _ Errno($ curl)){ return ' Errno '。curl _ error($ curl);} curl _ close($ curl);返回$ result}客服界面发送图文消息、音乐消息、视频消息的具体格式请参考微信公众平台上的开发帮助文档。客服界面可以和消息界面混合使用。

在这里,我们可能不理解为什么我们需要这样一个客户服务接口,因为我们可以通过被动响应消息的接口直接向用户发送xml数据。可以理解,被动响应消息是对同一消息仅一次的一次性响应。如果你把一个歌手的名字输入音乐平台,被动回应发送的信息总会回复同一首歌。但是每次都可以通过客服界面回复不同的歌曲,这涉及到MySQL数据库。

简单一点,一个微信公众平台查快递包括地址。每次输入同一个订单号,后台每次都可以回复订单的位置(同一文本可以做不同的回复),就像人工回复一样,就是客服界面。

3)生成二维码界面

二维码有两种,临时二维码eh和永久二维码,最长的是1800s。生成二维码需要调用三个接口,第一个是access_token,第二个是生成话单接口,第三个是通过第二个接口生成话单来换取二维码图片。

$ access _ token=' xDx0pD _ zvxkhm 3 oeu 5 ogjdt 1 _ 9 hxla-9g 0 vtr 6 mz-v4r 7 mpvzyc4ee 4 xn 97 lr 4 irpk e 94 zbuhpzg _ ovqac3d 3 xawjigin 0 eeiznfaofo1c 3 lnzgphd _ rev3piimsw 9 lo-4 fowd 4t 3 nsq5 yxq ';//假定获取的访问令牌为这段代码。//临时二维码$ QR code=' { ' expire _ seconds ' : 1800,' action_name': 'QR_SCENE ',' action _ info ' : { ' SCENE ' : { ' SCENE _ id ' : 10000 } } } ';//永久二维码$二维码=' { ' action _ name ' : ' QR _ LIMIT _ SCENE ',' action _ info ' : { ' SCENE ' : { ' SCENE _ id ' : 1000 } } ';$ URL='https://api.weixin.qq.com/cgi-bin/qrcode/create?access _ token=$ access _ token ';//创建票接口$result=https_request($url,$ QR码);$jsoninfo=json_decode($result,true);$ ticket=$ jsoninfo[' ticket '];函数https_request($url,$ data=null){ $ curl=curl _ init();curl_setopt($curl,CURLOPT_URL,$ URL);curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,FALSE);if(!空($data)){ curl_setopt($curl,CURLOPT_POST,1);curl_setopt($curl,CURLOPT _ POSTFIELDS,$ data);} curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);$ output=curl _ exec($ curl);curl _ close($ curl);返回$ output } $ ticket=' gqhi 8 doaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa=' gqhi 8 dov 2 peglunglinlmnvbs9 XL 0 uwetnxni 1 sdl3a rklyrnkufvaaieldnuugmeaaaaa=';//获取票的字符串$ URL='https://mp.weixin.qq.com/cgi-bin/showqrcode?票证='。网址编码($ ticket);//门票对面二维码图片代码$ imageInfo=downloadwixinfile($ URL);$ filename=' QR code . jpg $ local _ file=fopen($ filename,' w ');如果(假的!==$local_file){ if (false!==fwrite($local_file,$ imageInfo[' body ']){ fclose($ local _ file);} }函数downloadwixinfile($ URL){ $ ch=curl _ init($ URL);curl_setopt($ch,CURLOPT_HEADER,0);curl_setopt($ch,CURLOPT _ NONE,0);//只取身体头curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,FALSE);curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,FALSE);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$ package=curl _ exec($ ch);$ httpinfo=curl _ getinfo($ ch);curl _ close($ ch);return array _ merge(array(' body '=$ package),array(' header '=$ httpinfo));}在服务器空间运行这段代码,浏览器会生成一张二维码图片。

获取非微信功能接口,比如获取交通信息、天气预报。

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

版权声明:php微信高级界面调用方法(自定义菜单界面、客服界面、二维码)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。