上一节我们用淘客的API查询了店铺的详细数据,里面的数据并不完善。我们仍然不能查询一些新产品,所以我们需要修改它。我们将暂时离开这一部分。我们将把它留到下一节来解释如何修改这个细节。今天要讲的是如何在这个淘宝客系统中接入我们的微信微信官方账号实现一个商品查询功能,比如我们输入衣架就会出现商品的信息数据。具体效果如下:
根据微信的开发文档,我们需要做以下三个步骤来访问微信微信官方账号的回复。
1.填写服务器配置。
2.验证服务器地址的有效性
3.根据接口文件实现业务逻辑。
先跳过直接申请微信官方账号这一步,再来看如何在微信微信官方账号平台后台验证服务器,查找开发的基本配置,如下图:
Http://www.yeehot.com/DaoGou/weixin.php,,:我稍后会解释如何实现这个文档。
在这里,我们可以填写一个我们自己的数据,类似于密码。
那么有哪些信息,主要是验证信息和回复信息?
首先说一下核查信息的档案。同样,根据微信文档的说明,验证微信服务器的数据算法如下:
1)按照字典顺序对令牌、时间戳和nonce三个参数进行排序。
2)将三个参数串拼接成一个字符串进行sha1加密
3)开发者获得的加密字符串可以和signature进行比对,识别请求来自微信。
然后我们可以像这样写一个检查函数。注意,这里需要用到我们刚刚在微信后台填写的token。
私有函数checkSignature()
{
$ signature = $ _ GET[" signature "];
$ timestamp = $ _ GET[" timestamp "];
$ nonce = $ _ GET[" nonce "];
$ token = " wx111111
$ sign info = array();
$signinfo = array($timestamp,$nonce,$ token);
sort($ sign info);
$result = sha1(内爆($ sign info));
if( $result == $signature ){
返回true
}否则{
返回false
}
}
另外,我们知道微信会根据客户端的请求,向我们的服务器发送大量的数据。但是发送验证数据的时候会带echostr字段,所以我们可以判断这个字段是验证信息还是其他信息。
就凭这个check函数,我们就可以进行检查,但是为了让我们的代码更具重用性,我们写了一个类,用于验证。代码如下:
威信等级{
公共函数checkweixinfo(){
$ echostr = $ _ GET[" echostr "];
如果($ this-& gt;checkSignature()){
echo $ echostr
退出;
}
}
私有函数checkSignature()
{
$ signature = $ _ GET[" signature "];
$ timestamp = $ _ GET[" timestamp "];
$ nonce = $ _ GET[" nonce "];
$ token = " 111
$ sign info = array();
$signinfo = array($timestamp,$nonce,$ token);
sort($ sign info);
$result = sha1(内爆($ sign info));
if( $result == $signature ){
返回true
}否则{
返回false
}
}
}
我们刚才说了,微信会根据客户端的不同请求,向我们的服务器发送不同的数据,所以我们可以根据相应的逻辑进行处理,提取我们的消息内容。
在这里,我们根据具有该参数的echostr进行不同的处理。如果没有,我们将判断是否接受其他消息。
我们知道微信发送的消息都是XML格式的,所以我们对POST的原始数据进行处理,例如
$ info obj = SimpleXML _ load _ string($ data,' SimpleXMLElement ',LIBXML _ NOCDATA);
然后我们可以处理数据。对于接收消息,我们可以在这里查看文档。
https://MP . weixin . QQ . com/wiki/10/79502792 eef 98d 6 E0 c 6 e 1739 da 387346 . html
让我们首先确定数据的类型。
$ msg _ type = trim($ info obj-& gt;msg type);
因为我们根据用户输入的文本内容查询数据,所以可以判断$msg_type是文本类型。
然后我们可以提一下用户的内容,作为我们产品查询的关键词,然后进行数据库操作。一些代码如下:
案例“文本”:
{
$ content = array();
$ keyword = trim($ info obj-& gt;内容);
$ res1 = MySQL _ query(" select * from yee hot _ Tao baoke _ product where name like ' % $ keyword % ' order by shopid ASC limit 0,7 ");
while($ row 1 = MySQL _ fetch _ array($ res1)){
$ content[]= array(" Title " = & gt;$row1['name']," Description " = & gt"销售价格:"。$row1['price']," PicUrl " = & gt$row1['image']," Url " = & gt$ row 1[' tbk _ link ']);
}
要完成上述操作,我们需要将内容回复给用户。然后还需要看回复的内容。我们可以看看微信文档发的内容。
https://MP . weixin . QQ . com/wiki/14/89b 871 b 5466 b 19 B3 EFA 4a da 8 e 577d 45 e . html
我们的回复是图文并茂的,格式如下:
& ltxml & gt
& ltToUserName & gt& lt![CDATA[toUser]]& gt;& lt/touser name & gt;
& ltfrom用户名& gt& lt![CDATA[from user]]& gt;& lt/from username & gt;
& ltCreateTime & gt12345678 & lt/create time & gt;
& ltMsgType & gt& lt![CDATA[新闻]]& gt;& lt/msg type & gt;
& ltArticleCount & gt2 & lt/article count & gt;
& lt文章& gt
& ltitem & gt
& ltTitle & gt& lt![CDATA[title 1]]& gt;& lt/Title & gt;
& lt描述& gt& lt![CDATA[description1]]>& lt/Description & gt;
& ltPicUrl & gt& lt![CDATA[picurl]]& gt;& lt/pic URL & gt;
& ltUrl & gt& lt![CDATA[URL]]& gt;& lt/Url & gt;
& lt/item & gt;
& ltitem & gt
& ltTitle & gt& lt![CDATA[title]]& gt;& lt/Title & gt;
& lt描述& gt& lt![CDATA[description]]& gt;& lt/Description & gt;
& ltPicUrl & gt& lt![CDATA[picurl]]& gt;& lt/pic URL & gt;
& ltUrl & gt& lt![CDATA[URL]]& gt;& lt/Url & gt;
& lt/item & gt;
& lt/Articles & gt;
& lt/XML & gt;
然后我们就可以根据刚刚在数据库中查询到的数据进行处理。
$ info1 = " & ltitem & gt
& ltTitle & gt& lt![CDATA[% s]]& gt;& lt/Title & gt;
& lt描述& gt& lt![CDATA[% s]]& gt;& lt/Description & gt;
& ltPicUrl & gt& lt![CDATA[% s]]& gt;& lt/pic URL & gt;
& ltUrl & gt& lt![CDATA[% s]]& gt;& lt/Url & gt;
& lt/item & gt;
";
$ info _ str =
foreach ($content as $item){
$info_str。= sprintf($info1,$item['Title'],$item['Description'],$ item[' PicUrl ']);
}
$ responsTpl = " & ltxml & gt
& ltToUserName & gt& lt![CDATA[% s]]& gt;& lt/touser name & gt;
& ltfrom用户名& gt& lt![CDATA[% s]]& gt;& lt/from username & gt;
& ltCreateTime & gt% s & lt/create time & gt;
& ltMsgType & gt& lt![CDATA[新闻]]& gt;& lt/msg type & gt;
& lt内容& gt& lt![CDATA[]]& gt;& lt/Content & gt;
& ltArticleCount & gt% s & lt/article count & gt;
& lt文章& gt
%s
& lt/Articles & gt;
& lt/XML & gt;";
$result =sprintf($responsTpl,$ info obj-& gt;FromUserName,$ info obj-& gt;ToUserName,time()。"",计数(content)。"",$ info _ str);
然后我们就可以把这些结果输出到微信服务器。
今天实现了微信微信官方账号的接入。我还把最新的功能放在网站上让大家测试。同时也可以关注我的微信官方账号。你可以登录我的网站http://www.yeehot.com/,,右边有一个微信二维码。
同时,我们也把源代码放在上面。欢迎下载学习。点击源码下载,点击微信源码的文件,把文件放到我们原来的淘宝客系统里。
欢迎继续关注我的头条号:有点热。如有疑问,欢迎留言咨询。我一看到就回复你。也欢迎收藏转发。如果你需要转载到其他网站,请联系我,yeehot.com。如果您有任何意见或想法,请在下方留言。