易信/微信公众平台查快递 使用方法,编辑以下内容发送至公众平台即可: 如(查询易客满单号为APELAX1040039963的快递 ecmsAPELAX1040039963或者易客(易客满)APELAX1040039963【快递公司名和快递编号间要有个空格】 注:本项目使用到kuaidi100的API; 另外那个美
易信 / 微信 公众平台 查快递
<?php
/**
* 公众平台基础类 For Fshare
* @author: Skiychan
* @created: 2013.11.19
* @modified: 2015.01.03
*/
class BaseClass
{
/*
public $token = '';
public function __construct($token){
$this->token = $token;
}
//判断是否来自微信服务器
public function valid(){
$echoStr = $_GET["echostr"];
if($this->checkSignature()){
echo $echoStr;
exit;
}
}
*/
private $toUsername;
private $fromUsername;
private $createTime;
private $msgId;
private $msgType;
private $time;
private $content;
private $postStr;
public function responseMsg()
{
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
$this->postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$this->toUsername = $this->postObj->ToUserName;
$this->fromUsername = $this->postObj->FromUserName;
$this->createTime = $this->postObj->CreateTime;
$this->msgId = $this->postObj->MsgId;
$this->msgType = $this->postObj->MsgType;
$this->time = time();
$resultStr = "error";
if (!empty($postStr)) {
$resultStr = $this->get_text();
}
echo $resultStr;
}
//接收到文本
public function get_text()
{
$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[%s]]></MsgType>
<Content><![CDATA[%s]]></Content>
</xml>";
if ($this->msgType != "text") {
$content = "快递信息输入错误。";
} else {
$this->content = $this->postObj->Content;
$this->content = preg_replace("/(\s{2,})/", " ", $this->content);
$content_list = explode(" ", $this->content);
if (count($content_list) == 2) {
include_once "get_companies.php";
$company = new company();
$company_infos = $company::get_companies_info($content_list[0]);
//如果快递100不支持此快递则diy
if(count($company_infos) == 0) {
$is_diy = true;
$company::$companies = include_once 'fetch/add_companies.php';
$company_infos = $company::get_companies_info($content_list[0]);
}
$num = $content_list[1];
$code = $company_infos[0]['code']; //获取英文代码
$com = $company_infos[0]['company']; //获取公司名称
$numinfo = "快递:" . $com . "\n" . "单号:" . $num . "\n";
if(!$is_diy) {
$kd_url = "http://m.kuaidi100.com/query?type=" . $code . "&postid=" . $num;
} else {
$kd_url = dirname('http://'.$_SERVER['SERVER_NAME'].$_SERVER["REQUEST_URI"]).'/fetch/index.php?code='.$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 = '';
$detail = "\n<a href='http://api.oupag.com/developer/kuaidi/getdata.php?code=" . $code . "&num=" . $num . "'>点击查看详情</a>";
//物流倒序详情
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 . ">没有物流数据!".$kd_url;
}
$contentStr .= $detail;
} else {
$contentStr = "格式错误,正确格式如下:\n快递公司名称 快递单号";
}
}
$resultStr = sprintf($textTpl,
$this->fromUsername,
$this->toUsername,
$this->time,
"text",
$contentStr);
return $resultStr;
}
//判断签名,返回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;
}
}
}
<?php
/**
* 快递公司的class
* @author: Skiychan.
* @created: 1/3/15
* @modified:
*/
class company
{
public static $file_name = "company_lists.php";
public static $companies;
public function __construct()
{
self::$companies = $this->get_companies();
}
/*
* return array companies infos
*/
public static function get_companies()
{
return include_once self::$file_name;
}
/*
* 通过编码取得公司名
* @param string $code 编码
* return string 公司名
*/
public static function get_company_name($code)
{
foreach (self::$companies as $keys => $values) {
if ($values['code'] == $code) {
return $values['company'];
}
}
return;
}
/*
* 通过公司名取得编码
* $param string $name 公司名
* return string 编码
*/
public static function get_company_code($name)
{
foreach (self::$companies as $keys => $values) {
if ($values['name'] == $name) {
return $values['code'];
}
}
return;
}
/*
* 通过快递公司名或者编码取得完整编码 模糊查找全部
* $param string $input 公司名
* return array 编码和公司名
*/
public static function get_companies_info($input)
{
$lists = array();
foreach (self::$companies as $keys => $values) {
if (mb_stristr($values['company'], $input)) {
unset($values['id']);
$lists[] = $values;
}
}
//如果通过名称取不到值则通过键名
if (count($lists) == 0) {
foreach (self::$companies as $keys => $values) {
if (mb_stristr($values['code'], $input)) {
unset($values['id']);
$lists[] = $values;
}
}
}
return $lists;
}
/*
* 不需要类型直接取得编码和公司名
* @param string 编码或者公司名
* return array 编码和公司名
*/
public static function get_company_info($input)
{
foreach (self::$companies as $keys => $values) {
if (in_array($input, $values)) {
unset($values["id"]);
return $values;
}
}
return;
}
}
<?php
/**
* ecms.php
* 易客满(美国亚马逊发中国专用快递)
* @author: Skiychan<developer@zzzzy.com>
* @created: 1/6/15 21:15
* @modified:
*/
//lang={cn / en}
//https://www.ecmsglobal.com/oms/showtracking?trackingno=APELAX1040039963&lang=cn
//
$lang = "cn";
$postid = isset($_GET['postid']) ? $_GET['postid'] : 0;
$kd_url = "https://www.ecmsglobal.com/oms/showtracking?trackingno={$postid}&lang={$lang}";
$page_info = file_get_contents($kd_url);
//$page_info = file_get_contents("a.html");
$page_dom = "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>".$page_info;
$xmldoc = new DOMDocument();
@$xmldoc->loadHTML($page_dom);
$xmldoc->normalizeDocument();
$page_xml= new Domxpath($xmldoc);
$event_date = $page_xml->query('//div[@class="order"]//ul//div[@class="column event_date"]');
$event_where = $page_xml->query('//div[@class="order"]//ul//div[@class="column event_where"]');
$event_desc = $page_xml->query('//div[@class="order"]//ul//div[@class="column event_desc"]');
$thisinfo = array();
$add_infos = array();
foreach ($event_date as $keys => $values) {
$location = $event_where->item($keys)->textContent;
$context = $event_desc->item($keys)->textContent;
$thisinfo[] = array(
'time' => $values->textContent,
'location' => $location,
'context' => $location.",\n".$context,
);
}
if (count($thisinfo) > 0) {
$add_infos = array(
'message' => "ok",
'nu' => $postid,
'companytype' => "ecms",
'ischeck' => "1",
'com' => "ecms",
'updatetime' => $event_date->item(0)->textContent,
'status' => "200",
'codenumber' => $postid,
'data' => $thisinfo
);
}
return $add_infos;

微信是一款手机通信软件,支持通过手机网络发送语音短信、视频、图片和文字。微信可以单聊及群聊,还能根据地理位置找到附近的人,带给大家全新的移动沟通体验,有需要的小伙伴快来保存下载体验吧!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号