faxi-online / sisp-php
该软件包最新版本(dev-main)没有提供许可证信息。
实现一个库,以方便的方式处理SISP vinti4支付。
dev-main
2022-05-17 17:56 UTC
This package is auto-updated.
Last update: 2024-09-17 22:54:59 UTC
README
这是一个库的实现,用于以简单的方式处理SISP https://www.sisp.cv/ vinti4 https://www.vinti4.cv/ 支付。
安装
将项目文件夹下载到您的项目中。或者使用composer安装
composer require faxi-online/sisp-php:dev-main
在您的项目中包含
导入库文件;
include "../Sisp.php";
或包含composer自动加载;
include "vendor/autoload.php";
创建交易对象
从 Sisp 类创建交易对象。您可以传递三个参数
- 您的POS Id/标识符
- 相应的POS认证码
- VBV API URL,默认设置为 "https://mc.vinti4net.cv/BizMPIOnUsSisp",请记住在生成时不要包含路径 "/CardPayment",因为它将根据交易代码自动添加
use Faxi\Sisp; $payment = new Sisp( "90000045", "kfyhhKJH875ndu44" );
生成交易ID
生成您的交易ID,最大为15个字符,支付成功后不应重复使用该ID进行新交易。
// sample to generate id from timestamp $transaction_id = "T" . date('YmdHms');
生成HTML购买表单
您可以通过调用 buyForm 方法生成HTML表单。它接受三个参数
- 交易ID,您将在交易回调中收到
- 交易金额
- 回调URL,交易结果将发送到这里
$buyForm = $payment->buyForm( $transaction_id, 1000, "https:///sisp-php/src/Faxi/samples/callback-buy.php" );
在HTML页面上放置表单
只需将此表单放入您的HTML页面,并通过调用 document.forms[0].submit(); 提交它
<html> <head> <title>Do payment</title> </head> <body> <div> <h5>Do payment</h5> <?= $buyForm ?> <button onclick="startTransaction()"> Start Transaction </button> </div> <script> function startTransaction() { document.forms[0].submit(); } </script> </body> </html>
交易结果回调
要处理回调结果,我们应该使用 onTransactionResult 方法,它接收三个参数
- 成功回调函数
- 错误回调函数
- 取消回调函数
$payment = new Sisp( "90000045", "kfyhhKJH875ndu44" ); $payment->onTransactionResult( // success callback function ($transaction_id, $clearingPeriod, $sisp_transaction_id){ echo "<p>Payment sucessfully for $transaction_id</p>"; // save clearingPeriod and sisp_transaction_id // you will need them to do refund later echo "<p>merchantRespCP: " . $clearingPeriod. "</p>"; echo "<p>merchantRespTid: " . $sisp_transaction_id . "</p>"; }, // error callback function ($transaction_id, $errorDescription, $errorDetail, $errorAdditionalMessage){ echo "<p>Error on transaction $transaction_id</p>"; echo "<p>Error: description $errorDescription</p>"; echo "<p>Error: detail $errorDetail</p>"; echo "<p>Error: additional $errorAdditionalMessage</p>"; }, // cancellation callback function (){ echo "<p>Transaction cancelled</p>"; } );
生成手机充值HTML表单
您可以通过调用 phoneRechargeForm 方法生成HTML表单。它接受五个参数
- 交易ID,您将在交易回调中收到,最大为15个字符
- 交易金额
- 您想要充值的手机号码
- 运营商ID(它将由SISP提供)
- 回调URL,交易结果将发送到这里
$buyForm = $payment->phoneRechargeForm( $transaction_id, 1000, 9112233, 2, "https:///sisp-php/src/Faxi/samples/callback-buy.php" );
生成服务支付HTML表单
您可以通过调用 servicePaymentForm 方法生成HTML表单。它接受五个参数
- 交易ID,您将在交易回调中收到,最大为15个字符
- 交易金额
- 您想要支付的账单参考号
- 实体ID(它将由SISP提供)
- 回调URL,交易结果将发送到这里
$buyForm = $payment->servicePaymentForm( $transaction_id, 1000, "123456789", "6", "https:///sisp-php/src/Faxi/samples/callback-buy.php" );
生成退款HTML表单
调用 refundForm 方法。它接收五个参数
- 交易ID,您将在交易回调中收到,最大为15个字符,(它不能与退款交易相同)
- 要退回的金额
- 被退款交易的清算期号,它在交易结果中收到
- 在交易结果中收到的SISP交易ID
- 回调URL,退款结果将发送到这里
$transaction_id = "T" . date('YmdHms'); $refundForm = $payment->refundForm( $transaction_id, 1000, 1765, 76133, "https:///sisp-php/src/Faxi/samples/callback-refund.php" );
要处理退款结果,您必须执行以下代码。
$payment->onRefundResult( // success callback function ($transaction_id){ echo "<p>Refunded done for $transaction_id</p>"; }, // error callback function ($transaction_id, $errorDescription, $errorDetail, $errorAdditionalMessage){ echo "<p>Error on refund for $transaction_id</p>"; echo "<p>Error: description $errorDescription</p>"; echo "<p>Error: detail $errorDetail</p>"; echo "<p>Error: additional $errorAdditionalMessage</p>"; }, // cancellation callback function (){ echo "<p>Refund cancelled</p>"; } );
国际化
如果您想,您可以更改支付表单的语言,它支持en和pt。
$payment->lang = "pt";