futureecomv1/omnipay-tranzila

用于 Omnipay 支付处理库的 TranZila 驱动器。

dev-master 2022-11-03 06:57 UTC

This package is auto-updated.

Last update: 2024-09-30 01:41:15 UTC


README

用于 Omnipay PHP 支付处理库的 TranZila 驱动器

Build Latest Stable Version Total Downloads

Omnipay 是一个不依赖于框架的多网关支付处理库,适用于 PHP。本包实现了 Omnipay 对 Tranzila 的支持。

安装

通过 Composer 安装 Omnipay。要安装,请使用 Composer 需求 league/omnipayfutureecom/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&currency=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。