futureecomv1 / omnipay-tranzila
用于 Omnipay 支付处理库的 TranZila 驱动器。
Requires
- php: >=7.4
- ext-curl: *
- ext-json: *
- omnipay/common: ^3.0
Requires (Dev)
- omnipay/tests: ^3.1
- symfony/var-dumper: ^5.0
- symplify/easy-coding-standard: ^7.2
This package is auto-updated.
Last update: 2024-09-30 01:41:15 UTC
README
用于 Omnipay PHP 支付处理库的 TranZila 驱动器
Omnipay 是一个不依赖于框架的多网关支付处理库,适用于 PHP。本包实现了 Omnipay 对 Tranzila 的支持。
安装
通过 Composer 安装 Omnipay。要安装,请使用 Composer 需求 league/omnipay
和 futureecom/omnipay-tranzila
composer require league/omnipay futureecom/omnipay-tranzila
基本用法
有关一般使用说明,请参阅主要的 Omnipay 存储库。
本包支持以下网关
- 授权
- 捕获
- 购买
- 退款
- 取消
Tranzila 文档
我们不是 Tranzila API 的作者!有关 Tranzila 的问题,请直接联系 Tranzila 支持团队。
支持的货币
Tranzila 仅支持四种货币
- EUR
- GBP
- ILS
- USD
如果您将使用不受支持的货币,您将收到一个 InvalidRequestException
。
测试模式
测试 Tranzila 账户只能由 Tranzila 支持团队创建。请与他们联系以创建您的“测试终端”。
您无法在您的测试账户上执行授权,并且购买金额只能达到 10 ILS。当您尝试执行任一操作时,您的请求将被拒绝。
授权
支付授权可以通过两种方式完成。
第一种是通过传输卡数据(如果网站未符合 PCI 标准,则不推荐使用)。第二种是将客户重定向到安全的支付页面(iframe)。
<?php use Futureecom\OmnipayTranzila\TranzilaGateway; /** @var TranzilaGateway $gateway */ $response = $gateway->authorize([ 'amount' => '10.00', 'currency' => 'ILS', 'myid' => '12345678', 'card' => [ 'ccno' => '4444333322221111', 'expdate' => '1225', 'mycvv' => '1234', ], ])->send();
要生成重定向链接,请发送上述请求,跳过 card
部分。在响应中,您将收到一个用于支付的 URL。
<?php use Futureecom\OmnipayTranzila\TranzilaGateway; /** @var TranzilaGateway $gateway */ $response = $gateway->authorize([ 'amount' => '10.00', 'currency' => 'ILS', 'myid' => '12345678', ])->send(); if ($response->isRedirect()) { echo $response->getRedirectUrl(); // https://direct.tranzila.com/terminal_name/iframe.php?tranmode=V¤cy=1&sum=1.00 }
将生成一个可以用于重定向客户或在 iframe 中显示的链接。
捕获
要捕获支付,您必须提供交易参考号。它由我们收到的支付授权响应中的两个元素组成,用 -
分隔,例如:22-000000
。
警告:如果使用重定向 URL 进行支付授权,则必须使用通知 URL 中的 transaction_reference
。
<?php use Futureecom\OmnipayTranzila\TranzilaGateway; /** @var TranzilaGateway $gateway */ $response = $gateway->capture([ 'amount' => '1', 'transaction_reference' => '22-000000', ])->send();
购买
购买执行的方式与授权相同。
<?php use Futureecom\OmnipayTranzila\TranzilaGateway; /** @var TranzilaGateway $gateway */ $response = $gateway->purchase([ 'amount' => '10.00', 'currency' => 'ILS', 'myid' => '12345678', 'card' => [ 'ccno' => '4444333322221111', 'expdate' => '1225', 'mycvv' => '1234', ], ])->send();
退款
Tranzila 也支持退货。但是,您只能对一次支付进行退货。因此,不支持部分退款。它与授权和购买的工作方式相同。在退货时,您可以使用 TranzilaTK(来自通知 URL)而不是信用卡详细信息。
<?php use Futureecom\OmnipayTranzila\TranzilaGateway; /** @var TranzilaGateway $gateway */ $response = $gateway->refund([ 'amount' => '5.00', 'currency' => 'ILS', 'transaction_reference' => '22-000000', ])->send();
取消
Tranzila 还支持取消交易。为此,我们只需要发送一个参考号。
<?php use Futureecom\OmnipayTranzila\TranzilaGateway; /** @var TranzilaGateway $gateway */ $response = $gateway->void([ 'transaction_reference' => '22-000000', 'TranzilaTK' => 'DdyniRvcUGHBj9xO', // TranzilaToken ])->send();
支持
如果您遇到 Omnipay 的一般问题,我们建议您在 Stack Overflow 上发布。请确保添加 omnipay 标签,以便容易找到。
如果您认为您发现了一个错误,请使用 GitHub 问题跟踪器 报告它,或者更好的是,fork 库并提交一个 pull request。