Transbank SOAP服务的更好实现
此包的规范存储库似乎已丢失,因此已冻结此包。
0.4.0
2020-06-07 17:30 UTC
Requires
- php: >=7.2
- ext-dom: *
- ext-json: *
- ext-openssl: *
- ext-soap: *
- better-transbank/certificates: ^1.0
- oo-php/openssl: ^0.1.0
- psr/event-dispatcher: ^1.0
- psr/log: ^1.1
- symfony/console: ^3.4|^4.0|^5.0
Requires (Dev)
- adlawson/vfs: ^0.12.1
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: ^8.5
- vimeo/psalm: ^3.8
This package is auto-updated.
Last update: 2022-05-07 21:49:04 UTC
README
一个非官方的(但更好的!)Transbank支付服务的SDK。
安装
您可以使用composer轻松安装此SDK
composer require better-transbank/sdk
稳定性承诺:
此库遵循语义版本控制,因此我们承诺从
1.0.0版本开始,维护api的稳定性。
快速入门
创建一个普通事务并显示WebpayPlus支付表单非常简单
use BetterTransbank\SDK\Config; use BetterTransbank\SDK\Html\PaymentForm; use BetterTransbank\SDK\Services\WebpayPlus\Transaction; use BetterTransbank\SDK\TestingCredentials; use BetterTransbank\SDK\Transbank; $config = Config::fromCredentials(TestingCredentials::forWebpayPlusNormal()); $transbank = Transbank::create($config); $transaction = Transaction::normal( '12345', 10000, 'https://:8000/return', 'https://:8000/final' ); $result = $transbank->webpayPlus()->register($transaction); PaymentForm::prepare($result)->send();
注意:请避免使用
PaymentForm::send()方法,因为它假设您使用PHP CGI,并且您的代码库中有多个PHP脚本。相反,我们建议使用良好的HTTP抽象,如symfony/http-foundation或任何实现psr/http-message的版本,并使用单个入口点。
为什么需要一个新的SDK?
我长期以来一直使用Webpay官方SDK,并发现其中存在许多问题。
- SOAP协议在各个服务的薄弱抽象上展开
- XML的WSSE签名使用的是一组神秘的类,这些类已经没有支持(并且没有MIT许可证)
- 缺乏面向对象编程的良好实践(封装、接口编程、设计模式)
- 几乎在所有地方都缺乏严格的类型检查
- API冗长且复杂
- 缺乏足够的单元测试
- 没有在DocBlock中记录可能的异常
- 不使用PHP 7+中的新功能和标准
出于这些原因,我决定开发一个新的SDK,以满足我的需求,并且要可靠得多,易于使用。
要详细了解我开发此SDK的原因,您可以查看我的博客文章,其中我还详细解释了开发过程。
注意: Freshwork Studio开发了一个SDK,解决了这些问题中的几个,但本质上它是一个带有一些额外功能的包装器,它基于官方SDK的相同逻辑。而这是一个从头开始实现的。
实现的Transbank服务
- Webpay Plus(普通、多次和订阅交易)
- 商业集成(延迟捕获和取消)
- Webpay OneClick
文档
此库提供了详细的文档,您可以查看以深入了解库。
贡献
您可以在贡献指南中阅读如何为此存储库做出贡献,其中解释了如何通过代码或报告问题来贡献。
此外,如果这个库或者我开发的任何一个库帮到了你,让你摆脱了困境,你可以在Github Sponsors上买杯啤酒或咖啡给我。