porta/billing

PortaOne 计费和 ESPF API 包装器

0.1.1 2023-06-21 22:52 UTC

This package is auto-updated.

Last update: 2024-09-22 01:51:37 UTC


README

目的

本包旨在简化在创建用户门户应用程序、集成和配置代码时与 PortaOne 计费系统的通信。为 composer 构建,支持 PSR-4 自动加载,支持并发/异步调用以更快地加载大量实体,并且易于与 DI 容器集成。

它从大多数依赖项中解耦,需要标准的 PSR 接口而不是精确的实现。它使用

  • PSR-7 标准对象,包括 Request、Response 和 Stream
  • PSR-17 requestFactory 和 StreamFactory 创建 PSR-7 对象
  • PSR-16 SimpleCache 对象来保存会话数据并提供会话持久性。包装了非常基本的实现,足以在不太高的负载环境中处理会话存储。
  • PSR-18 支持HTTP客户端,但缺乏对并发和异步请求的有效支持。最好使用像 Guzzle 这样的高级客户端及其适配器。

用法

用法示例开始,检查phpDoc。此库可以使与计费的通信更加简单,但您仍然需要深入了解计费架构、实体和逻辑。使用PortaOne API 文档,并始终将 API 参考和实时测试能力放在手边:在管理 web 界面所在服务器的 doc/api/ 路径下。

  • 使用 BillingESPF 类访问主要 API 或 ESPF API。
  • 使用 Config 类创建它,加载必要的配置数据或提供任何其他实现 ConfigInterface 的类。如果您使用具有自动装配功能的 DI 容器,您还可以在容器中设置它。
  • 对于跨多个脚本运行会话持久性,请使用任何 PSR-16 SimpleCache 实现。除非您的项目中还有其他缓存要求,否则您可以使用包含的简单 FileCache 实现。否则,请使用任何其他 PSR-6 实现,或者更重的 PSR-6 缓存,通过 PSR-16 到 PSR-6 桥接器。
  • 然后,在实例化了处理所有身份验证、会话和其他问题的包装器之后,使用它
    • 对于计费使用 call() 与计费通信。您只需要 API 终端和要发送的参数。如果您使用具有适当适配器(如 Guzzle)的高级客户端,您还可以使用 callConcurrent()callAsync()
    • ESPF 在处理 get()post()put()delete() 方面有不同的方法,请仔细阅读 ESPF API 文档。
  • 始终准备捕捉到如果出现问题,请捕捉到 异常

安装

在 Composer 存储中。只需添加适当的 require 部分

    "require": {
        "porta/billing": "^0.1"
    }

在更改使用的版本之前,请查阅 变更日志

依赖

Composer 依赖项

  • php: ^7.4|^8.0|^8.1|^8.2
  • psr/http-client: ^1.0.2
  • psr/http-factory: ^1.0.2
  • psr/simple-cache: ^1.0.1
  • psr/http-factory-implementation: ^1.0
  • psr/http-message-implementation: ^1.0

从这些依赖中,工厂是您真正需要选择和提供的。它可以是一个 guzzlehttp/psr7slim/psr7nyholm/psr7 或其他。

一些依赖项不在 composer 配置文件中,但需要记住

  • psr/simple-cache-implementation。包括非常简单的 PSR-16 实现,对于简单的用例可能已经足够。如果您需要项目中的更多缓存,请使用您选择的 PSR-16 缓存或带有 PSR-16 桥接的 PSR-6。连接到配置并继续。
  • psr/http-client-implementation。库使用自己的 HTTP 客户端适配器接口以允许并发和异步调用。它 可能 使用任何 PSR-18 HTTP 客户端,并且已经打包了 PSR-18 适配器。但最好使用更高级的客户端。由额外软件包直接支持的 Guzzle

测试

在 php 7.4 到 8.2 上使用 PHPUnit 9.6 进行测试,覆盖率达到 100%,但这并不意味着一切都会按预期工作。Guzzle 用于单元测试,但尚未解耦。

当前的测试和兼容性状态检查可以在 Github 流 上查看

要测试,请以开发模式安装,并使用

  • 从库根目录运行 composer test 命令以运行所有标准模块测试
  • 如果您有一个可用的 live PortaOne 计费服务器,请运行 composer livetest 以运行针对 live PortaOne 计费服务器的测试。

对于 live 测试,请运行 livetest 一次,它将创建配置文件模板。然后编辑文件以提供主机、用户名和密码或令牌,然后再次运行 livetest。测试后不要忘记删除配置文件!

手动测试并与 PortaBilling 发布 MR100 一起使用。