接入微信"大众年夜众号,那么一定须要开通微信"大众年夜众号,并且也打开了开拓者模式,那么我这里就不做详细的先容,详细可以在微信"大众号平台上面查看文档了。
根据微信的开拓文档,我们要接入微信"大众号的回答须要做到以下三个步骤
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,如果有什么见地或者想法欢迎不才方留言