lava-payment/lava 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

lava-payment/lava

Composer 安装命令:

composer require lava-payment/lava

包简介

Lava Payment SDK

README 文档

README

compatible

SDK для работы с API Lava через фасад Lava\Api\Http\LavaFacade.

Установка

composer require lava-payment/lava

Быстрый старт

Инициализация (только shop-методы)

use Lava\Api\Http\LavaFacade;

$facade = new LavaFacade(
    'shop_secret_key',
    'shop_id',
    'shop_webhook_additional_key' // optional
);

Инициализация для profile/payoff методов

Для методов профиля и вывода (createPayoff, getStatusPayoff, getPayoffTariffs, checkWallet, getProfileBalance, checkPayoffSignature) нужно передать ProfileSecretDto.

use Lava\Api\Dto\Secret\ProfileSecretDto;
use Lava\Api\Http\LavaFacade;

$profileSecret = new ProfileSecretDto(
    'profile_id',
    'profile_secret_key',
    'profile_additional_key' // optional, нужен для checkPayoffSignature
);

$facade = new LavaFacade(
    'shop_secret_key',
    'shop_id',
    'shop_webhook_additional_key',
    null,
    null,
    null,
    $profileSecret
);

Методы фасада

Инвойсы

Создание платежа createInvoice

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

$dto = new CreateInvoiceDto(
    '300.09',
    'order-1001',
    'https://example.com/hook',
    'https://example.com/success',
    'https://example.com/fail',
    300,
    '{"productId":39}',
    'Pay product'
);

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

Возвращает CreatedInvoiceDto.

Статус платежа checkStatusInvoice

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

$dto = new GetStatusInvoiceDto(null, $invoiceId); // по invoiceId
$response = $facade->checkStatusInvoice($dto);

Возвращает StatusInvoiceDto.

Доступные тарифы getAvailibleTariffs

$tariffs = $facade->getAvailibleTariffs();

Возвращает массив объектов AvailibleTariffDto.

Возвраты

Создание возврата createRefund

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

$dto = new CreateRefundDto(
    'invoice-id',
    null,
    100.00
);

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

Возвращает CreatedRefundDto.

Статус возврата checkStatusRefund

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

$dto = new GetStatusRefundDto($refundId);
$response = $facade->checkStatusRefund($dto);

Возвращает StatusRefundDto.

Баланс

Баланс профиля getProfileBalance

$profileBalance = $facade->getProfileBalance();

Возвращает ProfileBalanceDto.

Баланс магазина getShopBalance (deprecated)

$shopBalance = $facade->getShopBalance();

Метод помечен как deprecated. Используйте getProfileBalance().

Выводы (Payoff)

Создание вывода createPayoff

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

$dto = new CreatePayoffDto(
    'withdraw-order-1',
    10.00,
    'lava_payoff'
);

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

Возвращает CreatedPayoffDto.

Статус вывода getStatusPayoff

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

$dto = new GetPayoffStatusDto(null, $payoffId);
$response = $facade->getStatusPayoff($dto);

Возвращает StatusPayoffDto.

Тарифы вывода getPayoffTariffs

$tariffs = $facade->getPayoffTariffs();

Возвращает массив DTO тарифов вывода.

Проверка кошелька checkWallet

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

$dto = new CheckWalletRequestDto('lava_payoff', 'wallet_value');
$response = $facade->checkWallet($dto);

Возвращает CheckWalletResponseDto.

Вебхуки и подписи

Проверка подписи shop webhook checkSignWebhook

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

if (!isset($headers['Authorization'])) {
    throw new Exception('Authorization header is required');
}

$isValid = $facade->checkSignWebhook($data, $headers['Authorization']);

Проверка подписи payoff webhook checkPayoffSignature

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

if (!isset($headers['Authorization'])) {
    throw new Exception('Authorization header is required');
}

$isValid = $facade->checkPayoffSignature($data, $headers['Authorization']);

Исключения

При ошибках API методы выбрасывают исключения (например, InvoiceException, PayoffException, RefundException, BaseException и другие). Рекомендуется оборачивать вызовы фасада в try/catch и логировать сообщение и код ошибки.

lava-payment/lava 适用场景与选型建议

lava-payment/lava 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 65.22k 次下载、GitHub Stars 达 9, 最近一次更新时间为 2022 年 11 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「lava」 「lava-sdk」 「lava payment」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 lava-payment/lava 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 lava-payment/lava 我们能提供哪些服务?
定制开发 / 二次开发

基于 lava-payment/lava 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 65.22k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 9
  • 点击次数: 10
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 9
  • Watchers: 0
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-11-08