avatec/omnipay-p24

用于 Omnipay 支付处理库的 Przelewy24 驱动程序。从 ticketswap/omnipay-przelewy24 分支而来

1.0 2023-01-11 15:14 UTC

This package is auto-updated.

Last update: 2024-09-11 18:59:18 UTC


README

Omnipay PHP 支付处理库的 Przelewy24 网关

Software License Build Status

Omnipay 是一个与框架无关、支持多网关的 PHP 8.0+ 支付处理库。此包实现了 Omnipay 对 Przelewy24 的支持。

有关 Przelewy24 API 的更多信息,请参阅 手册

安装

可以使用 Composer 安装此网关

$ composer require avatec/omnipay-p24

用法

此包提供了以下网关

  • Przelewy24

示例 - 获取支付链接

require_once  __DIR__ . '/vendor/autoload.php';

use Omnipay\Omnipay;

/** @var \Omnipay\Przelewy24\Gateway $gateway */
$gateway = Omnipay::create('Przelewy24');

$gateway->initialize([
    'merchantId' => 'YOUR MERCHANT ID HERE',
    'posId'      => 'YOUR POS ID HERE',
    'crc'        => 'YOUR CRC KEY HERE',
    'testMode'   => true,
]);

$params = array(
    'sessionId' => 2327398739,
    'amount' => 12.34,
    'currency' => 'PLN',
    'description' => 'Payment test',
    'returnUrl' => 'www.your-domain.nl/return_here',
    'notifyUrl' => 'www.your-domain.nl/notify_here',
    'card' => array(
        'email' => 'info@example.com',
        'name' => 'My name',
        'country' => 'NL',
    ),
);

$response = $gateway->purchase($params)->send();

if ($response->isSuccessful()) {
    $response->redirect();
} else {
    echo 'Failed';
}

您可以选择在网关初始化调用中添加 'channel' 参数来指定允许的支付渠道。

$gateway->initialize([
    //[...]
    'channel' => Gateway::P24_CHANNEL_CC,
]);
    

有关 'Channel' 所支持的所有值的列表,请参阅 przelewy24 文档

示例 - 验证支付(notifyUrl)

require_once  __DIR__ . '/vendor/autoload.php';

use Omnipay\Omnipay;

/** @var \Omnipay\Przelewy24\Gateway $gateway */
$gateway = Omnipay::create('Przelewy24');

$gateway->initialize([
    'merchantId' => 'YOUR MERCHANT ID HERE',
    'posId'      => 'YOUR POS ID HERE',
    'crc'        => 'YOUR CRC KEY HERE',
    'testMode'   => true,
]);

$params = array(
    'sessionId' => 2327398739,
    'amount' => 12.34,
    'transactionId' => 12345678,
    'method' => 63,
    'currency' => 'PLN',
    'statement' => 'p24-H00-B00-J00',
    'sign' => 'sign hashed'
);

$response = $gateway->completePurchase($params)->send();

if ($response->isSuccessful()) {
    echo 'Success';
} else {
    echo 'Failed';
}

支持

如果您遇到 Omnipay 的一般问题,我们建议在 Stack Overflow 上发布。请确保添加 omnipay 标签,以便更容易找到。

如果您想保持与发布公告、讨论项目想法或提出更详细的问题的更新,还可以订阅一个 邮件列表

如果您认为您发现了一个错误,请使用 GitHub 问题跟踪器 报告,或者更好的做法是分支库并提交拉取请求。

测试

$ composer test

安全

如果您发现任何与安全相关的问题,请通过电子邮件 info@ticketswap.com 报告,而不是使用问题跟踪器。

鸣谢

许可证

MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件