noos / noos-php
NOOS PHP 库
Requires
- php: >=5.4.0
- ext-curl: *
- ext-json: *
- ext-mbstring: *
Requires (Dev)
- php-coveralls/php-coveralls: 1.*
- phpunit/phpunit: ~4.0
- squizlabs/php_codesniffer: ~2.0
This package is auto-updated.
Last update: 2024-09-29 02:29:05 UTC
README
您可以在https://www.noos.app注册Noos账户。
免责声明
此源代码主要受到Stripe PHP库的启发。
要求
PHP 5.4.0 及更高版本。
Composer
您可以通过Composer安装绑定。运行以下命令
composer require noos/noos-php
要使用绑定,请使用Composer的自动加载
require_once('vendor/autoload.php');
手动安装
如果您不想使用Composer,您可以下载最新版本。然后,要使用绑定,请包含init.php文件。
require_once('/path/to/noos-php/init.php');
依赖项
绑定需要以下扩展才能正常工作
如果您使用Composer,这些依赖项应该会自动处理。如果您手动安装,请确保这些扩展可用。
入门
简单用法如下
\Noos\Noos::setApiKey('*******************'); $order= \Noos\Order::create(['provider' => 'manual', 'orderId' => '1', 'status' => 'complete', 'purchasedDate' => '', 'items' => ['sku' => 'MYSKU', 'name' => 'My sku', 'qtyOrdered' => 2]]); echo $order;
文档
请参阅https://www.noos.app/docs/api获取最新文档。
自定义请求超时
注意:我们不推荐减少非只读调用(例如产品/订单创建)的超时时间,因为即使您本地超时,Noos方面的请求仍然可以完成。如果您正在减少这些调用的超时时间,请确保使用幂等令牌,以避免超时重试逻辑导致执行相同的事务两次。
要修改请求超时(连接或总时间,以秒为单位),您需要告诉API客户端使用除默认值之外的CurlClient。您将在那个CurlClient中设置超时。
// set up your tweaked Curl client $curl = new \Noos\HttpClient\CurlClient(); $curl->setTimeout(10); // default is \Noos\HttpClient\CurlClient::DEFAULT_TIMEOUT $curl->setConnectTimeout(5); // default is \Noos\HttpClient\CurlClient::DEFAULT_CONNECT_TIMEOUT echo $curl->getTimeout(); // 10 echo $curl->getConnectTimeout(); // 5 // tell Noos to use the tweaked client \Noos\ApiRequestor::setHttpClient($curl); // use the Noos API client as you normally would
自定义cURL选项(例如代理)
需要为请求设置代理?将必需的CURLOPT_*数组传递给CurlClient构造函数,使用与curl_stopt_array()相同的语法。这将设置SDK为每个HTTP请求设置的默认cURL选项,尽管即使在这里设置,客户端也会覆盖许多更常见的选项(例如超时;有关如何设置这些选项,请参阅上面)。
// set up your tweaked Curl client $curl = new \Noos\HttpClient\CurlClient([CURLOPT_PROXY => 'proxy.local:80']); // tell Noos to use the tweaked client \Noos\ApiRequestor::setHttpClient($curl);
或者,可以将可调用的函数传递给CurlClient构造函数,该函数根据请求输入返回上述数组。请参阅tests/CurlClientTest.php中的testDefaultOptions()以获取此行为的示例。请注意,在请求发送之前,在每个API请求的开始调用此可调用的函数。
配置日志记录器
库执行最少的日志记录,但它可以配置为使用PSR-3兼容的日志记录器,以便消息最终显示在那里而不是error_log。
\Noos\Noos::setLogger($logger);
访问响应数据
您可以通过getLastResponse()在任何对象上访问最后API响应的数据。
$order= \Noos\Order::create(['provider' => 'manual', 'orderId' => '1', 'status' => 'complete', 'purchasedDate' => '', 'items' => ['sku' => 'MYSKU', 'name' => 'My sku', 'qtyOrdered' => 2]]); echo $order->getLastResponse();
SSL / TLS 兼容性问题
Noos的API现在要求所有连接使用TLS 1.2。一些系统(尤其是某些较旧的CentOS和RHEL版本)能够使用TLS 1.2,但默认会使用TLS 1.0或1.1。在这种情况下,您会收到一个invalid_request_error错误,错误信息如下:“Noos不再支持使用TLS 1.0进行的API请求。请使用TLS 1.2或更高版本的HTTPS连接进行初始化。”
建议的操作是升级您的cURL和OpenSSL包,以便默认使用TLS 1.2,但如果这不可能,您可能可以通过将CURLOPT_SSLVERSION选项设置为CURL_SSLVERSION_TLSv1或CURL_SSLVERSION_TLSv1_2来解决问题。
$curl = new \Noos\HttpClient\CurlClient([CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1]); \Noos\ApiRequestor::setHttpClient($curl);
配置自动重试
该库可以被配置为自动重试因间歇性网络问题而失败的请求。
\Noos\Noos::setMaxNetworkRetries(2);
将幂等键添加到请求中,以确保重试是安全的。
SSL / TLS配置选项
请参见上述“SSL / TLS兼容性问题”段落以获取完整上下文。如果您想确保您的插件可以在所有系统上使用,您应该添加一个配置选项,让用户选择不同的CURLOPT_SSLVERSION值:无(默认值)、CURL_SSLVERSION_TLSv1和CURL_SSLVERSION_TLSv1_2。