giftery / api-client
0.2
2019-08-30 09:52 UTC
Requires
- php: >=5.4.0
- ext-curl: *
Requires (Dev)
- phpunit/phpunit: 4.8.18
README
安装
您可以通过 composer 管理器(如果有的话)连接客户端,或者从相应的部分下载为存档。
composer require giftery/api-client
composer 安装过程描述在https://getcomposer.org.cn/download/ 页面
快速入门
<?php
use Giftery\classes\exception\ApiException;
use Giftery\classes\data\OrderData;
use Giftery\GifteryApiClient;
// Раскомментируйте следующую строку, если не используется composer
//include_once 'loader.php';
try {
$order = new OrderData();
$order->setProductId(343);
$order->setFace(1000);
$order->setComment('Раз-раз, проверка...');
$order->setTestmode(true);
// Или
$order->set([
'product_id' => 343,
'face' => 1000,
'comment' => 'Раз-раз, проверка...',
'testmode' => true,
]);
$api = new GifteryApiClient(1, 'VeryVerySecretString');
$response = $api->callMakeOrder($order);
$queue_id = $response->getQueueId();
} catch (ApiException $e) {
// Обработка ошибок API (например, недостаточно средств, неактивный продукт, превышен лимит и т.д.)
$message = $e->getMessage();
$code = $e->getCode();
$raw_response = $e->getResponse(); // Ответ сервера для логирования
} catch (Exception $e) {
// Обработка ошибок подключения к серверу, ошибок валиадации параметров и прочее
$message = $e->getMessage();
}
GifteryApiClient 可用方法列表
- callGetBalance()
- callGetProducts()
- callMakeOrder(OrderData $data)
callGetBalance()
返回一个包含 getBalance
方法的 BalanceResponse
类对象,该方法将返回当前的整数值余额。
<?php
try {
$api = new GifteryApiClient(1, 'VeryVerySecretString');
$response = $api->callGetBalance();
echo $response->getBalance(); // 1000
} catch (Exception $e) {
// Обработка ошибок
}
callGetProducts()
返回一个包含 getProducts
方法的 ProductsResponse
类对象,该方法将返回包含描述的证书数组的数组。
id
- 证书的唯一标识符(正整数),在订购时使用;title
- 证书名称(字符串);url
- 描述证书的页面链接(字符串);brief
- 证书和/或品牌的简短描述(字符串);faces
- 可订购的证书面额数组,0 - 从face_min
到face_max
的面额(整数数组);face_min
- 此证书的最小可用面额(正整数);face_max
- 此证书的最大可用面额(正整数);disclaimer
- 规则和限制(字符串);image_url
- 添加到证书的品牌图像链接(字符串)。
<?php
try {
$api = new GifteryApiClient(1, 'VeryVerySecretString');
$response = $api->callGetProducts();
print_r($response->getProducts());
} catch (Exception $e) {
// Обработка ошибок
}
callMakeOrder(OrderData $data)
返回一个包含 getQueueId
方法的 MakeOrderResponse
类对象,该方法将返回订单队列的唯一标识符(非负整数)。
要使用该方法,需要作为参数传递一个 OrderData
类对象。OrderData 是一组方法,用于设置订单参数。
<?php
$order = new OrderData();
$order->setProductId(342);
$order->setFace(1000);
$order->setComment('Раз-раз, проверка...');
$order->setTestmode(true);
如果向某些方法传递了错误的值,将抛出 UnexpectedValueException
。
<?php
try {
$order = new OrderData();
$order->setProductId('Строка');
} catch (UnexpectedValueException $e) {
echo $e->getMessage(); // Значение product_id должно быть положительным целым числом
}
<?php
try {
$order = new OrderData();
$order->setProductId(343);
$order->setFace(1000);
$order->setComment('Раз-раз, проверка...');
$order->setTestmode(true);
$api = new GifteryApiClient(1, 'VeryVerySecretString');
$response = $api->callMakeOrder($order);
$queue_id = $response->getQueueId();
} catch (Exception $e) {
// Обработка ошибок
}
变更历史
0.2
- 添加了
setUuid()
、setToPhone()
、setDateSend()
、setExternalId()
、setDeliveryType()
方法。
0.1.3
- 修复了
testmode
参数的验证。
0.1.2
- 在请求
getProducts
时添加了extended
属性。
0.1.1
- 添加了
setVersion()
方法以指定 API 版本(GifteryApiBase
)。 - 添加了
set()
方法以设置属性数组(RequestData
)。 - 添加了
post()
/get()
方法以指定 API 调用方法(GifteryApiBase
)。 - 私有属性(
$clientId
、$secret
等)具有受保护的可见性。
0.1.0
- 第一个版本