avetik-dev / book-test
laravel的测试项目
Requires
- php: >=7.3||>=8.0
This package is auto-updated.
Last update: 2024-09-29 06:25:55 UTC
README
Resova API PHP7客户端
本项目是一个基于Guzzle Http客户端的简单且极简的Resova API客户端。
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,那么在项目中的config/app.php的providers块中添加(在完成composer require之后),您可以使用您的包
'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密钥将位于此处。
*Items*端点
项目在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);
*Availability*端点
实例的详细信息、实例价格和日期日历等。
实例 - 在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);
*Baskets*端点
在Resova中,Baskets意味着购物车,它包含客户创建的预订购物车的详细信息。
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);
*Customers*端点
用于处理客户信息,如电子邮件、电话、地址等。
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);
*Gift Voucher*端点
在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添加到白名单中
-
但尽管如此,您的服务器IP可能会在没有解释的情况下自动被阻止(可能是通过fail2ban),并且在几个未回答的问题之后,支持团队会将您的电子邮件/脸书账户添加到黑名单中
-
在您的IP被禁止之前,最优的HTTP请求量不超过每天1000次,或每小时大约40次请求,这可能是由于最近对他们的服务器的DDoS攻击,所以请非常小心,否则您将不得不配置中间代理服务器,这并不方便(并且这些代理服务器在一段时间后也可能被禁止)
-
Resova不提供测试账户或测试环境,以在发布到生产环境之前测试您的应用程序的功能,因此在处理Resova API时请务必小心,并仔细检查所有数据