darkghosthunter/transbank

易于使用的PHP Transbank SDK。

v2.1.3 2021-12-24 17:38 UTC

This package is auto-updated.

Last update: 2024-08-29 00:40:32 UTC


README

rawpixel - Unsplash (UL) #SEDqvdbkDQw

Latest Stable Version License PHP Composer Coverage Status

Transbank

易于使用的PHP Transbank SDK。

支持Webpay、Webpay Mall和Webpay Oneclick Mall。

需求

安装

使用 Composer 安装它

composer require darkghosthunter/webpay

用法

此SDK模拟了官方Transbank PHP SDK中的所有Webpay、Webpay Mall和Oneclick Mall方法。

您可以在Transbank开发者网站上检查这些服务的文档。

快速入门

实例化 Transbank 对象。您可以手动完成,或者使用 make(),如果已安装Guzzle或Symfony HTTP客户端,则将使用这些客户端。

use DarkGhostHunter\Transbank\Transbank;

$transbank = Transbank::make();

如果您的项目不管理单个实例,则可以使用 getInstance() 接收静态Transbank实例。

use DarkGhostHunter\Transbank\Transbank;

$transbank = Transbank::getInstance();

环境和凭证

默认情况下,此SDK以 集成 环境启动,在此环境中执行的所有交易都通过使用Transbank自己的 集成 服务器进行模拟。

要在生产模式下操作,其中所有交易都将真实进行,您需要使用 toProduction() 以及一个包含服务名称及其由Transbank颁发给您的生产凭证的 arraywebpaywebpayMalloneclickMall

$transbank->toProduction([
    'patpass' => ['555876543210','7a7b7d6cce5e...']
]);

对于Mall操作,仅在执行交易时需要“子”商业代码。

使用服务

要使用Transbank服务,只需在 Transbank 实例上调用方法: webpaywebpayMalloneclickMall

use DarkGhostHunter\Transbank\Transbank;

$transaction = Transbank::singleton()
        ->webpay()
        ->create('order#123', 9990, 'https://app.com/compra');

HTTP客户端

此包与任何符合PSR-18的HTTP客户端兼容。如果您没有,可以安装 GuzzleSymfony

composer require guzzlehttp/guzzle:>=7.0

composer require symfony/http-client:>=5.2

一些PHP平台已经自带自己的HTTP客户端,如 AmpReactPHPSwoole

日志记录器(可选)

您可以使用此包与任何符合PSR-3的日志系统一起使用,以便调试交易。如果您没有,可以使用 Monolog

composer require monolog/monolog

所有操作都使用 debug 发送到日志记录器。

事件调度器(可选)

您可以使用此包与任何符合PSR-14的事件调度器一起使用,这样您就可以听到交易的开始和完成。如果您没有,可以使用 SymfonyLeague

composer require symfony/event-dispatcher

composer require league/event

此包发送以下事件

  • TransactionCreating 在Transbank创建交易之前。
  • TransactionCreated 在Transbank创建交易之后,但待支付。
  • TransactionCompleted 在Transbank完成交易或退款之后,无论成功与否。

异常

所有异常都实现 TransbankException,因此您可以轻松捕获并检查发生了什么。

由银行或信用卡发行商正确拒绝的交易不会抛出异常。

存在4种异常类型

  • ClientException:由不良交易、不良配置、中止、放弃、超时或无效值引起的任何错误。
  • NetworkException:来自Transbank服务器的任何通信错误,如网络超时或错误的端点。
  • ServerException:任何Transbank内部错误。
  • UnknownException:任何其他错误。

异常不会被记录。

在本地运行示例

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件

RedcompraWebpayOneclickOnepayPatpassTransbankTransbank S.A.的商标。本软件包及其作者与Transbank S.A.无关联。