php微信公众号开发之快递查询
本文实例为大家分享了php微信公众号开发之快递查询的具体代码,供大家参考,具体内容如下
快递查询
- 数组用法
- foreach
查询接口是:爱快递:https://www.aikuaidi.cn/api/
核心代码如下:
$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=""; 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->Orderas$a) { foreach($a->Timeas$b) { foreach($a->Contentas$c) { $m.="{$b}{$c}";} } } //遍历获取快递时间和事件 $contentStr="你的快递单号{$keyword}{$contentStr0}{$m}"; break; default; $contentStr="此项功能尚未开发"; } $msgType="text"; $resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr); echo$resultStr; %s 0
index.php整体代码如下:
valid(); $wechatObj->responseMsg(); classwechatCallbackapiTest { publicfunctionvalid() { $echoStr=$_GET["echostr"]; //validsignature,option if($this->checkSignature()){ echo$echoStr; exit; } } publicfunctionresponseMsg() { //getpostdata,Maybeduetothedifferentenvironments $postStr=$GLOBALS["HTTP_RAW_POST_DATA"]; //extractpostdata 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=""; 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->Orderas$a) { foreach($a->Timeas$b) { foreach($a->Contentas$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; } } privatefunctioncheckSignature() { $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){ returntrue; }else{ returnfalse; } } } ?> %s 0
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。