vegas0250 / cdeker
cdek 的 API 客户端
v1.2
2022-04-18 10:02 UTC
Requires
- ext-json: *
- guzzlehttp/guzzle: ^7.0
- symfony/cache: ^5.4
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 }