149 lines
5.1 KiB
PHP
Executable File
149 lines
5.1 KiB
PHP
Executable File
<?php
|
||
namespace addons\kuaidi\model;
|
||
use think\addons\BaseModel as Base;
|
||
use think\Db;
|
||
/**
|
||
* ============================================================================
|
||
* 快递查询业务处理
|
||
*/
|
||
class Kuaidi extends Base{
|
||
|
||
/**
|
||
* 绑定勾子
|
||
*/
|
||
public function install(){
|
||
Db::startTrans();
|
||
try{
|
||
$hooks = array("adminDocumentOrderView","homeDocumentOrderView","afterQueryUserOrders","mobileDocumentOrderList","wechatDocumentOrderList");
|
||
$this->bindHoods("Kuaidi", $hooks);
|
||
|
||
Db::commit();
|
||
return true;
|
||
}catch (\Exception $e) {
|
||
Db::rollback();
|
||
return false;
|
||
}
|
||
}
|
||
|
||
/**
|
||
* 解绑勾子
|
||
*/
|
||
public function uninstall(){
|
||
Db::startTrans();
|
||
try{
|
||
$hooks = array("adminDocumentOrderView","homeDocumentOrderView","afterQueryUserOrders","mobileDocumentOrderList","wechatDocumentOrderList");
|
||
$this->unbindHoods("Kuaidi", $hooks);
|
||
|
||
Db::commit();
|
||
return true;
|
||
}catch (\Exception $e) {
|
||
Db::rollback();
|
||
return false;
|
||
}
|
||
}
|
||
|
||
public function getExpress($orderId){
|
||
$conf = $this->getConf("Kuaidi");
|
||
$express = Db::name('orders')->where(["orderId"=>$orderId])->field(['expressId','expressNo'])->find();
|
||
return $express;
|
||
}
|
||
|
||
public function getOrderExpress($orderId){
|
||
$conf = $this->getConf("Kuaidi");
|
||
$express = Db::name('orders')->where(["orderId"=>$orderId])->field(['expressId','expressNo'])->find();
|
||
|
||
if($express["expressId"]>0){
|
||
$expressId = $express["expressId"];
|
||
$row = Db::name('express')->where(["expressId"=>$expressId])->find();
|
||
$typeCom = strtolower($row["expressCode"]); //快递公司
|
||
$typeNu = $express["expressNo"]; //快递单号
|
||
|
||
$appKey= $conf["kuaidiKey"];
|
||
|
||
$expressLogs = null;
|
||
$post_data['param'] = json_encode(['com'=>$typeCom,'num'=>$typeNu]);
|
||
$key ='jMIRnHZa5264';
|
||
$post_data['customer'] ='466DC9B2C8C2CA140FFB2E6FAFE705DF';
|
||
$post_data['sign']= strtoupper(md5($post_data['param'].$key.$post_data['customer']));
|
||
|
||
|
||
$expressLogs = $this->curl_request('http://poll.kuaidi100.com/poll/query.do',$post_data);
|
||
|
||
//$url ='http://api.kuaidi100.com/api?id='.$appKey.'&com='.$typeCom.'&nu='.$typeNu.'&show=0&muti=1&order=asc';
|
||
//$companys = array('ems','shentong','yuantong','shunfeng','yunda','tiantian','zhongtong','zengyisudi');
|
||
// if(in_array($typeCom,$companys)){
|
||
// $url = 'http://www.kuaidi100.com/query?type=' . $typeCom . '&postid=' . $typeNu;
|
||
// }else{
|
||
// $url ='http://api.kuaidi100.com/api?id='.$appKey.'&com='.$typeCom.'&nu='.$typeNu.'&show=0&muti=1&order=asc';
|
||
// }
|
||
//$expressLogs = $this -> curl($url);
|
||
return $expressLogs;
|
||
}
|
||
|
||
}
|
||
//参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$cookies,参数4:是否返回$cookies
|
||
function curl_request($url,$post='',$cookie='', $returnCookie=0){
|
||
$curl = curl_init();
|
||
curl_setopt($curl, CURLOPT_URL, $url);
|
||
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');
|
||
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
|
||
curl_setopt($curl, CURLOPT_AUTOREFERER, 1);
|
||
curl_setopt($curl, CURLOPT_REFERER, "http://XXX");
|
||
if($post) {
|
||
curl_setopt($curl, CURLOPT_POST, 1);
|
||
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));
|
||
}
|
||
if($cookie) {
|
||
curl_setopt($curl, CURLOPT_COOKIE, $cookie);
|
||
}
|
||
curl_setopt($curl, CURLOPT_HEADER, $returnCookie);
|
||
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
|
||
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
|
||
$data = curl_exec($curl);
|
||
if (curl_errno($curl)) {
|
||
return curl_error($curl);
|
||
}
|
||
curl_close($curl);
|
||
if($returnCookie){
|
||
list($header, $body) = explode("\r\n\r\n", $data, 2);
|
||
preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);
|
||
$info['cookie'] = substr($matches[1][0], 1);
|
||
$info['content'] = $body;
|
||
return $info;
|
||
}else{
|
||
return $data;
|
||
}
|
||
}
|
||
public function getOrderInfo($orderId = 0){//添加可传订单号方法 mark hsf 20171130
|
||
$data = array();
|
||
if(!$orderId){
|
||
$orderId = input("orderId");
|
||
}
|
||
$data["express"] = Db::name('orders o')->join('__EXPRESS__ e', 'o.expressId=e.expressId')->where(["orderId"=>$orderId])->field(['e.expressId','e.expressImg','o.expressNo','e.expressName'])->find();
|
||
$data["express"]['expressImg'] = WSTImg($data["express"]['expressImg'],3);
|
||
$data["goodsImg"] = Db::name('orders o')->join('__ORDER_GOODS__ og','o.orderId=og.orderId')->where(["o.orderId"=>$orderId])->value('og.goodsImg');//这个只返回一个数据
|
||
return $data;
|
||
}
|
||
|
||
public function curl($url) {
|
||
$curl = curl_init();
|
||
curl_setopt ($curl, CURLOPT_URL, $url);
|
||
curl_setopt ($curl, CURLOPT_HEADER,0);
|
||
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
|
||
curl_setopt ($curl, CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);
|
||
curl_setopt ($curl, CURLOPT_TIMEOUT,5);
|
||
$content = curl_exec($curl);
|
||
curl_close ($curl);
|
||
return $content;
|
||
}
|
||
|
||
|
||
public function getOrderDeliver($orderId){
|
||
$rs = Db::name('orders o')->where(["orderId"=>$orderId])->field("deliverType,orderStatus,expressNo")->find();
|
||
return $rs;
|
||
}
|
||
|
||
|
||
|
||
}
|