friendzapp/orderz-php-sdk

此包最新版本(0.0.17)没有可用的许可信息。

orderz api-sdk

0.0.17 2020-01-08 14:06 UTC

This package is auto-updated.

Last update: 2024-09-09 04:55:21 UTC


README

安装

composer require friendzapp/orderz-php-sdk

需求

  • PHP >= 7.2
  • guzzlehttp/guzzle = 6.3.3
  • nesbot/carbon = 2.19.2

基本用法

use Friendz\Orderz\Api\Client as OrderzClient;
use Friendz\Orderz\Api\Models\User as UserModel;
use Friendz\Orderz\Api\Requests\CreateOrder as CreateOrderRequest;

function foo(): array
{
  $client = new OrderzClient('api-token');
  
  return $client->getProducts();
}

function bar(int $productId)
{
  $client = new OrderzClient('api-token');
  
  $orderRequest = new CreateOrderRequest;
  $orderRequest->externalId = 'your-unique-id';
  $orderRequest->productId = $productId;
  $orderRequest->quantity = 1;
  $orderRequest->user = new UserModel(
    'John',
    'Doe',
    'john.doe@email.com',
    'Sesame Street, 1119'
  );
  
  $client->createOrder($orderRequest);
}

注意事项

两个API(createOrdergetProducts)都可能抛出 ApiExceptionMalformedResponseException 异常。前者是通用API异常,后者描述了响应结构中的错误。

这两个异常都有一个名为 shouldRetry(): bool 的实用方法(在它们的父类中描述)。只有在该方法返回 true 时,应该重试失败的请求。

示例

function foo(int $productId)
{
  /**
   * ...
   */

  $shouldRetry = true;

  /* NB: Don't use this code in production! */

  do {
    try {
      $response = $client->createOrder($orderRequest);
      
      $shouldRetry = false;
    } catch (ApiException | MalformedResponseException $e) {
      $shouldRetry = $e->shouldRetry();
    }
  } while($shouldRetry);
  
  /* Use $response somehow */
}