定制 paykit-php/paykit 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

paykit-php/paykit

Composer 安装命令:

composer require paykit-php/paykit

包简介

Unified API for multiple payment gateways in PHP.

README 文档

README

Paykit is a modular payment gateway abstraction library for PHP. It provides a consistent interface to interact with multiple payment providers while keeping vendor-specific behavior isolated in dedicated drivers.

Installation

composer require paykit-php/paykit
composer require paykit-php/duitku

Basic Usage

use Paykit\Paykit;
use Paykit\Duitku\DuitkuGateway;

$paykit = new Paykit();

$paykit->register('duitku', function () {
    return new DuitkuGateway([
        'merchant_code' => 'your_merchant_code',
        'api_key' => 'your_api_key',
        'environment' => 'sandbox',
    ]);
});

$gateway = $paykit->driver('duitku');

Get Payment Methods

$methods = $gateway->getMethods(10000);

foreach ($methods->getItems() as $method) {
    echo $method->getCode();
    echo $method->getName();
}

Create Payment

use Paykit\DTO\CreatePaymentDto;
use Paykit\DTO\CustomerDto;
use Paykit\DTO\UrlDto;

$payment = $gateway->createPayment(
    new CreatePaymentDto(
        method: 'VC',
        amount: 10000,
        orderId: 'INV-001',
        customer: new CustomerDto(
            email: 'john@example.com',
            firstName: 'John'
        ),
        url: new UrlDto(
            callbackUrl: 'https://your-app.test/callback',
            successUrl: 'https://your-app.test/success',
            failedUrl: 'https://your-app.test/failed'
        )
    )
);

Inquiry Payment

$payment = $gateway->inquiry('INV-001');

echo $payment->getStatus()->value;

Redirect Handling

Some providers return users via redirect (success or failed URL).

use Paykit\Contracts\Capabilities\SupportsRedirect;

if ($gateway instanceof SupportsRedirect) {
    $payment = $gateway->handleRedirect($_GET);
}

Callback Handling (Webhook)

use Paykit\Contracts\Capabilities\SupportsWebhook;

$payload = json_decode(file_get_contents('php://input'), true);

if ($gateway instanceof SupportsWebhook) {
    $payment = $gateway->handleCallback($payload);
}

Payment Data

$payment->getOrderId();
$payment->getReferenceId();
$payment->getPaymentUrl();
$payment->getAmount();
$payment->getFee();
$payment->getStatus();

$details = $payment->getPayment();

$details?->getQris()?->getUrl();
$details?->getVirtualAccount()?->getNumber();

Notes

  • Payment method codes must be used exactly as provided by each vendor.
  • No normalization is applied to method codes.
  • Only payment flow and status are standardized.
  • Raw vendor response is always available via $payment->getRaw().

License

MIT

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-04-23

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固