xyu/sf-qiao

顺丰丰桥系统对接PHP版

v2.0.0 2023-08-09 08:42 UTC

This package is auto-updated.

Last update: 2024-04-09 10:13:52 UTC


README

顺丰丰桥PHP对接版(全面升级版)

鉴于业务需求(对接顺丰丰桥), 就之前简单Demo重新打包, 并经过一次简单尝试过, 发现模式还有更好的改进, 并且在当前模式上, 也可以有更优的选择. 事后之言. 除此之外, 还有打算封面生成电子面单的想法, 由于时间问题, 只能先暂时放一下. 对了, 顺便说一句, 具体字段名称解释, 请查看源码, 注释齐全, 无后顾之忧.

接下来, 还是简单介绍下, 主要对接的接口:

  • 基础实例化
<?php
    require_once __DIR__.'/../vendor/autoload.php';
    use SFQiao\SFQiaoSDK;
    use SFQiao\Conf;
    $result = false;
    $conf = [
        'customerCode' => '顾客编码',
        'checkWord' => '校验码',
        'cusTid' => '顺丰月结卡号',
        'requestUri' => '请求地址'
    ];
    $app = (new SFQiaoSDK())->setConf($conf);
?>
  • 下单结果查询: quickQueryOrderResult
<?php
    $data = new \SFQiao\Order\OrderSearchService();
    $data->orderId = '客户订单号';
    // 也可通过该参数指定查询类型
    $data->searchType = 1;
    $app->quickQueryOrderResult($data);
?>
  • 快递路由查询: quickQueryOrderRoute
<?php
    $data = new \SFQiao\Order\RouteService();
    $data->trackingNumber = '顺丰运单号/客户订单号/逆向单原始订单号, 根据trackingType属性区分';
    $app->quickQueryOrderRoute($data);
?>
  • 筛选订单: quickFilterOrder
<?php
    $data = new \SFQiao\Order\OrderFilterService();
    $data->orderId = 'TEST20180410003';
    $data->dAddress = '广东省深圳市南山区学府路软件产业基地1栋B座';
    $app->quickFilterOrder($data);
?>
  • 生成子单号: quickApplySubOrderNo
<?php
    $data = new \SFQiao\Order\OrderZDService();
    $data->orderId = '客户订单号';
    // 新增包裹数量
    $data->parcelQuantity = 2;
    $app->quickApplySubOrderNo($data);
?>
  • 确认/取消订单: quickConfirmOrCancelOrder
<?php
    $data = new \SFQiao\Order\OrderConfirmService();
    $data->dealType = 2;
    $data->orderId = '客户订单号';
    // 取消订单正常, 确认订单不太正常
    $app->quickConfirmOrCancelOrder($data);
?>
  • 下单: quickOrderMainland
<?php
    $data = new \SFQiao\Order\OrderService();
    $data->orderId = 'TEST20180410009';
    $data->expressType = '1';
    $data->sender->jProvince = '广东省';
    $data->sender->jCity = '深圳市';
    $data->sender->jCounty = '福田区';
    $data->sender->jCompany = '顺丰速运';
    $data->sender->jContact = '小丰';
    $data->sender->jTel = '95338';
    $data->sender->jTel = '95338';
    $data->sender->jAddress = '新洲十一街万基商务大厦';
    $data->receiver->dProvince = '广东省';
    $data->receiver->dCity = '深圳市';
    $data->receiver->dCounty = '南山区';
    $data->receiver->dCompany = '顺丰科技';
    $data->receiver->dContact = '小顺';
    $data->receiver->dTel = '4008111111';
    $data->receiver->dAddress = '学府路软件产业基地1栋B座';
    $data->receiver->dCounty = '南山区';
    $data->receiver->dCounty = '南山区';
    $data->receiver->dCounty = '南山区';
    $data->parcelQuantity = 1;
    $data->cargoTotalWeight = 1;
    $data->cusTid = '7551234567';
    $data->payMethod = 1;
    $data->routeLabelService = 1;
    $news = $data->cargo();
    $news->name = '手机';
    $newsB = $data->cargo();
    $newsB->name = '哈拉';
    $data->cargoArr = [$news, $newsB];
    
    $app->quickOrderMainland($data);
?>
  • 下单(跨境件): quickOrderCrossBorder
<?php
    $data = new \SFQiao\Order\OrderServiceCrossBorder();
    $data->orderId = 'QIAO-KA20171231003';
    $data->sender->jProvince = 'Singapore';
    $data->sender->jCity = 'Singapore';
    $data->sender->jCounty = 'Singapore';
    $data->sender->jCompany = 'SFSingapore';
    $data->sender->jContact = 'PeterK';
    $data->sender->jTel = '12345678';
    $data->sender->jShipperCode = 'SIN01D';
    $data->sender->jPostCode = '628105';
    $data->sender->jCountry = 'SG';
    $data->sender->jAddress = '7SixthLokYangRoad#11-11Singapore628105';
    $data->receiver->dDeliveryCode = '852';
    $data->receiver->dPostCode = '852852';
    $data->receiver->dCountry = 'HK';
    $data->receiver->dProvince = 'Hong Kong';
    $data->receiver->dCity = 'Hong Kong';
    $data->receiver->dCounty = 'Hong Kong';
    $data->receiver->dCompany = 'Daniel';
    $data->receiver->dContact = 'DanielLi';
    $data->receiver->dTel = '87654321';
    $data->receiver->dAddress = '27/Ftestaddress,Kowloon,HongKong';
    $data->parcelQuantity = 1;
    $data->cargoTotalWeight = 1;
    $data->cusTid = '7551234567';
    $data->payMethod = 1;
    $data->expressType = 1;
    $data->declaredValue = '1';
    $data->declaredValueCurrency = 'CNY';
    $news = $data->cargo();
    $news->name = 'nailcare';
    $news->count = '20';
    $news->unit = 'pcs';
    $news->weight = '0.003';
    $news->amount = '0.05';
    $news->currency = 'CNY';
    $news->sourceArea = 'CN';
    $data->cargoArr = [$news];
    
    $app->quickOrderCrossBorder($data);
?>