friendz / orderz-php-sdk
0.0.12
2019-07-31 15:14 UTC
Requires
- php: >=7.2.0
- ext-json: *
- guzzlehttp/guzzle: 6.3.3
- nesbot/carbon: 2.19.2
README
安装
composer require friendz/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); }
注意
createOrder
和 getProducts
API 都可能抛出 ApiException
或 MalformedResponseException
。前者是一般 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 */ }