A5下载 - 努力做内容最丰富最安全的下载站!

A5站长下载站

当前位置:A5下载 > 编程开发 > 网站开发 > 微信公众平台之快递查询功能用法实例

微信公众平台之快递查询功能用法实例

时间:2015-04-14 17:26作者:小赵人气:328

本文实例讲述了微信公众平台之快递查询功能用法。分享给大家供大家参考。具体如下:

使用方法:

#查快递(或三个首字母ckd)#快递编号#快递单号

如(查询EMS单号为1034616494006的快递):

#ckd#15#1034616494006

常用快递编号:<br />

15EMS,56申通,57顺丰,77圆通,

80韵达,87中通,85宅急送,62天天

1. class.base.php文件:

 <?php

/**

* 微信公众平台基础类 For Fshare

* @author: Skiychan

* @created: 2013.11.19

*/

class Wechat{

// public $token = '';

/* public function __construct($token){

$this->token = $token;

} */

//判断是否来自微信服务器

/* public function valid(){

$echoStr = $_GET["echostr"];

if($this->checkSignature()){

echo $echoStr;

exit;

}

}

*/

public function responseMsg(){

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

if (!empty($postStr)){

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);

$fromUsername = $postObj->FromUserName;

$toUsername = $postObj->ToUserName;

$keyword = trim($postObj->Content);

$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>";

if(!empty($keyword)){

//当输入文字类型

if($msgType = "text"){

//$contentStr = $keyword.$fromUsername.$time;

//$preg = "/^#([Ww]*?)#([Ww]*?)#(.*)/"; //0为功能,1为选项,2为余下的值

//$preg = "/#([w]+)/"; //0为功能,1为选项,2为余下的值

$preg = "/#([wdx{4e00}-x{9fa5}]+)/u"; //0为功能,1为选项,2为余下的值

preg_match_all($preg,$keyword,$newdata);

$fn_name = $newdata[1][0];

//获取快递的参数

if(strtolower($fn_name)=="skiy"){

$me = "我是此公众帐号的开发者,英文名Skiy。n如果你对本功能有任何意见和建议,欢迎联系我,n我的QQ是1005043848n微信是forskiy,邮箱:ndeveloper@zzzzy.com";

$contentStr = $me;

}

//获取快递的参数

if($fn_name=="快递"||strtolower($fn_name)=="kuaidi"){

$kdlist = '';

//启用PDO连接sqlite的方式

$db = new PDO("sqlite:somedata/data.dat");

$results = $db->query('SELECT * FROM kuaidi')->fetchAll();

foreach ($results as $key=>$row) {

//var_dump($row);

//$list_one = $row['id']." ".$row['code']." ".$row['company']."n";

$list_one = $row['id'].' '.$row['company']."n";

$kdlist = $kdlist.$list_one;

}

//主机支持sqlite3的方式

/* $db = new SQLite3("somedata/data.dat");

$results = $db->query('SELECT * FROM kuaidi');

while ($row = $results->fetchArray()) {

//var_dump($row);

$list_one = $row['id']." ".$row['code']." ".$row['company']."nr";

$kdlist = $kdlist.$list_one;

} */

$contentStr = $kdlist;

}

if($fn_name=="查快递"||strtolower($fn_name)=="ckd"){

$id = $newdata[1][1];

$num = $newdata[1][2];

$db = new PDO("sqlite:somedata/data.dat");

$results = $db->query('SELECT code,company FROM kuaidi WHERE id = '.$id)->fetchAll();

$code = $results[0]['code']; //获取英文代码

$com = $results[0]['company']; //获取公司名称

$numinfo = "快递:".$com."n"."单号:".$num."n";

$kd_url = "http://m.kuaidi100.com/query?type=".$code."&postid=".$num;

$json_getdata = file_get_contents($kd_url);

$get_kdinfo = json_decode($json_getdata); //object

$get_kdinfo = json_decode($json_getdata,true); //array

$last_t = "查询时间:n".$get_kdinfo['updatetime']."nn"; //查询时间

$kd_shipinfo = $get_kdinfo['data']; //快递数据数组

$kd_total = count($kd_shipinfo)-1;

$ship = '';

//物流倒序详情

for($i = $kd_total;$i>=0;$i--){

$shipinfo = $kd_shipinfo[$i]['time']."n".$kd_shipinfo[$i]['context']."n";

$ship = $shipinfo.$ship;

}

//顺序物流详情

/*foreach ($kd_shipinfo as $v){

$shipinfo = $v['time']."n".$v['context']."n";

$ship = $shipinfo.$ship;

}

*/

$get_kdinfo = $numinfo.$last_t."【物流详情】n".$ship;

if($ship){

$contentStr = $get_kdinfo;

}else{

$contentStr = $numinfo.">没有物流数据!";

}

}

$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);

echo $resultStr;

}else{

echo "Input something...";

}

}

}else {

echo "You have no enter something...";

exit;

}

}

//判断签名,返回bool

private function checkSignature(){

$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 ){

return true;

}else{

return false;

}

}

}

index.php文件:

<?php

/**

*

*微信公众平台消息接口ForFshare(分享资讯)

*@author:Skiychan(Wechat:forskiy)

*@created:2013.11.19

*

*/

include_once'class.base.php';

define('TOKEN','skiychan');

$wx=newWechat();

//$wx->valid();

$wx->responseMsg();

标签微信,公众,平台,快递,查询功能,用法,实例,本文,实例,讲

相关下载

查看所有评论+

网友评论

网友
您的评论需要经过审核才能显示

公众号