yundun/yundunsdk

There is no license information available for the latest version (v1.0.8) of this package.

YUNDUN SDK

v1.0.8 2020-01-07 10:00 UTC

This package is auto-updated.

Last update: 2024-09-07 19:47:35 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads Daily Downloads

YUNDUN API PHP SDK legend

  • 接口基地址: 'http://apiv4.yundun.cn/V4/';
  • 接口遵循RESTful,默认请求体json,接口默认返回json
  • app_id, app_secret 联系技术客服,先注册一个云盾的账号,用于申请绑定api身份
  • 签名
    • 每次请求都签名,保证传输过程数据不被篡改
    • 客户端:sha256签名算法,将参数base64编码+app_secret用sha256签名,每次请求带上签名
    • 服务端:拿到参数用相同的算法签名,对比签名是否正确
  • 环境要求:php >=5.5
  • 依赖composer

##使用步骤

  1. composer require yundun/yundunsdk

  2. 实例化

    //sdk
    require 'xx/vendor/autoload.php';
    $app_id = 'xx';
    $app_secret = 'xx';
    $client_ip = 'xx';
    $client_userAgent = '';
    $base_api_url = 'http://apiv4.yundun.cn/V4/';
    ;base_api_url = 'http://127.0.0.1/V4/'
    $host = 'apiv4.yundun.cn';
    $handler = 'guzzle'; //curl/guzzle默认guzzle,guzzle支持异步调用,curl驱动目前未实现异步
    $sdk = new YundunSDK (
        [
        'app_id'=>$app_id, 
        'app_secret'=>$app_secret, 
        'base_api_url' = 'http://127.0.0.1/V4/',
        'host' => 'apiv4.xx.cn',
        'client_ip'=>$client_ip, 
        'client_userAgent'=>$client_userAgent, 
        'handler'=> $handler,
        'syncExceptionOutputCode' => 0,
        'syncExceptionOutputMessage' =>'同步请求异常信息提示',
        'asyncExceptionOutputCode' => 0,
        'asyncExceptionOutputMessage' => '异步请求异常信息提示'
        'log' => true,  //是否记录sdk相关日志
        'logfileWin' => 'E:/sdkV4.log', //windows日志路径
        'logfileLinux' => '/tmp/sdkV4.log' //linux日志路径
        ]
    );

  1. 调用

format json返回json,xml返回xml

body 支持传递json和数组

urlParams会拼接在url后面

支持get/post/patch/put/delete方法

sync request

  • get

$request = array(
    'url' => 'api/version',
    'body' => '',
    'headers' => [
        'format' => 'json',
    ],
    'timeout' => 10,
    'query' => [
        'params1' => 1,
        'params2' => 2
    ],
);
try{
    $res = $sdk->get($request);
}catch (\Exception $e){
    var_dump($e->getCode());
    var_dump($e->getMessage());
}
exit($res);

  • post/put/patch/delete

$request = array(
    'url' => 'api/version',
    'body' => json_encode([
        'body1' => 1,
        'body2' => 2,
    ]),
    'headers' => [
        'format' => 'json',
    ],
    'timeout' => 10,
    'query' => [
        'params1' => 1,
        'params2' => 2
    ],
);
try{
    $res = $sdk->post($request);
}catch (\Exception $e){
    var_dump($e->getCode());
    var_dump($e->getMessage());
}
exit($res);

async request

  • get

$request = array(
    'url' => 'api/version',
    'body' => '',
    'headers' => [
        'format' => 'json',
    ],
    'timeout' => 10,
    'query' => [
        'params1' => 1,
        'params2' => 2
    ],
    'options' => [
        'async' => true,
        'callback' => function($response){
            $body = $response->getBody->getContents();
            echo $body;
            exit;
        },
        'exception' => function($exception){}
    ]
);
try{
    $sdk->getAsync($request);
}catch (\Exception $e){
    var_dump($e->getCode());
    var_dump($e->getMessage());
}


  • post/put/patch/delete

$request = array(
    'url' => 'api/version',
    'body' => json_encode([
        'body1' => 1,
        'body2' => 2,
    ]),
    'headers' => [
        'format' => 'json',
    ],
    'timeout' => 10,
    'query' => [
        'params1' => 1,
        'params2' => 2
    ],
    'options' => [
        'async' => true,
        'callback' => function($response){
            $body = $response->getBody->getContents();
            echo $body;
            exit;
        },
        'exception' => function($exception){}
    ]
);
try{
    $sdk->postAsync($request);
}catch (\Exception $e){
    var_dump($e->getCode());
    var_dump($e->getMessage());
}