futureecom / omnipay-tranzila
为 Omnipay 支付处理库的 TranZila 驱动程序。
Requires
- php: ^8.1
- ext-curl: *
- ext-json: *
- omnipay/common: ^3.0
Requires (Dev)
- laravel/pint: ^1.2
- omnipay/tests: ^4.1
- rector/rector: ^0.14.7
- symfony/var-dumper: ^5.0
This package is auto-updated.
Last update: 2024-09-14 14:11:11 UTC
README
Tranzila 驱动程序,用于 Omnipay PHP 支付处理库
Omnipay 是一个不依赖于框架、支持多网关的 PHP 支付处理库。此包实现了 Omnipay 的 Tranzila 支持。
安装
Omnipay 通过 Composer 安装。要安装,只需使用 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 中显示的链接。
抓取
要抓取支付,您必须提供交易参考。它由两个元素组成,我们在支付授权的响应中收到 - 索引和 AuthNr,用 -
分隔,例如: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 问题跟踪器 报告它,或者更好的方法是,分叉库并提交一个拉取请求。