pay-now/paynow-php-sdk

PHP 客户端库,用于访问 Paynow API

2.4.1 2024-08-12 07:52 UTC

README

Build Status Latest Version Software License Total Downloads

Paynow PHP 库提供了从用 PHP 编写的应用程序中访问 Paynow API 的功能。

要求

  • PHP 7.1 或更高版本
  • HTTP 客户端实现了 php-http/client-implementation。更多信息请参阅包列表

安装

Composer

使用 Composer 安装库

$ composer require pay-now/paynow-php-sdk

如果您没有实现 PSR-18 的 HTTP 客户端,可以使用

$ composer require pay-now/paynow-php-sdk nyholm/psr7 php-http/curl-client

使用自动加载器

require_once('vendor/autoload.php');

使用方法

发起支付

use Paynow\Client;
use Paynow\Environment;
use Paynow\Exception\PaynowException;
use Paynow\Service\Payment;

$client = new Client('TestApiKey', 'TestSignatureKey', Environment::SANDBOX);
$orderReference = "success_1234567";
$idempotencyKey = uniqid($orderReference . '_');

$paymentData = [
    'amount' => '100',
    'currency' => 'PLN',
    'externalId' => $orderReference,
    'description' => 'Payment description',
    'buyer' => [
        'email' => 'customer@domain.com'
    ]
];

try {
    $payment = new Payment($client);
    $result = $payment->authorize($paymentData, $idempotencyKey);
} catch (PaynowException $exception) {
    // catch errors
}

处理带有当前支付状态的通知

use Paynow\Notification;

$payload = trim(file_get_contents('php://input'));
$headers = getallheaders();
$notificationData = json_decode($payload, true);

try {
    new Notification('TestSignatureKey', $payload, $headers);
    // process notification with $notificationData
} catch (Exception $exception) {
    header('HTTP/1.1 400 Bad Request', true, 400);
}

header('HTTP/1.1 202 Accepted', true, 202);

发起支付退款

use Paynow\Client;
use Paynow\Environment;
use Paynow\Exception\PaynowException;
use Paynow\Service\Refund;

$client = new Client('TestApiKey', 'TestSignatureKey', Environment::SANDBOX);

try {
    $refund = new Refund($client);
    $result = $refund->create('YXZA-123-ABC-A01', uniqid(), 100);
} catch (PaynowException $exception) {
    // catch errors
}

检索可用的支付方式

use Paynow\Client;
use Paynow\Environment;
use Paynow\Exception\PaynowException;
use Paynow\Service\Payment;

$client = new Client('TestApiKey', 'TestSignatureKey', Environment::SANDBOX);

try {
    $payment = new Payment($client);
    $paymentMethods = $payment->getPaymentMethods('PLN', 100);
    $availablePaymentMethods = $paymentMethods->getAll();
} catch (PaynowException $exception) {
    // catch errors
}

文档

请参阅Paynow API 文档

支持

如果您有任何问题或问题,请通过 support@paynow.pl 联系我们的支持。

许可证

MIT 许可证。更多信息请参阅LICENSE 文件