evilfreelancer/resova-api-php

Resova API PHP7 客户端

1.2.5 2020-06-17 18:09 UTC

This package is auto-updated.

Last update: 2024-09-18 17:08:07 UTC


README

Latest Stable Version Build Status Total Downloads License Code Climate Code Coverage Scrutinizer CQ

Resova API PHP7 客户端

本项目是一个简单的、极简的用于与 Resova API 交互的客户端,基于 Guzzle Http 客户端。

composer require evilfreelancer/resova-api-php

Laravel 框架支持

Resova API 客户端针对作为常规 Laravel 包的使用进行了优化,所有功能均通过 \ResovaApi 门面提供,要访问客户端对象,您需要使用

$config = new \Resova\Config(['api_key' => 'my-secret-key']);
$resova = new \Resova\Client($config);

使用

$resova = \ResovaApi::getClient();

您也可以通过向 getClient 方法传递参数数组来向您的客户端提供额外的参数

$resova = \ResovaApi::getClient([
    'api_key' => 'my-secret-key',
    'timeout' => 1000,
]);

Laravel 安装

通过 Composer 安装包

composer require evilfreelancer/resova-api-php

默认情况下,包将自动注册其服务提供程序,但如果您是小于 5.3 版本的 Laravel 的幸福所有者,那么在您的项目中(当然是在完成 composer require 之后),将以下内容添加到您的 config/app.php 文件的 providers 块中

'providers' => [
    // ...
    Resova\Laravel\ClientServiceProvider::class,
],

可选地,如果您想更改任何默认值,请发布配置文件

php artisan vendor:publish --provider="Resova\\Laravel\\ClientServiceProvider"

术语

在 Resova 中,有四个关键对象,每个 API 开发者都应该了解。

如何使用

查看其他使用示例,按类名分 这里

基本示例

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Resova\Config;
use Resova\Client;

$config = new Config(['api_key' => getenv('API_KEY')]);
$resova = new Client($config);

// Get all slots for all items in dates range
$calendar = $resova->availability->calendar(date('Y-m-d'), date('Y-m-d'))->exec();

foreach ($calendar as $instances) {
    // Get availability of slots for some item
    $instance = $resova->availability->instance(3)->exec();
}

我在哪里可以找到我的 API 密钥?

如果您还没有,您可以在这里注册一个新账户。登录后,请转到 设置 > 常规设置 > 开发者,您的 API 密钥将在这里。

*项目* 端点

项目意味着您在 Resova 系统中的房间。

https://developers.resova.com/reference#items

// Single
$result = $resova->item(1)->exec();
print_r($result);

// Single: Reviews list
$result = $resova->item(1)->reviews()->exec();
print_r($result);

// Single: Booking questions list
$result = $resova->item(1)->booking_questions()->exec();
print_r($result);

// Single: Extras list
$result = $resova->item(1)->extras()->exec();
print_r($result);

// All
$result = $resova->items->exec();
print_r($result);
*可用性* 端点

实例的详细信息、实例价格和日期日历等。

实例 - 在 Resova API 逻辑中意味着具有价格的时间段

https://developers.resova.com/reference#availability

use \Resova\Models\Pricing;

$result = $resova->availability->instance(123)->exec();
print_r($result);

$pricing = new Pricing([
    'quantities' => [
        ['pricing_category_id' => 1, 'quantity' => 2],
        ['pricing_category_id' => 1, 'quantity' => 3],
        ['pricing_category_id' => 1, 'quantity' => 4],
    ]
]);
$result = $resova->availability->instance(123)->pricing($pricing)->exec();
print_r($result);

$result = $resova->availability->calendar(date('Y-m-d'), date('Y-m-d'))->exec();
print_r($result);
*购物篮* 端点

在 Resova 中,购物篮意味着购物车,它包含客户创建的预定购物车的详细信息。

https://developers.resova.com/reference#the-basket-object

use \Resova\Models\BasketRequest;

// Basket request object
$basket = new BasketRequest([
    'customer_id' => 123,
    'expires_at'  => '1558101934',
]);

// Create
$result = $resova->baskets->create($basket)->exec();
print_r($result);

// List
$result = $resova->baskets->exec();
print_r($result);

// Single
$result = $resova->basket(123)->exec();
print_r($result);

// Update
$result = $resova->basket(123)->update($basket)->exec();
print_r($result);

// Delete
$result = $resova->basket(123)->delete()->exec();
print_r($result);
*客户* 端点

用于处理客户信息,如电子邮件、电话、地址等。

https://developers.resova.com/reference#customers

use \Resova\Models\Customer;
use \Resova\Models\CustomerCreate;

// Customer create request object
$customerCreate = new CustomerCreate([
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'email'      => 'email@example.com'
]);

// Create
$result = $resova->customers->create($customerCreate)->exec();
print_r($result);

// Single
$result = $resova->customer(123)->exec();
print_r($result);

// Customer update request object
$customerUpdate = new Customer([
    'first_name' => 'John',
    'last_name'  => 'Doe',
    'email'      => 'email@example.com'
]);

// Update
$result = $resova->customer(123)->update($customerUpdate)->exec();
print_r($result);
*礼品券* 端点

在 Resova 中,礼品券意味着促销代码,您可以管理您的促销活动。

https://developers.resova.com/reference#gift-vouchers

// Single
$result = $resova->gift_voucher(123)->exec();
print_r($result);

// All
$result = $resova->gift_vouchers->exec();
print_r($result);
*Webhooks* 端点
// All
$result = $resova->webhooks->all()->exec();
print_r($result);

您还应该知道的一些事情

  1. Resova 的技术支持非常不愿意回答您的任何请求,即使您已经连接了银行卡并且您赚钱,以很小的可能性,您的要求将停止被处理,您的电子邮件将被列入黑名单

  2. 在试用账户中,您无法使用 API,因此您无法在添加银行卡之前检查功能

  3. 您应该在 Resova 开发者设置中将您服务器的 IP 添加到白名单中

  4. 但尽管有第 3. 段,您的服务器 IP 可能会自动被阻止,没有任何解释(可能是通过 fail2ban),并且支持团队在几个未回答的问题后会将您的电子邮件/facebook 账户添加到黑名单

  5. 在您的 IP 被禁止之前,最佳 HTTP 请求量不超过每天 1000 次,或每小时约 40 次,这可能是由于他们服务器最近的 DDoS 攻击,所以请非常小心,否则您将不得不配置中间代理服务器,这并不方便(并且它们也将在一段时间后被禁止)

  6. Resova不提供测试账户或测试环境,以便在发布到生产环境之前测试您应用程序的功能,因此在处理Resova API时请务必谨慎,并仔细检查所有数据

链接