本文实例讲述了微信公众平台之快递查询功能用法。分享给大家供大家参考。具体如下:
使用方法:
#查快递(或三个首字母ckd)#快递编号#快递单号
如(查询EMS单号为1034616494006的快递):
#ckd#15#1034616494006
常用快递编号:<br />
15EMS,56申通,57顺丰,77圆通,
80韵达,87中通,85宅急送,62天天
1. class.base.php文件:
<"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 = "/^\#([\W\w]*"; //0为功能,1为选项,2为余下的值
//$preg = "/\#([\w]+)/"; //0为功能,1为选项,2为余下的值
$preg = "/\#([\w\d\x{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是1005043848\n微信是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']."\n\r";
$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".$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']."\n\n"; //查询时间
$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;
}
}
}
2. index.php文件:
<?php
/**
*
* 微信公众平台消息接口 For Fshare(分享资讯)
* @author: Skiychan (Wechat:forskiy)
* @created:2013.11.19
*
*/
include_once 'class.base.php';
define('TOKEN', 'skiychan');
$wx = new Wechat();
//$wx->valid();
$wx->responseMsg();
希望本文所述对大家的php程序设计有所帮助。
标签:
微信公众平台,快递查询
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
桃源资源网 Design By www.nqtax.com
暂无“微信公众平台之快递查询功能用法实例”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。