evilfreelancer / resova-api-php
Resova API PHP7 客户端
Requires
- php: >=7.1
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ^6.0
Requires (Dev)
- orchestra/testbench: ^3.0
- phpunit/phpunit: ^7.0
- vlucas/phpdotenv: ^3.6
README
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);
您还应该知道的一些事情
-
Resova 的技术支持非常不愿意回答您的任何请求,即使您已经连接了银行卡并且您赚钱,以很小的可能性,您的要求将停止被处理,您的电子邮件将被列入黑名单
-
在试用账户中,您无法使用 API,因此您无法在添加银行卡之前检查功能
-
您应该在 Resova 开发者设置中将您服务器的 IP 添加到白名单中
-
但尽管有第
3.
段,您的服务器 IP 可能会自动被阻止,没有任何解释(可能是通过 fail2ban),并且支持团队在几个未回答的问题后会将您的电子邮件/facebook 账户添加到黑名单 -
在您的 IP 被禁止之前,最佳 HTTP 请求量不超过每天 1000 次,或每小时约 40 次,这可能是由于他们服务器最近的 DDoS 攻击,所以请非常小心,否则您将不得不配置中间代理服务器,这并不方便(并且它们也将在一段时间后被禁止)
-
Resova不提供测试账户或测试环境,以便在发布到生产环境之前测试您应用程序的功能,因此在处理Resova API时请务必谨慎,并仔细检查所有数据