Lava支付SDK

dev-main 2024-03-21 10:21 UTC

README

compatible

安装

composer require lava-payment/lava

使用

为了工作,需要获取商店的密钥。

初始化

use Lava\Api\Http\LavaFacade;

$facade = new LavaFacade('your secret key', 'shopId', 'your additional key');

获取商店余额

$response = $facade->getShopBalance();

在成功请求后,您将获得包含balance和freezeBalance的对象。

在失败请求中,将抛出带有消息和响应代码的异常。

创建支付

方法createInvoice接受一个createInvoiceDto对象作为输入,该对象本身有两个必需参数sum和orderId。

use Lava\Api\Dto\Request\Invoice\CreateInvoiceDto;

$createInvoiceDto = new CreateInvoiceDto(
    300.09,
    'orderId', 
    'https://exaple.com', 
    'https://exaple.com', 
    'https://exaple.com', 
    300, 
    '{productId: 39}', 
    'Pay product'
);

$response = $facade->createInvoice($createInvoiceDto);

在成功请求后,您将获得一个包含invoiceId、amount、expired、status、shopId和url的对象。

在失败请求中,将抛出带有消息和响应代码的异常。

检查支付状态

方法checkStatusInvoice接受一个GetStatusInvoiceDto对象作为输入,该对象接受两个参数,其中一个参数是必需的。

invoiceId - 创建支付后获得的id

orderId - 您系统中支付的id

use Lava\Api\Dto\Request\Invoice\GetStatusInvoiceDto;

$statusInvoice = new GetStatusInvoiceDto(null, $invoiceId); //проверка платежа по invoiceId

$response = $facade->checkStatusInvoice($statusInvoice);

在成功请求后,您将获得一个StatusInvoiceDto对象。

在失败请求中,将抛出带有消息和响应代码的异常。

创建输出

方法createPayoff接受一个CreatePayoffDto对象作为输入,该对象接受三个必需参数

orderId - 您系统中输出的id,amount - 输出金额和service - 输出到哪个服务。

use Lava\Api\Dto\Request\Payoff\CreatePayoffDto;

$payoffCreate = new CreatePayoffDto('1234', 10, 'lava_payoff');

$response = $facade->createPayoff($payoffCreate);

在成功请求后,您将获得一个包含2个参数的CreatedPayoffDto对象

refundId - 我们系统中输出的id和status - 输出的当前状态。

在失败请求中,将抛出带有消息和响应代码的异常。

输出信息

方法getStatusPayoff接受一个GetPayoffStatusDto对象作为输入,该对象接受两个参数,其中一个参数是必需的。

payoffId - 创建输出后获得的id

orderId - 您系统中支付的id

use Lava\Api\Dto\Request\Payoff\GetPayoffStatusDto;

$payoffStatus = new GetPayoffStatusDto(null, $payoffId);

$response = $facade->getStatusPayoff($payoffStatus);

在成功请求后,您将获得一个包含整个输出信息的StatusPayoffDto对象。

在失败请求中,将抛出带有消息和响应代码的异常。

创建退款

方法createRefund接受一个CreateRefundDto对象作为输入,该对象接受一个必需参数invoiceId - 我们系统中的支付id。对于部分退款,除了invoiceId之外,还需要传递退款金额。

use Lava\Api\Dto\Request\Refund\CreateRefundDto;

$refundCreate = new CreateRefundDto('5b7d4464-d375-41d4-95b1-bb9786fbbac7', null, 100);

$response = $facade->createRefund($refundCreate);

在成功请求后,您将获得一个CreatedRefundDto对象。

在失败请求中,将抛出带有消息和响应代码的异常。

退款信息

方法checkStatusRefund接受一个GetStatusRefundDto对象作为输入,该对象接受一个必需参数refundId - 我们系统中的退款id。

use Lava\Api\Dto\Request\Refund\GetStatusRefundDto;

$refundGetStatus = new GetStatusRefundDto($refundId);

$response = $facade->checkStatusRefund($refundGetStatus);

在成功请求后,您将获得一个StatusRefundDto对象。

在失败请求中,将抛出带有消息和响应代码的异常。

创建H2H发票

方法createH2hInvoice接受一个CreateH2hInvoiceDto对象作为输入,该对象接受六个必需参数:amount - 发票金额,orderId - 您系统中的id,cvv - 卡的cvv,month - 卡有效期月份,year - 卡有效期年份,cardNumber - 卡号

use Lava\Api\Dto\Request\H2h\CreateH2hInvoiceDto;

$h2hCreate = new CreateH2hInvoiceDto(
        100,
        "orderId",
        701,
        11,
        30,
        '5536914283728079'
    );

$response = $facade->createH2hInvoice($h2hCreate);

在成功请求后,您将获得一个CreatedH2hInvoiceDto对象。

在失败请求中,将抛出带有消息和响应代码的异常。

创建H2H SBP发票

方法createH2hInvoice接受一个CreateH2hInvoiceDto对象作为输入,该对象接受六个必需参数:amount - 发票金额,orderId - 您系统中的id,ip - 用户ip

use Lava\Api\Dto\Request\H2h\CreateSBPH2HDto;

$h2hCreate = new CreateSBPH2HDto(
        100,
        $orderId,
        '127.0.0.1'
    );

$response = $facade->createH2HSpbInvoice($h2hCreate);

在成功请求后,您将获得一个CreatedSBPH2hDto对象。

在失败请求中,将抛出带有消息和响应代码的异常。

检查Webhook签名

方法checkSignWebhook接受两个参数:请求体(json格式)和来自'Authorization'标题的签名。

$data = file_get_contents('php://input');
$hookSignature = getallheaders();

if(!isset($hookSignature['Authorization'])) {
    throw new Exception();
}

$facade->checkSignWebhook($data, $hookSignature['Authorization']);