giftery/api-client

0.2 2019-08-30 09:52 UTC

This package is auto-updated.

Last update: 2024-09-29 03:52:32 UTC


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_minface_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

  • 第一个版本