vegas0250/cdeker

cdek 的 API 客户端

v1.2 2022-04-18 10:02 UTC

This package is auto-updated.

Last update: 2024-09-18 15:52:43 UTC


README

一个简洁的 php/http 客户端,用于与 SDEK 服务 API v2 交互,仅实现两种方法

  • 获取令牌;
  • 请求 API。

工作原理

尽管简单,cdeker 依赖于专业的库来处理 HTTP 请求 guzzlehttp/guzzle,并在文件缓存中存储授权令牌 symfony/cache

令牌的请求和存储过程被有意隐藏。如果出于某种原因您需要获取令牌,可以通过调用 getToken() 方法手动获取。

授权在第一次调用 API 时发生,即在我们的例子中是调用 request() 方法。

开始工作所需的前期数据

  • 备有目标文档 SDEK 数据交换协议(v2.0) 以核对必要的函数;
  • Account 和 Secure password 参数(如果您尚未注册,可以参考文档中的测试数据)。

安装

composer require vegas0250/cdeker

使用

连接到测试环境,并获取城市列表。

<?php

/**
 * Используем данные тестовой учетной записи.
 * 
 * @param string $clientId - Это "Account" из документации
 * @param string $clientSecret - Это "Secure password" из документации
 * @param boolean $test - Выполнение в тестовой среде, подробнее в документации 
 */
$cdekerClient = new Vegas0250\Cdeker\Client(
    'EMscd6r9JnFiQ3bLoyjJY6eM78JrJceI', 
    'PjLZkKBHEiLK3YsjtNrt3TGNG0ahs3kG', 
    true
);

/**
 * @param string $method -  Операясь на документацию находим необходимый 
 *                          запрос, например "Список офисов", в описании 
 *                          запроса указано GET или POST, в нашем случае 
 *                          GET, на данный момент необходимо писать в 
 *                          нижнем регистре "get".
 * @param string $url    -  Уникальный адрес запроса, в случае со 
 *                          "Списком офисов" получится "/v2/deliverypoints"
 * @param array $params -   Список передаваемых параметров, в виде
 *                          ассоциативного массива. 
 */
$result = $cdekerClient->request('get', '/v2/deliverypoints', [
    'city_code' => 250
]);

# Выведем ответ
print_r($result);

在战斗环境中做同样的事情,但不要加注释

<?php
$cdekerClient = new Vegas0250\Cdeker\Client( '<clientId>', '<clientSecret>');

$cities = $cdekerClient->request('get', '/v2/deliverypoints', [
    'city_code' => 250
])

foreach($cities as $city) {
    // do something
}