resursbank / ecom
Requires
- php: ^8.1||^8.2||^8.3
- ext-curl: *
- ext-openssl: *
Requires (Dev)
- brianium/paratest: ^6.11
- phpmd/phpmd: ^2
- phpstan/phpstan: ^1
- phpunit/phpunit: ^9
- slevomat/coding-standard: ~8.0
- squizlabs/php_codesniffer: ^3
- dev-master
- 3.0.0
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.3
- 2.0.2
- 2.0.0
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- dev-ECP-848
- dev-bad-script-tag-in-phtml
- dev-ECP-881
- dev-rco-plus-dev
- dev-translation-quickfix
- dev-ECP-813
- dev-ECP-760
- dev-ECP-733-dev
- dev-ECP-741
- dev-rco-develop
- dev-ECP-609
- dev-ECP-694
- dev-ECP-682
- dev-ECP-632
- dev-ECP-480
- dev-ECP-334
- dev-ECP-320
- dev-ECP-307
- dev-ECP-257
- dev-ECP-224
- dev-ECP-141
- dev-ECP-142
- dev-ECP-118
- dev-ECP-36
This package is auto-updated.
Last update: 2024-09-27 13:34:56 UTC
README
用于与Resurs Bank API通信的库。此库旨在实现完整的API覆盖。
设置
在设置开发项目时,请确保父目录不命名为 src,因为这会破坏PHPCS配置(这意味着项目的 src 目录不能位于 src/src)。
当使用PHPStorm时,右键点击 tests 目录,选择 "标记目录为" -> "测试源"。请记住从 qa/phpstorm 导入代码风格和检查设置。
配置
必须始终在执行任何API调用之前调用 Config::setup()。此方法创建了一个配置好的ECom库实例,包含执行API调用和相关操作(如日志记录、缓存、数据持久化等)所需的所有必要信息。Config 作为单例存在,实例存储在 Config::$instance。
这有点不寻常,但它允许库有一个单一的配置点。这使得集成更加简单。例如,如果您在应用程序的各个地方使用ECom,您可以在应用程序生命周期早期的一个中央位置调用 Config::setup(),确保任何对库的调用都始终配置正确,无论您可能在何处需要库。这也可以对依赖关系管理产生积极影响。
异常
异常
自定义异常类。
- ApiException | 所有API异常的基异常。
- AuthException | 身份验证错误异常。
- CacheException | 缓存错误异常。
- CurlException | cURL错误异常。
- EventException | 事件错误异常。
- EventSubscriberException | 事件订阅者错误异常。
- FilesystemError | 文件系统错误异常。
- IOException | I/O错误异常。
- TestException | 测试错误异常。
- ValidationException | 验证错误异常,见下文。
Exceptions/Validation
用于数据验证的自定义异常类。
注意: 所有这些异常都是 ValidationException 的子类。
- EmptyValueException | 值不应为空。
- FormatException | 值不在预期的格式中。
- IllegalCharsetException | 值包含非法字符。
- IllegalTypeException | 值不是预期的类型。
- IllegalValueException | 值不被允许。
- MissingKeyException | 数组中没有找到必需的键。
库
库位于 src/Lib 下。库可以相互通信。因此,它们可以相互依赖。这些类包含抽象业务逻辑,不打算直接由最终用户调用。库不允许与模块通信,但模块允许与库通信。
API
通用API类和功能。
- Mapi | 包含与Merchant API通信的集中业务逻辑。
缓存
- AbstractCache | 所有缓存实现的抽象基类。
- CacheInterface | 所有缓存实现的接口。
- Filesystem | 文件系统缓存实现。
- None | 无缓存实现。这是默认的缓存实现。
- Redis | Redis缓存实现。
集合
- Collection | 所有集合实现的抽象基类。
DataStorage
正在进行中。旨在成为持久数据存储实现。
事件
正在进行中。旨在成为模块间通信的事件系统。
地区
正在进行中。旨在帮助本地化和国家可用性。
日志
日志记录功能。
- FileLogger | 文件日志记录实现。
- LoggerInterface | 所有日志记录实现的接口。
- LogLevel | 日志级别枚举。
- StdoutLogger | 标准输出日志记录实现。
模型
数据对象实现。
- 模型 | 所有模型实现的抽象基类。
网络
网络通信功能。
- ApiType | API类型枚举。
- AuthType | 身份验证类型枚举。
- ContentType | 内容类型枚举。
- Curl | Curl实现。
- RequestMethod | 请求方法枚举。
- Url | URL实现。
- Curl/Header | Curl头部的辅助方法。
- Model/Auth/Basic | 基本认证模型。
- Model/Auth/Jwt | JWT认证模型。
- Model/Header | 头部模型。
- Model/JwtToken | JWT令牌模型。
- Model/Response | 通用响应模型。这是所有API调用的预期返回类型。
简化版
与简化API相关的特定数据和逻辑。
- Config | 简化API的配置对象。
工具
不属于任何特定库的通用功能。
- Generic | 提取Composer和Docblock信息的方法。
- DataConverter | 帮助我们将匿名数组转换为已知对象。还允许我们将多维数组转换为集合。
- DataConverter/TestClasses | DataConverter的测试类。
验证
帮助我们验证各种类型数据的函数。根据它们验证的数据类型,将类分开。
- ArrayValidation | 数组的验证。
- BoolValidation | 布尔的验证。
- FloatValidation | 浮点数的验证。
- IntValidation | 整数的验证。
- StringValidation | 字符串的验证。
模块
模块是独立的功能单元,旨在供最终用户使用。模块之间不允许通信,以提供最大灵活性。
年金
年金系数的集成,目前尚未完成。目前这仅反映我们如何利用事件库在获取支付方式时获取年金系数信息(从API中获取每个方法获取的系数)。由于模块之间不允许相互了解,这是实现此功能的最有效方法。
支付方式
支付方式的集成,目前尚未完成。工作正在进行中。
商店
在商家API(MAPI)中实现商店。
- Repository | Store的存储库。
- Api/GetStores::call() | 从API获取可用的商店列表。
- Model/* | API请求和响应的模型类。
请注意,所有API调用都应通过存储库执行。
每个API账户都有一个或多个商店。您可以通过存储库类获取可用的商店列表。例如,您将需要您的商店来获取支付方式。存储库类将返回从缓存或直接从API读取的Collection的Store对象。
回调
SDK不明确处理传入的回调。然而,它仍然可以处理来自Resurs发送的回调的数据模型。
回调由位于src/Lib/Module/Callback下的存储库处理。
在其最简单形式中(因为回调类型不是自动发现的),您可以使用以下代码获取正确的授权(回调模型,其中存储库本身也处理通过php://input接收到的数据)。
use Resursbank\Ecom\Module\Callback\Repository;
$this->callbackModel = (new Repository(CallbackType::AUTHORIZATION))->getCallbackModel();
模型基于从Resurs发送的数据(您可以在这里了解有关信息,并且它们存储在src/Lib/Model/Callback中,如下所示
- 授权
- 管理