btcpayserver/btcpayserver-greenfield-php

BTCPay Server Greenfield API PHP 客户端库。

v2.7.1 2024-09-16 21:02 UTC

This package is auto-updated.

Last update: 2024-09-16 21:03:26 UTC


README

此库使将 BTCPay Server 集成到您的 PHP 应用程序中变得更容易。

方法

此库对 Greenfield API 采用了一种有意见的方法,旨在尽可能使您的生活和工作更轻松方便。因此,我们决定以不同的方式组织参数,但仍允许完全和高级的使用案例。

API 客户端参数的一般推理顺序如下

  • 首先,必需参数 => 方法参数不允许为 NULL
  • 推荐参数 => 允许默认为 NULL 的方法参数
  • 可选参数 => 允许默认为 NULL 的参数
  • 最后是高级参数 => 在一个额外的类中

返回 Unix 时间戳的方法始终以 Timestamp 结尾,如 getReceivedTimestamp(),以避免格式和时区混淆。这些始终以秒为单位(而不是毫秒)。

特性

  • 无外部依赖项。您只需将此代码放入项目中即可使用 composer 或不使用 composer。
  • 需要 PHP 8.0 及以上版本。已停用的版本将不会得到积极支持。
  • 包括电子商务所需的所有调用,但我们还需要添加更多。

待办事项

  • 将示例转换为测试
  • 获取器和设置器
  • 扩展到电子商务相关的 API 调用之外,并使此库达到 100% 完成。

如何使用 composer

composer require btcpayserver/btcpayserver-greenfield-php

如果您使用某些框架或其他项目,您可能已经准备好了。如果从头开始,请确保包括 Composer 自动加载器。

require __DIR__ . '/../vendor/autoload.php';

如何在不使用 composer 的情况下使用(不推荐)

src 目录中,我们有一个自定义的 autoload.php,您可以使用它来避免使用 composer。

// Require the autoload file.
require __DIR__ . '/../src/autoload.php';

// Example to get all stores.
$apiKey = '';
$host = ''; // e.g. https://your.btcpay-server.tld

try {
    $client = new \BTCPayServer\Client\Store($host, $apiKey);
    var_dump($client->getStores());
} catch (\Throwable $e) {
    echo "Error: " . $e->getMessage();
}

最佳实践

  • 始终使用权限尽可能少的 API 密钥。
  • 如果您只与特定的商店互动,请使用仅限于该商店或这些商店的 API 密钥。
  • 当处理传入的 webhook 时,请始终使用 API 重新加载数据,因为数据可能会在此期间过时或更改。Webhook 有效载荷在出错时可以重发,因此您可能会看到过时的信息。通过重新加载数据,您还可以保护自己免受可能伪造(假冒)请求的侵害。

常见问题解答

从哪里获取 API 密钥?

Greenfield API 的 API 密钥不再位于存储级别的 "访问令牌" 上。您需要转到您的帐户配置文件:"我的设置"(用户配置文件图标)-> "API 密钥"。您甚至可以将用户重定向到那里生成 API 密钥。

贡献

当您提交拉取请求时,我们使用静态分析器 PsalmPHP-CS-fixer 进行代码风格检查。请检查是否有任何错误并相应地进行修复。

代码风格

我们使用 PSR-12 代码风格来确保适当的格式和间距。您可以使用 composer 命令测试和格式化代码。在提交 PR 之前,您可以在运行 composer cs-checkcomposer cs-fix,这将运行 php-cs-fixer。

Greenfield API 覆盖范围

目前实施的功能在 此表格 中跟踪,并将不定期更新。如果希望贡献,请查看哪些领域仍需要工作。