如何用php实现简单微信文本通讯
一、准备工作
注册开发者账号并创建应用
在进入微信公众平台开发页面之前,需要有一个微信账号和一个已认证的公众号。创建公众号后需要到“开发-基本配置”页面获取公众号的AppID和AppSecret,同时在“服务器配置”中设置开发者模式的url和token。
安装必要的PHP库
使用PHP实现微信通讯需要安装PHP的curl扩展库和simplexml扩展库。在Linux系统下,使用命令 sudo apt-get install php-curl php-simplexml 即可进行安装。
搭建开发环境
使用任何一种代码编辑器搭建开发环境,建议使用PHPStorm或Sublime Text。代码中用到的URL和Token等需要与微信公众号的配置相对应。
二、获取微信用户发送的文本消息
在微信公众号的“服务器配置”中必须配置URL和Token,URL指向我们编写的php接收消息的处理程序,Token是与URL对应的身份验证。
文本消息的接受和处理过程如下:
验证消息的确来自微信服务器
当用户向公众号发送消息时,在微信服务器端会将消息发送到您事先填写的URL上,如果在“服务器配置”中开启了“接收消息并打印消息加密前的XML”选项,则会马上在页面上打印出这个XML文件。以下代码就是用来验证消息是否来自微信服务器的函数。
define("TOKEN","weixin");
$wechatObj=newwechatCallbackapiTest();
if(!isset($_GET['echostr'])){
$wechatObj->
responseMsg();
}
else{
$wechatObj->
valid();
}
classwechatCallbackapiTest
{
publicfunctionvalid()
{
$echoStr=$_GET["echostr"];
if($this->
checkSignature()){
echo$echoStr;
exit;
}
}
privatefunctioncheckSignature()
{
$signature=$_GET["signature"];
$timestamp=$_GET["timestamp"];
$nonce=$_GET["nonce"];
$token=TOKEN;
$tmpArr=array($token,$timestamp,$nonce);
sort($tmpArr);
$tmpStr=implode($tmpArr);
$tmpStr=sha1($tmpStr);
if($tmpStr==$signature){
returntrue;
}
else{
returnfalse;
}
}
}
以上代码逻辑非常简单,当我们访问这个php处理程序时,如果访问带有echostr参数的url,会执行valid()函数。在这个函数里判断signature的值是否合法,如果合法则返回 echostr的值。如果访问的url没有echostr参数,那么直接执行 responseMsg()函数。
回复文本消息
回复文本消息需要在微信公众号“服务器配置”中配置URL和Token,URL指向我们编写的php处理程序,Token是与URL对应的身份验证。
privatefunctionreceiveText($postObj)
{
$content="欢迎您关注XX公司官方微信公众号,我们会竭诚为您服务!";
$fromUsername=$postObj->
FromUserName;
$toUsername=$postObj->
ToUserName;
$time=time();
$textTpl="xml>
ToUserName>
![CDATA[%s]]>
/ToUserName>
FromUserName>
![CDATA[%s]]>
/FromUserName>
CreateTime>
%s/CreateTime>
MsgType>
![CDATA[%s]]>
/MsgType>
Content>
![CDATA[%s]]>
/Content>
FuncFlag>
0/FuncFlag>
/xml>
";
$msgType="text";
$resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$content);
echo$resultStr;
}
以上代码里的receiveText函数可以接收用户发送的文本消息,并回复固定的欢迎文字。您可以根据业务需求更改回复的文本内容。
感谢各位的阅读,以上就是“如何用php实现简单微信文本通讯”的内容了,经过本文的学习后,相信大家对如何用php实现简单微信文本通讯这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何用php实现简单微信文本通讯
本文地址: https://pptw.com/jishu/8495.html
