muhammadnan/tripay-payment-gateway

PHP 付款网关 Tripay 库

2.0.1 2022-02-16 01:04 UTC

This package is auto-updated.

Last update: 2024-09-25 04:10:52 UTC


README

Latest Stable Version Total Downloads License

此包是非官方的,已与 Composer 兼容,更多详情请访问文档

此包旨在使 PHP 用户更容易使用

重要:请确保您已阅读文档并理解这些方法的使用目的!

使用此包需要 PHP 8 及以上版本

PHP >8 的安装

composer require muhammadnan/tripay-payment-gateway

PHP <8 的安装

composer require muhammadnan/tripay-payment-gateway:1.0.5.1

配置

在开始进一步操作之前,您必须定义或导入 tripay 以进行进一步配置

use Tripay\Main;

然后配置 api-key、private-key、merchant-code

$main = new Main(
    'your-api-key',
    'your-private-key',
    'your-merchant-code',
    'sandbox' // fill for sandbox mode, leave blank if in production mode
);

或者您可以在项目(如 laravel、codeigniter)中创建或添加环境变量(如下所示)

TRIPAY_API_KEY='your-api-key'
TRIPAY_PRIVATE_KEY='your-private-key'
TRIPAY_MERCHANT_CODE='your-merchant-code'
TRIPAY_MODE='sandbox' // fill for sandbox mode, leave blank if in production mode

并在项目添加环境变量后声明主类如下

$main = new Main();

默认情况下,模式将处于生产模式,要将其更改为沙盒模式,可以在 merchant-code 后添加 'sandbox'。

可用内容

目前可用的内容方法

请求可用

请求可以返回可用内容,以下为可用方法的列表

付款通道

此 API 用于获取所有可用付款通道的完整列表,包括每个通道的交易费用信息

$main->initChannelPembayaran()

下一个方法可以在 请求方法 中查看,或者在示例中查看

付款说明

此 API 用于从每个通道检索付款说明

$code = 'BRIVA'; //more info code, https://tripay.co.id/developer
$init = $main->initInstruksiPembayaran($code)

下一个方法可以在 请求方法 中查看,或者在示例中查看

商家付款通道

此 API 用于获取您商家账户中可用的付款通道列表,包括每个通道的交易费用信息

$code = 'BRIVA'; //more info code, https://tripay.co.id/developer
$init = $main->initMerchantChannelPembayaran($code);

下一个方法可以在 请求方法 中查看,或者在示例中查看

费用计算器

此 API 用于根据指定金额获取每个通道的详细交易费用计算

$code = 'BRIVA'; //more info code, https://tripay.co.id/developer
$amount = 1000;//your amount
$init = $main->initKalkulatorBiaya($code, $amount);

下一个方法可以在 请求方法 中查看,或者在示例中查看

交易列表

此 API 用于获取商家交易列表

$page = 1;
$per_page = 50; 
$sort = 'desc';
$reference = 'T0001000000455HFGRY';
$merchant_ref = 'INV57564';
$method = 'BRIVA';
$status = 'PAID';

$init = $main->initDaftarTransaksi(
    $page,
    $per_page, 
    $sort, 
    $reference, 
    $merchant_ref, 
    $method, 
    $status
);

下一个方法可以在 请求方法 中查看,或者在示例中查看

交易

在进行下一步交易之前,请配置您的参考商家

$merchantRef = 'your-merchant-ref';//your merchant reference
$init = $main->initTransaction($merchantRef);

在进行签名之前,请设置关闭交易的金额,对于开放交易,请设置付款方式

$init->setAmount(1000); // for close payment
$init->setMethod('BRIVAOP'); // for open payment

注意:如果您使用开放付款,请不要定义金额;反之,如果您使用关闭付款,请不要定义金额

创建签名

$signature = $init->createSignature();

关闭交易

要定义关闭交易,请使用 closeTransaction () 方法

$transaction = $init->closeTransaction(); // define your transaction type, for close transaction use `closeTransaction()`

定义关闭交易后,请使用 setPayload (array $ data) 方法设置负载

示例

$transaction->setPayload([
    'method'            => 'BRIVA', // IMPORTANT, dont fill by `getMethod()`!, for more code method you can check here https://tripay.co.id/developer
    'merchant_ref'      => $merchantRef,
    'amount'            => $init->getAmount(),
    'customer_name'     => 'Nama Pelanggan',
    'customer_email'    => 'emailpelanggan@domain.com',
    'customer_phone'    => '081234567890',
    'order_items'       => [
        [
            'sku'       => 'PRODUK1',
            'name'      => 'Nama Produk 1',
            'price'     => $init->getAmount(),
            'quantity'  => 1
        ]
    ],
    'callback_url'      => 'https://domainanda.com/callback',
    'return_url'        => 'https://domainanda.com/redirect',
    'expired_time'      => (time()+(24*60*60)), // 24 jam
    'signature'         => $init->createSignature()
]); // set your payload, with more examples https://tripay.co.id/developer

要获取负载,您可以使用 getPayload() 方法

设置交易后,您可以使用 getData () 方法直接发送请求并获取数据,或者您可以在 请求方法 中查看更多方法,或者在示例中查看

获取关闭交易详情

要查看更多交易数据,您可以在交易详情中查看,对于关闭交易,请看下面的参考代码在哪里获取?请转到模拟器菜单,在交易菜单中获取它,这里有可以匹配的参考代码

$referenceCode = 'your-reference-code'; // fill by reference code
$detail = $transaction->getDetail($referenceCode); // return get detail your transaction with your reference code

下一个方法可以在 请求方法 中查看,或者在示例中查看

开放交易

要定义关闭事务,请使用 openTransaction () 方法

$transaction = $init->openTransaction(); // define your transaction type, for close transaction use `openTransaction()`

定义完打开事务后,请使用 setPayload (array $ data) 方法设置有效负载

示例

$transaction->setPayload([
    'method'            => $init->getMethod(),
    'merchant_ref'      => $merchantRef,
    'customer_name'     => 'Nama Pelanggan',
    'signature'         => $init->createSignature()
]); // set your payload, with more examples https://tripay.co.id/developer

要获取负载,您可以使用 getPayload() 方法

设置交易后,您可以使用 getData () 方法直接发送请求并获取数据,或者您可以在 请求方法 中查看更多方法,或者在示例中查看

获取打开详细事务

要查看更多交易数据,您可以在交易详情中查看。对于关闭事务,请看下文“在哪里获取uuid?”请打开交易菜单,然后选择打开支付,在那里可以找到uuid代码

$uuidCode = 'your-uuid-code'; // fill by reference code

$detail = $transaction->getDetail($uuid); // return get detail your open transaction with your uuid code

下一个方法可以在 请求方法 中查看,或者在示例中查看

获取支付列表事务

要查看在打开事务中完成的支付列表,可以使用此方法。您可以在您的账户中获取uuid。

$referenceCode = 'your-reference-code'; // fill by reference code

$detail = $transaction->getDetail($referenceCode); // return get detail your transaction with your reference code

下一个方法可以在 请求方法 中查看,或者在示例中查看

回调

回调是从TriPay服务器向用户服务器发送交易通知的方法。当客户的支付完成时,TriPay系统将提供包含交易数据的通知,然后可以由用户系统进一步管理。

在开始之前,请定义以下方法

$init = $main->initCallback(); // return callback

接收JSON

要获取由tripay发送的json,可以使用以下方法

$init->get(); // get all callback

解码JSON

而不是在json_decode上浪费时间,此包提供了该功能

$init->getJson(); // get json callback

获取签名

请使用以下方法从tripay获取签名

$init->signature(); // callback signature

回调签名

tripay还会发送一个回调签名来验证客户数据

$init->callbackSignature(); // callback signature

调用事件

为了重新验证,tripay以payment_status的形式发送事件,此包也捕捉到这一点

$init->callEvent(); // callback event, return `payment_status`

验证签名

为了缩短代码,我们还准备了签名验证

$init->validateSignature(); // return `true` is valid signature, `false` invalid signature

验证事件

为了进一步缩短代码,我们还设置了验证事件

$init->validateEvent(); // return `true` is PAID, `false` meaning UNPAID,REFUND,etc OR call event undefined

测试

此包使用PHPunit进行测试,但主要是直接测试

贡献

如果您想为这个SDK做出贡献,您可以通过fork、编辑和创建pull request。我们将审查您的请求,并在完成审查后,将您的请求合并到开发分支。谢谢