Transbank SOAP服务的更好实现

此包的规范存储库似乎已丢失,因此已冻结此包。

0.4.0 2020-06-07 17:30 UTC

This package is auto-updated.

Last update: 2022-05-07 21:49:04 UTC


README

一个非官方的(但更好的!)Transbank支付服务的SDK。

Actions Status

安装

您可以使用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上买杯啤酒或咖啡给我。