快速开发淘宝客系统-利用现有的数据接入微信公众号
上一节中,我们利用大淘客的API查询商铺的详情数据,里面的数据也不是很完善,有些新产品我们还是会查询不到,所以我们需要对它进行修改,我们这一节就暂时就放一放,我们留到下一节讲解这个详情如何修改,我们今天要说的如何是在这个淘宝客系统接入我们的微信公众号,实现一个产品查询的功能,比如我们输入衣架就出现产品的信息数据。具体效果如下:
接入微信公众号,那么一定需要开通微信公众号,并且也打开了开发者模式,那么我这里就不做详细的介绍,具体可以在微信公众号平台上面查看文档了。
根据微信的开发文档,我们要接入微信公众号的回复需要做到以下三个步骤
1、填写服务器配置
2、验证服务器地址的有效性
3、依据接口文档实现业务逻辑
我们直接跳过申请公众号的步骤,然后看看如何验证服务器,在微信公众号平台后台,找到开发的基本配置,如下图:
然后,我们需要在我们的服务器填入一个验证服务器的PHP文件,我这里填写了
http://www.yeehot.com/DaoGou/weixin.php,关于这个文件,等下我回讲解如何实现。
这里的token我们可以填入我们自己的一个数据,类似密码一样。
上面我们有个weixin.php文件,我们这个文件需要放到我们外网的服务器进行验证的。
那么里面有哪些信息,主要就是验证信息以及回复信息
首先,我们说一下验证信息的文件.同样根据微信的文档的说明,验证微信服务器发生的数据算法主要如下:
1)将token、timestamp、nonce三个参数进行字典序排序
2)将三个参数字符串拼接成一个字符串进行sha1加密
3)开发者获得加密后的字符串可与signature对比,标识该请求来源于微信
那么我们可以写一个这样的校验函数。注意这里我们需要用到我们刚刚在微信后台填写的token。
private function checkSignature()
{
$signature= $_GET["signature"];
$timestamp= $_GET["timestamp"];
$nonce= $_GET["nonce"];
$token="wx111111";
$signinfo = array();
$signinfo = array($timestamp,$nonce , $token);
sort($signinfo);
$result = sha1( implode($signinfo) );
if( $result == $signature ){
return true;
}else{
return false;
}
}
此外,我们知道微信根据客户端的请求而会发送很多数据到我们的服务器,然而发送验证数据是会带上echostr这个字段,那么我们可以对这个字段进行判断,判断是验证信息还是其他的信息。
刚刚有了这个校验函数后,我们就可以校验了,但是为了让我们的代码可以更加有重用性,我们写了一个类,注意就是用于验证。代码如下:
class weixin{
public function checkWeixinInfo(){
$echostr=$_GET["echostr"];
if($this->checkSignature()){
echo $echostr;
exit;
}
}
private function checkSignature()
{
$signature= $_GET["signature"];
$timestamp= $_GET["timestamp"];
$nonce= $_GET["nonce"];
$token="111";
$signinfo = array();
$signinfo = array($timestamp,$nonce , $token);
sort($signinfo);
$result = sha1( implode($signinfo) );
if( $result == $signature ){
return true;
}else{
return false;
}
}
}
刚刚我们说到微信会根据客户端的不同请求而发送不同的数据到我们的服务器,那么我们可以根据相应的逻辑而做出处理从而提取到我们的消息内容。
这里我们根据echostr有这个参数而做出不同的处理,如果不是的话我们就判断是接受其他消息。
我们知道微信发送的消息都是XML格式的,所以我们将POST的原始数据进行处理,例如下面
$infoobj=simplexml_load_string($data,'SimpleXMLElement',LIBXML_NOCDATA);
然后我们可以进行数据的处理了,对于收消息我们可以看一下这里文档
https://mp.weixin.qq.com/wiki/10/79502792eef98d6e0c6e1739da387346.html
首先我们判断一下数据的类型
$msg_type=trim($infoobj->MsgType);
我们由于是根据用户输入的文本内容来查询数据的,所以我们可以判断$msg_type为text类型就可以了
,然后我们就可以提起用户的内容,这个作为我们查询商品的关键词,然后进行数据库操作。部分代码如下:
case "text":
{
$content=array();
$keyword=trim($infoobj->Content);
$res1 = mysql_query("select * from yeehot_taobaoke_product where name like '%$keyword%' order by shopid asc limit 0,7");
while ($row1 = mysql_fetch_array($res1)) {
$content[]=array("Title"=>$row1['name'],"Description"=>"销售价格:".$row1['price'], "PicUrl"=>$row1['image'], "Url" =>$row1['tbk_link']);
}
完成上面的操作,我们需要回复内容给用户。那么我们也需要看一下回复内容,可以看微信文档发送的内容。
https://mp.weixin.qq.com/wiki/14/89b871b5466b19b3efa4ada8e577d45e.html
我们回复的是图文,格式如下:
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<ArticleCount>2</ArticleCount>
<Articles>
<item>
<Title><![CDATA[title1]]></Title>
<Description><![CDATA[description1]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
<item>
<Title><![CDATA[title]]></Title>
<Description><![CDATA[description]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
</Articles>
</xml>
那么我们可以根据刚刚数据库查询的数据进行处理
$info1= "<item>
<Title><![CDATA[%s]]></Title>
<Description><![CDATA[%s]]></Description>
<PicUrl><![CDATA[%s]]></PicUrl>
<Url><![CDATA[%s]]></Url>
</item>
";
$info_str="";
foreach ($content as $item){
$info_str.= sprintf($info1, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);
}
$responsTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[news]]></MsgType>
<Content><![CDATA[]]></Content>
<ArticleCount>%s</ArticleCount>
<Articles>
%s
</Articles>
</xml>";
$result =sprintf($responsTpl, $infoobj->FromUserName, $infoobj->ToUserName, time()."", count($content)."",$info_str);
然后我们将这些结果输出给微信服务器就可以了。
我们今天就实现了微信公众号的接入了,我也把最新的功能放上网站供大家测试了,同时也可以关注我的公众号,可以登录我的网站http://www.yeehot.com/右方有微信二维码。
同时也把源码放上去了,欢迎下载学习了,点击源码下载,同时点击微信源码这个文件,把文件放到我们原来的淘宝客系统就可以了
欢迎继续关注我的头条号:一点热,如果有什么问题,欢迎留言咨询,我看到之后会第一时间回复大家的。也欢迎收藏与转发,如果需要转载到其他网站,请与我联系,yeehot.com,如果有什么意见或者想法欢迎在下方留言
版权声明:
作者: freeclashnode
链接: https://www.freeclashnode.com/news/article-1165.htm
来源: FreeClashNode
文章版权归作者所有,未经允许请勿转载。
热门文章
- 8月20日|21.5M/S,V2ray/Clash/Shadowrocket/SSR免费节点订阅链接每天更新
- 9月1日|21M/S,Shadowrocket/SSR/V2ray/Clash免费节点订阅链接每天更新
- 8月31日|20.3M/S,V2ray/Shadowrocket/SSR/Clash免费节点订阅链接每天更新
- 8月30日|22.8M/S,SSR/Clash/Shadowrocket/V2ray免费节点订阅链接每天更新
- 8月29日|22.2M/S,V2ray/Clash/SSR/Shadowrocket免费节点订阅链接每天更新
- 8月24日|19.3M/S,Shadowrocket/V2ray/Clash/SSR免费节点订阅链接每天更新
- 8月19日|18.3M/S,Shadowrocket/SSR/V2ray/Clash免费节点订阅链接每天更新
- 8月28日|20.4M/S,SSR/Clash/Shadowrocket/V2ray免费节点订阅链接每天更新
- 9月2日|21.4M/S,SSR/Shadowrocket/Clash/V2ray免费节点订阅链接每天更新
- 9月15日|20.4M/S,Shadowrocket/V2ray/SSR/Clash免费节点订阅链接每天更新
最新文章
- 9月17日|21.6M/S,SSR/Shadowrocket/V2ray/Clash免费节点订阅链接每天更新
- 9月16日|18M/S,SSR/Shadowrocket/Clash/V2ray免费节点订阅链接每天更新
- 9月15日|20.4M/S,Shadowrocket/V2ray/SSR/Clash免费节点订阅链接每天更新
- 9月14日|20M/S,Shadowrocket/SSR/Clash/V2ray免费节点订阅链接每天更新
- 9月13日|22.3M/S,Shadowrocket/V2ray/Clash/SSR免费节点订阅链接每天更新
- 9月12日|22.9M/S,Clash/V2ray/Shadowrocket/SSR免费节点订阅链接每天更新
- 9月11日|20.4M/S,Shadowrocket/Clash/SSR/V2ray免费节点订阅链接每天更新
- 9月10日|21.9M/S,V2ray/SSR/Clash/Shadowrocket免费节点订阅链接每天更新
- 9月9日|22.9M/S,V2ray/SSR/Clash/Shadowrocket免费节点订阅链接每天更新
- 9月8日|21.7M/S,Shadowrocket/Clash/SSR/V2ray免费节点订阅链接每天更新