muhammadnan / tripay-payment-gateway
PHP 付款网关 Tripay 库
Requires
- guzzlehttp/guzzle: ^7.0
- symfony/http-foundation: ^6.0
- vlucas/phpdotenv: ^5.3
Requires (Dev)
- pestphp/pest: ^1.18
- symfony/var-dumper: ^5.1.4
README
此包是非官方的,已与 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。我们将审查您的请求,并在完成审查后,将您的请求合并到开发分支。谢谢