2017 © Pedro Peláez
 

library sudiyi-open-php-sdk

Sudiyi Open Platform SDK for PHP

image

sudiyi/sudiyi-open-php-sdk

Sudiyi Open Platform SDK for PHP

  • Tuesday, July 19, 2016
  • by sudiyi
  • Repository
  • 1 Watchers
  • 2 Stars
  • 4 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Sudiyi Open Platform SDK for PHP

Latest Stable Version Build Status Coverage Status, (*1)

概述

速递易开放平台是速递易为企业或商户开通的速递易箱格接口,无缝对接PC网站、微信公众号、APP,帮助商家提升配送效率,降低配送成本,解决快件最后100米难题。, (*2)

运行环境

  • PHP 5.3+
  • cURL extension

安装方法

  1. 如果您通过composer管理您的项目依赖,可以在你的项目根目录运行:, (*3)

    $ composer require sudiyi/sudiyi-open-php-sdk

    或者在你的composer.json中声明对速递易开放平台 SDK 的依赖:, (*4)

    "require": {
        "sudiyi/sudiyi-open-php-sdk": "~1.0"
    }

    然后通过composer install安装依赖。, (*5)

  2. 下载SDK源码,在您的代码中引入 SDK 目录下的autoload.php文件:, (*6)

    require_once '/path/to/sudiyi-open-php-sdk/autoload.php';

SDK 主要目录结构

|-- example
|   |-- api_use_demo.php        案例程序代码
|   `-- notify_demo.php         商户回调处理
|-- src
|   |-- Core
|   |    |-- Base.php           基础类
|   |    |-- Config.php         常量配置
|   |    |-- Http.php           Http请求处理类
|   |    `-- SdyException.php   异常类
|   `-- Api.php                 接口封装类
|-- tests/                      测试文件
|-- autoload.php                PSR-4 自动加载                     
`-- composer.json

快速使用

Sudiyi\Open\Api 是对速递易开方平台的接口封装,用户通过 Api 的实例来执行各种操作, (*7)

初始化

require_once'/path/to/sudiyi-open-php-sdk/autoload.php';

use Sudiyi\Open\Api;

$partner_id = "<您从速递易开放平台获得的 PartnerId>";
$partner_key = "<您从速递易开放平台获得的 PartnerKey>";

$sdyClient = new Api($partner_id, $partner_key);

调用接口

$data = array(
    'device_id'         => 1000149,                         // 速递易设备ID
    'box_type'          => 2,                               // 箱格类型 0:大箱 1:中箱 2:小箱 3:冰箱
    'notify_url'        => 'http://your.url/to/notify.php', // 回调第三方系统的地址
    'auto_upgd'         => true,                            // 选填,是否可以自动升箱
    'sender_name'       => 'Stefans',                       // 选填,投递人姓名
    'sender_mobile'     => '18612345678',                   // 选填,投递人手机
    'order_no'          => '2015000001',                    // 第三方订单号,即自己平台的订单号
    'consignee_name'    => 'demon',                         // 收货人姓名
    'consignee_mobile'  => '15887654321',                   // 收货人手机号
    'payment'           => 0,                               // 选填,到付金额,如果不是到付件则为0
    'pay_type'          => 0,                               // 选填,超期付费方式 0:快递柜付费 1:从商户账户扣除
    'duration'          => 60                               // 选填,预约时长,单位分钟,默认240分钟
);

// 预约速递易箱格
$result = $sdyClient->resv($data);
echo "预约成功: \n";
var_dump($result);

$resv_order_no = $result['resv_order_no'];

// 查询预约状态
$result = $sdyClient->getResv($resv_order_no);
echo "查询预约状态: \n";
var_dump($result);

更多接口的调用方式,请参见 example 或参看官方文档。, (*8)

返回结果

  • GET、POST 类接口, 默认返回一个 Array 对象
  • PUT、DELETE 类接口, 若操作成功, 返回 Array 对象, 操作失败, 返回 NULL 或 Array
  • 请求错误, 抛出 SdyException 异常
预约成功: 
array(1) {
  'resv_order_no' =>
  int(20160719000001)
}

查询预约状态: 
array(3) {
  'status' =>
  int(1)
  'resv_order_no' =>
  int(20160719000001)
  'open_code' =>
  NULL
}

异常处理

SDK 执行过程中若遇到异常,将会抛出一个 SdyException 异常,用户可自行捕获并处理。, (*9)

use Sudiyi\Open\Api;
use Sudiyi\Open\Core\SdyException;

try {
    // 预约速递易箱格
    $result = $sdyClient->resv($data);
    $resv_order_no = $result['resv_order_no'];

    // 取消预约箱格
    $result = $sdyClient->cancelResv($resv_order_no);
    echo "取消预约箱格: \n";
    var_dump($result);


} catch (SdyException $e) {
    echo "============== ERROR ==============\n";
    echo $e->getMessage() . "\n";
    var_dump($e->getErrorBody());
    echo "===================================\n";
}

运行Sample程序

  1. 修改 example/api_use_demo.php, 补充配置信息
  2. 执行 php ./example/api_use_demo.php

运行单元测试

  1. 执行composer install下载依赖的库
  2. 设置环境变量, (*10)

    export SDY_PARTNER_ID=partner_id
    export SDY_PARTNER_KEY=partner_key
  3. 执行 php vendor/bin/phpunit, (*11)

问题反馈

Goto: ISSUES, (*12)

开源协议

MIT, (*13)

The Versions

19/07 2016

dev-master

9999999-dev http://open.sudiyi.cn/

Sudiyi Open Platform SDK for PHP

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires

19/07 2016

1.0.1

1.0.1.0 http://open.sudiyi.cn/

Sudiyi Open Platform SDK for PHP

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires

19/07 2016

1.0.0

1.0.0.0 http://open.sudiyi.cn/

Sudiyi Open Platform SDK for PHP

  Sources   Download

MIT

The Requires

  • php >=5.3

 

The Development Requires