php微信公众号开发之快递查询
2024-08-30 17:55:19
【文章来源:脚本之家 文章地址:https://www.jb51.net/article/149205.htm】
本文实例为大家分享了php微信公众号开发之快递查询的具体代码,供大家参考,具体内容如下
快递查询
- 数组用法
- 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; } } } ?> |
以上就是本文的全部内容,希望对大家的学习有所帮助
最新文章
- Session 潜在bug防范
- Json字符串和Json对象的简单总结
- LBS上传到百度地图
- struts2-通配符映射(基本没啥卵用)和动态调用
- Unity3D之实现背景的无限重复生成
- CXF WebService 开发文档
- lintcode :同构字符串
- 【SSSP】A forward-backward single-source paths algorithm
- C语言怎么计算程序所花时间
- Aix项目_shell_rsh_01
- HTML语义化标签(二)
- 安全的PHP代码编写准则
- Swift学习笔记7:关闭
- [js高手之路] html5 canvas动画教程 - 实时获取鼠标的当前坐标
- brew本地安装包
- Python实现RSA无填充加密,兼容BouncyCastle
- 论文笔记:Deep feature learning with relative distance comparison for person re-identification
- ok6410如何从sdram中启动uboot 调试 这是一个猜想还没有验证
- $Django 虚拟环境,2.0、1.0路由层区别,Httprequest对象,视图层(fbv,cbv),文件上传
- 学习windows编程 day3 之滚动条完善
热门文章
- hdu1068 Girls and Boys 匈牙利算法(邻接表)
- JSP | 基础 | JSP行为 | incline &;&; forward
- SAE上无法加载css等文件
- Query on a tree again! SPOJ - QTREE3
- vue文件中style标签的几个标识符
- canvas绘图出现模糊,解决方法
- 关于setTimeout和Promise执行顺序问题
- js dom node.children与node.childNodes区别
- 使用vbScript 链接SQLserver数据库和基础操作
- SqlSessionFactory