feat: init project codebase
This commit is contained in:
@@ -0,0 +1,474 @@
|
||||
<?php
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
require "vendor/zto/zopsdk-php/ZopClient.php";
|
||||
require "vendor/zto/zopsdk-php/ZopProperties.php";
|
||||
require "vendor/zto/zopsdk-php/ZopRequest.php";
|
||||
|
||||
use zop\ZopClient;
|
||||
use zop\ZopRequest;
|
||||
use zop\ZopProperties;
|
||||
|
||||
/**
|
||||
* 中通接口
|
||||
* https://zop.zto.com/apiDoc/
|
||||
*
|
||||
* @extends CI_Model
|
||||
*/
|
||||
class Zto_model extends MY_Model {
|
||||
|
||||
protected $table = 'ship_order';
|
||||
|
||||
public function request($path='', $params=[])
|
||||
{
|
||||
$conf = $this->config->item('zto');
|
||||
// ZopProperties类的构造方法接收两个参数,分别是companyid和key,都需要注册中通开放平台后到个人中心查看
|
||||
$properties = new ZopProperties($conf['id'], $conf['key']);
|
||||
$client = new ZopClient($properties);
|
||||
$request = new ZopRequest();
|
||||
$request->setUrl($conf['host'].$path);
|
||||
if(isset($params['company_id'])){
|
||||
$params['company_id'] = $conf['id'];
|
||||
}
|
||||
foreach ($params as $key=>$val) {
|
||||
$request->addParam($key,$val);
|
||||
}
|
||||
$ret = $client->execute($request);
|
||||
return json_decode($ret,true);
|
||||
}
|
||||
|
||||
//寄送样品并获取运单号
|
||||
public function shipSample($address=[])
|
||||
{
|
||||
$data = [
|
||||
'orderGroup'=>[
|
||||
"partnerCode"=> $address['trade_id'],//合作商订单号,为调用方生成,可以传订单号、主键、UUID等
|
||||
"type"=> 1,//订单类型 1 普通订单(线上),2线下联系订单 默认1
|
||||
"tradeId"=> $address['trade_id'],//交易号,由合作商平台产生。
|
||||
"mailNo"=> "",//运单号(有则提供,线下联系订单必须提供)
|
||||
"sender"=> [
|
||||
"id"=> strval($address['user_id']),
|
||||
"name"=> $address['name'],
|
||||
"company"=> "",
|
||||
"mobile"=> $address['tel'],
|
||||
"phone"=> "",
|
||||
"prov"=> $address['province'],
|
||||
"city"=> $address['city'],
|
||||
"county"=> $address['district'],
|
||||
"address"=> $address['address'],
|
||||
"zipcode"=> ""
|
||||
],
|
||||
"receiver"=> [
|
||||
"id"=> "1",
|
||||
"name"=> "有哈科技收样组",
|
||||
"company"=> " ",
|
||||
"mobile"=> "17321358370",
|
||||
"phone"=> "",
|
||||
"prov"=> "上海市",
|
||||
"city"=> "上海市",
|
||||
"county"=> "嘉定区",
|
||||
"address"=> "兴贤路1180号5栋208室",
|
||||
"zipcode"=> ""
|
||||
],
|
||||
"items"=> [
|
||||
[
|
||||
"id"=> "1",
|
||||
"name"=> "唾液样本",
|
||||
"category"=> "电子产品",
|
||||
"material"=> "玻璃",
|
||||
"size"=> "12,11,23",
|
||||
"weight"=> "1",
|
||||
"unitprice"=> "80",
|
||||
"quantity"=> "1",
|
||||
"remark"=> ""
|
||||
]
|
||||
],
|
||||
"starttime"=> date('Y-m-d'),
|
||||
"endtime"=> date('Y-m-d'),
|
||||
"weight"=> 1,
|
||||
"size"=> "12,23,11",
|
||||
"quantity"=> 1,
|
||||
"price"=> 80,
|
||||
"freight"=> 10,
|
||||
"premium"=> 0,
|
||||
"packCharges"=> 0,
|
||||
"otherCharges"=> 0,
|
||||
"orderSum"=> 0,
|
||||
"collectMoneytype"=> "CNY",
|
||||
"collectSum"=> 1,
|
||||
"remark"=> "玻璃制品,请轻拿轻放"
|
||||
]
|
||||
];
|
||||
//echo json_encode($data);die;
|
||||
//散客预约订单
|
||||
$ret = $this->request('OpenOrderCreate',$data);
|
||||
/*
|
||||
* 返回示例
|
||||
* {
|
||||
"result": {
|
||||
"esGroup": null,
|
||||
"markGroup": null,
|
||||
"orderCode": "200308000008003103"
|
||||
},
|
||||
"message": "操作成功",
|
||||
"status": true,
|
||||
"statusCode": "0"
|
||||
}
|
||||
*/
|
||||
//print_r($ret);
|
||||
if($ret['statusCode'] == '0' && isset($ret['result']['orderCode'])){
|
||||
$row_base = [
|
||||
'user_id'=>$address['user_id'],// 中通订单号
|
||||
'order_code'=>$ret['result']['orderCode'],// 中通订单号
|
||||
'partner_code'=>$address['trade_id'],// 中通订单号
|
||||
'trade_id'=>$address['trade_id'],// 中通订单号
|
||||
"sender_id"=> $address['user_id'],
|
||||
"sender_name"=> $address['name'],
|
||||
//"sender_company"=> "",
|
||||
"sender_mobile"=> $address['tel'],
|
||||
//"sender_phone"=> "",
|
||||
"sender_prov"=> $address['province'],
|
||||
"sender_city"=> $address['city'],
|
||||
"sender_county"=> $address['district'],
|
||||
"sender_address"=> $address['address'],
|
||||
//"sender_zipcode"=> ""
|
||||
];
|
||||
$row_ext = [];
|
||||
/*
|
||||
//查询订单
|
||||
$ret_search = $this->commonOrderSearchbycode($ret['orderCode'],$address['user_id']);
|
||||
//存订单
|
||||
$order = $ret['result'];
|
||||
if($ret_search['result']){
|
||||
$detail = $ret_search['data']['order_list'];
|
||||
if(!empty($detail[0])){
|
||||
$detail = $detail[0];
|
||||
$row_ext = [
|
||||
'type'=>$order['type'],// 订单类型
|
||||
'tradeid'=>$order['tradeid'],// 交易号
|
||||
'mailno'=>$order['mailno'],// 运单号
|
||||
'detail'=>json_encode($detail),// 原始数据
|
||||
];
|
||||
}
|
||||
}
|
||||
//todo:订阅快递信息
|
||||
$this->add(array_merge($row_base,$row_ext));
|
||||
*/
|
||||
$id = $this->add($row_base);
|
||||
return [true,'上门取货后获取'];
|
||||
}else{
|
||||
log_message('error', $ret['message']);
|
||||
}
|
||||
return [false,$ret['message']];
|
||||
}
|
||||
|
||||
//预约寄件-订单明细查询
|
||||
public function commonOrderSearchbycode($orderCode=[],$sendId,$partnerId='')
|
||||
{
|
||||
if(!is_array($orderCode)){
|
||||
$orderCode = [$orderCode];
|
||||
}
|
||||
$params = [
|
||||
"company_id"=>'',
|
||||
"msg_type"=>'SEARCHBYCODE',
|
||||
"data"=>[
|
||||
"orderCode"=>$orderCode,//预约寄件下单后,获取的orderCode
|
||||
"sendId"=>$sendId,//发件人在合作商平台中的ID号
|
||||
#"partnerId"=>"",//合作商单号,非必填
|
||||
]
|
||||
];
|
||||
$ret = $this->request('commonOrderSearchbycode',$params);
|
||||
echo(json_encode($ret));die;
|
||||
$ret = '{
|
||||
"result": true,
|
||||
"reason": "",
|
||||
"data": {
|
||||
"pageIndex": 1,
|
||||
"pageSize": 10,
|
||||
"count": 100,
|
||||
"order_list": [
|
||||
{
|
||||
"orderCode": "130520142013234",
|
||||
"type": "",
|
||||
"tradeid": "2701843",
|
||||
"mailno": "1000000000016",
|
||||
"sender": {
|
||||
"id": "130520142010",
|
||||
"name": "李琳",
|
||||
"company": "新南电子商务有限公司",
|
||||
"mobile": "13912345678",
|
||||
"phone": "021-87654321",
|
||||
"area": "上海市",
|
||||
"city": "上海市",
|
||||
"county": "青浦区",
|
||||
"address": "华新镇华志路123号",
|
||||
"zipcode": "610012"
|
||||
},
|
||||
"receiver": {
|
||||
"id": "130520142097",
|
||||
"name": "杨逸嘉",
|
||||
"company": "逸嘉实业有限公司",
|
||||
"mobile": "13687654321",
|
||||
"phone": "010-22226789",
|
||||
"area": "四川省",
|
||||
"city": "成都市",
|
||||
"county": "武侯区",
|
||||
"address": "育德路497号",
|
||||
"zipcode": "610012"
|
||||
},
|
||||
"starttime": "2013-05-2012: 00: 00",
|
||||
"endtime": "2013-05-2015: 00: 00",
|
||||
"weight": 753,
|
||||
"size": "12, 23, 11",
|
||||
"quantity": 2,
|
||||
"price": 12650,
|
||||
"freight": 1000,
|
||||
"premium": 50,
|
||||
"pack_charges": 100,
|
||||
"other_charges": 0,
|
||||
"order_sum": 0,
|
||||
"collect_moneytype": "CNY",
|
||||
"collect_sum": 1200,
|
||||
"remark": "请勿摔货",
|
||||
"create_date": "2014-12-1212: 12: 12"
|
||||
},
|
||||
{
|
||||
"orderCode": "130520142013234",
|
||||
"type": "",
|
||||
"tradeid": "2701843",
|
||||
"mailno": "1000000000016",
|
||||
"sender": {
|
||||
"id": "130520142010",
|
||||
"name": "李琳",
|
||||
"company": "新南电子商务有限公司",
|
||||
"mobile": "13912345678",
|
||||
"phone": "021-87654321",
|
||||
"area": "上海市",
|
||||
"city": "上海市",
|
||||
"county": "青浦区",
|
||||
"address": "华新镇华志路123号",
|
||||
"zipcode": "610012"
|
||||
},
|
||||
"receiver": {
|
||||
"id": "130520142097",
|
||||
"name": "杨逸嘉",
|
||||
"company": "逸嘉实业有限公司",
|
||||
"mobile": "13687654321",
|
||||
"phone": "010-22226789",
|
||||
"area": "四川省",
|
||||
"city": "成都市",
|
||||
"county": "武侯区",
|
||||
"address": "育德路497号",
|
||||
"zipcode": "610012"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "1234567",
|
||||
"name": "迷你风扇",
|
||||
"category": "电子产品",
|
||||
"material": "金属",
|
||||
"size": "12, 11, 23",
|
||||
"weight": "0.752",
|
||||
"unitprice": "79",
|
||||
"quantity": "1",
|
||||
"remark": "黑色大号"
|
||||
},
|
||||
{
|
||||
"name": "USB3.0集线器",
|
||||
"quantity": "1",
|
||||
"remark": ""
|
||||
}
|
||||
],
|
||||
"starttime": "2013-05-2012: 00: 00",
|
||||
"endtime": "2013-05-2015: 00: 00",
|
||||
"weight": 753,
|
||||
"size": "12, 23,11",
|
||||
"quantity": 2,
|
||||
"price": 12650,
|
||||
"freight": 1000,
|
||||
"premium": 50,
|
||||
"pack_charges": 100,
|
||||
"other_charges": 0,
|
||||
"order_sum": 0,
|
||||
"collect_moneytype": "CNY",
|
||||
"collect_sum": 1200,
|
||||
"remark": "请勿摔货",
|
||||
"create_date": "2014-12-1212: 12: 12"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
';
|
||||
$ret = json_decode($ret,true);
|
||||
|
||||
}
|
||||
|
||||
//获取快件轨迹信息
|
||||
public function traceInterfaceNewTraces($order_id)
|
||||
{
|
||||
$conf = $this->config->item('zto');
|
||||
$data = [
|
||||
"company_id"=> $conf['id'],
|
||||
"msg_type"=> 'NEW_TRACES',
|
||||
"data"=> [$order_id],
|
||||
];
|
||||
return $this->request('traceInterfaceNewTraces',$data);
|
||||
$tmp = '{
|
||||
"data": [
|
||||
{
|
||||
"traces": [
|
||||
{
|
||||
"desc": "[上海市] [上海]的张伟丰已收件 电话:17740809169",
|
||||
"dispOrRecMan": "张伟丰",
|
||||
"dispOrRecManCode": "",
|
||||
"dispOrRecManPhone": "17740809169",
|
||||
"isCenter": "T",
|
||||
"preOrNextCity": "",
|
||||
"preOrNextProv": "",
|
||||
"preOrNextSite": "",
|
||||
"preOrNextSiteCode": "",
|
||||
"preOrNextSitePhone": "",
|
||||
"remark": "",
|
||||
"scanCity": "上海市",
|
||||
"scanDate": "2017-07-26 17:30:14",
|
||||
"scanProv": "上海",
|
||||
"scanSite": "上海",
|
||||
"scanSiteCode": "02100",
|
||||
"scanSitePhone": "95311",
|
||||
"scanType": "收件",
|
||||
"signMan": ""
|
||||
},
|
||||
{
|
||||
"desc": "[金华市] 快件到达 [义乌]",
|
||||
"dispOrRecMan": "",
|
||||
"dispOrRecManCode": "",
|
||||
"dispOrRecManPhone": "",
|
||||
"isCenter": "F",
|
||||
"preOrNextCity": "",
|
||||
"preOrNextProv": "",
|
||||
"preOrNextSite": "",
|
||||
"preOrNextSiteCode": "",
|
||||
"preOrNextSitePhone": "",
|
||||
"remark": "",
|
||||
"scanCity": "金华市",
|
||||
"scanDate": "2017-05-18 16:55:01",
|
||||
"scanProv": "浙江",
|
||||
"scanSite": "义乌",
|
||||
"scanSiteCode": "57950",
|
||||
"scanSitePhone": "0579-89936000",
|
||||
"scanType": "到件",
|
||||
"signMan": ""
|
||||
},
|
||||
{
|
||||
"desc": "[上海市] 快件已到达[上海],业务员张伟丰正在第1次派件 电话:17740809169
|
||||
请保持电话畅通、耐心等待",
|
||||
"dispOrRecMan": "张伟丰",
|
||||
"dispOrRecManCode": "",
|
||||
"dispOrRecManPhone": "17740809169",
|
||||
"isCenter": "T",
|
||||
"preOrNextCity": "",
|
||||
"preOrNextProv": "",
|
||||
"preOrNextSite": "",
|
||||
"preOrNextSiteCode": "",
|
||||
"preOrNextSitePhone": "",
|
||||
"remark": "",
|
||||
"scanCity": "上海市",
|
||||
"scanDate": "2017-07-26 17:33:27",
|
||||
"scanProv": "上海",
|
||||
"scanSite": "上海",
|
||||
"scanSiteCode": "02100",
|
||||
"scanSitePhone": "95311",
|
||||
"scanType": "派件",
|
||||
"signMan": ""
|
||||
},
|
||||
{
|
||||
"desc": "[上海市] [上海总部财务]的派件已退件签收 感谢使用中通快递,期待再次为您
|
||||
服务!",
|
||||
"dispOrRecMan": "",
|
||||
"dispOrRecManCode": "",
|
||||
"dispOrRecManPhone": "",
|
||||
"isCenter": "F",
|
||||
"preOrNextCity": "",
|
||||
"preOrNextProv": "",
|
||||
"preOrNextSite": "",
|
||||
"preOrNextSiteCode": "",
|
||||
"preOrNextSitePhone": "",
|
||||
"remark": "",
|
||||
"scanCity": "上海市",
|
||||
"scanDate": "2017-03-03 13:11:23",
|
||||
"scanProv": "上海",
|
||||
"scanSite": "上海总部财务",
|
||||
"scanSiteCode": "00088",
|
||||
"scanSitePhone": "",
|
||||
"scanType": "退件签收",
|
||||
"signMan": "本人"
|
||||
}
|
||||
],
|
||||
"billCode": "680000000000"
|
||||
}
|
||||
],
|
||||
"msg": "",
|
||||
"status": true
|
||||
}';
|
||||
return json_decode($tmp,true);
|
||||
}
|
||||
|
||||
|
||||
//总对总订单,用不上
|
||||
public function plateOrder($sample=[],$address=[])
|
||||
{
|
||||
$data = [
|
||||
"systemParameter"=> [
|
||||
"serviceCode"=> "StoreDeliverGoods"
|
||||
],
|
||||
"orderInfo"=> [
|
||||
"bagSize"=> "20,10,30",
|
||||
"partnerCode"=> "3608036589234",
|
||||
"companyCode"=> "GP1551922487",
|
||||
"customerId"=> "zto001",
|
||||
"hallCode"=> "S2044",
|
||||
"billCode"=> null,
|
||||
"pickUpCode"=> null,
|
||||
"startTime"=> null,
|
||||
"endTime"=> null,
|
||||
"siteCode"=> "",
|
||||
"weight"=> 1.23,
|
||||
"freight"=> 0,
|
||||
"orderSum"=> 230.12,
|
||||
"otherCharges"=> 0,
|
||||
"packCharges"=> 0,
|
||||
"premium"=> 0,
|
||||
"price"=> 0,
|
||||
"quantity"=> "1",
|
||||
"returnAddress"=> "江苏省苏州市姑苏区绿地大道320号金茂大厦负一楼203仓库",
|
||||
"remark"=> "",
|
||||
"receiver"=> [
|
||||
"address"=> "外街道00号",
|
||||
"city"=> "苏州市",
|
||||
"company"=> "中通快递",
|
||||
"county"=> "朝阳区",
|
||||
"id"=> "",
|
||||
"mobile"=> "13262709999",
|
||||
"name"=> "黄某",
|
||||
"phone"=> "",
|
||||
"prov"=> "江苏省",
|
||||
"zipCode"=> ""
|
||||
],
|
||||
"sender"=> [
|
||||
"address"=> "华志路1685号",
|
||||
"city"=> "蚌埠市",
|
||||
"company"=> "中通快递股份有限公司",
|
||||
"county"=> "怀远县",
|
||||
"id"=> "15097756",
|
||||
"mobile"=> "15216800000",
|
||||
"name"=> "测试",
|
||||
"phone"=> "",
|
||||
"prov"=> "安徽省",
|
||||
"zipCode"=> ""
|
||||
]
|
||||
]
|
||||
];
|
||||
$ret = $this->request('plateOrder',$data);
|
||||
return $ret;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user