php微信公眾號開發之快遞查詢
阿新 • • 發佈:2018-12-23
mysq read 學習課程 商家 con 零基礎入門 fun app後端 事件
快遞查詢
- 數組用法
- foreach
查詢接口是:愛快遞:https://www.aikuaidi.cn/api/
核心代碼如下:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
$postObj = simplexml_load_string( $postStr , ‘SimpleXMLElement‘ , LIBXML_NOCDATA);
$fromUsername = $postObj ->FromUserName;
$toUsername = $postObj ->ToUserName;
$type = $postObj ->MsgType;
$customrevent = $postObj ->Event;
$latitude = $postObj ->Location_X;
$longitude = $postObj ->Location_Y;
$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>";
switch ( $type )
{
case "text" ;
$status = array ( ‘0‘ => ‘查詢出錯‘ , ‘1‘ => ‘暫無記錄‘ , ‘2‘ => ‘在途中‘ , ‘3‘ => ‘派送中‘ , ‘4‘ => ‘已簽收‘ , ‘5‘ => ‘拒收‘ , ‘6‘ => ‘疑難件‘ , ‘7‘ => ‘退回‘ ); //構建快遞狀態數組
$kuaidiurl = "http://www.aikuaidi.cn/rest/?key=ff4735a30a7a4e5a8637146fd0e7cec9&order={$keyword}&id=shentong&show=xml" ;//快遞地址
$kuaidistr = file_get_contents ( $kuaidiurl ); //讀入文件
$kuaidiobj =simplexml_load_string( $kuaidistr ); //xml解析
$kuaidistatus = $kuaidiobj ->Status; //獲取快遞狀態
$kuaistr = strval ( $kuaidistatus ); //對象轉換為字符串
$contentStr0 = $status [ $kuaistr ]; //根據數組返回
foreach ( $kuaidiobj ->Data->Order as $a )
{
foreach ( $a ->Time as $b )
{
foreach ( $a ->Content as $c )
{
$m .= "{$b}{$c}" ;}
}
}
//遍歷獲取快遞時間和事件
$contentStr = "你的快遞單號{$keyword}{$contentStr0}{$m}" ;
break ;
default ;
$contentStr = "此項功能尚未開發" ;
}
$msgType = "text" ;
$resultStr = sprintf( $textTpl , $fromUsername , $toUsername , $time , $msgType , $contentStr );
echo $resultStr ;
|
index.php整體代碼如下:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
<?php
/**
* wechat php test
*/
//define your token
define( "TOKEN" , "weixin" );
$wechatObj = new wechatCallbackapiTest();
//$wechatObj->valid();
$wechatObj ->responseMsg();
class wechatCallbackapiTest
{
public function valid()
{
$echoStr = $_GET [ "echostr" ];
//valid signature , option
if ( $this ->checkSignature()){
echo $echoStr ;
exit ;
}
}
public function responseMsg()
{
//get post data, May be due to the different environments
$postStr = $GLOBALS [ "HTTP_RAW_POST_DATA" ];
//extract post data
if (! empty ( $postStr )){
$postObj = simplexml_load_string( $postStr , ‘SimpleXMLElement‘ , LIBXML_NOCDATA);
$fromUsername = $postObj ->FromUserName;
$toUsername = $postObj ->ToUserName;
$type = $postObj ->MsgType;
$customrevent = $postObj ->Event;
$latitude = $postObj ->Location_X;
$longitude = $postObj ->Location_Y;
$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>";
switch ( $type )
{
case "text" ;
$status = array ( ‘0‘ => ‘查詢出錯‘ , ‘1‘ => ‘暫無記錄‘ , ‘2‘ => ‘在途中‘ , ‘3‘ => ‘派送中‘ , ‘4‘ => ‘已簽收‘ , ‘5‘ => ‘拒收‘ , ‘6‘ => ‘疑難件‘ , ‘7‘ => ‘退回‘ ); //構建快遞狀態數組
$kuaidiurl = "http://www.aikuaidi.cn/rest/?key=ff4735a30a7a4e5a8637146fd0e7cec9&order={$keyword}&id=shentong&show=xml" ;//快遞地址
$kuaidistr = file_get_contents ( $kuaidiurl ); //讀入文件
$kuaidiobj =simplexml_load_string( $kuaidistr ); //xml解析
$kuaidistatus = $kuaidiobj ->Status; //獲取快遞狀態
$kuaistr = strval ( $kuaidistatus ); //對象轉換為字符串
$contentStr0 = $status [ $kuaistr ]; //根據數組返回
foreach ( $kuaidiobj ->Data->Order as $a )
{
foreach ( $a ->Time as $b )
{
foreach ( $a ->Content as $c )
{
$m .= "{$b}{$c}" ;}
}
}
//遍歷獲取快遞時間和事件
$contentStr = "你的快遞單號{$keyword}{$contentStr0}{$m}" ;
break ;
default ;
$contentStr = "此項功能尚未開發" ;
}
$msgType = "text" ;
$resultStr = sprintf( $textTpl , $fromUsername , $toUsername , $time , $msgType , $contentStr );
echo $resultStr ;
} else {
echo "" ;
exit ;
}
}
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;
}
}
}
?>
|
2017最新 手把手PHP基礎入門到實戰構建原生商城 | ||
---|---|---|
2017挑戰高薪面試無憂最新最系統的PHP面試視頻教程 | ||
2017 PHP高級實戰小程序商城 | ||
360大牛全面解讀PHP面試–某課網價值266元實戰教程 | ||
打造扛得住的MySQL數據庫架構 MySQL優化實戰案例教學 換個視角學習MySQL數據庫 | ||
WORDPRESS拼音鏈接插件:PINYIN PERMALINK(中文鏈接轉拼音) | ||
WORDPRESS標題別名自動翻譯插件:WP SLUG TRANSLATE | ||
尚矽谷Redis NoSQL最佳入門課程 Redis極速入門視頻教程 Redis NoSQL培訓視頻教程 | ||
兄弟連NoSQL數據庫之 Redis數據庫管理與基礎課程 Redis數據庫零基礎入門學習課程 | ||
童老師ThinkPHP5.0企業項目開發實戰 第二季 | ||
Laravel大神推薦-基礎入門+實戰+拓展視頻教程 | ||
2017 最新 Laravel5.4實戰快速開發自媒體網站 ...2 | ||
PHP開發高可用高安全App後端 | ||
PHP WEB開發框架:Laravel 4 快速上手系列教程 Laravel 4簡單輕松入門視頻教程 | ||
Laravel 5.4 快速開發簡書-某課網價值199元實戰教程 | ||
Thinkphp 5.0 仿百度糯米開發多商家電商平臺-某課網價值189元實戰教程 | ||
Yii 2.0開發一個仿京東商城平臺-某課網價值268元實戰教程 | ||
2017最新全方位解讀Laravel框架 | ||
PHP在職提升必備之設計模式精講 | ||
Drupal7系列培訓入門到精通視頻教程 開源內容管理框架Drupal7入門學習視頻教程 |
php微信公眾號開發之快遞查詢