nuvei / nuvei-server-php

访问Nuvei API的PHP客户端库

3.2.0 2024-08-15 06:42 UTC

README

Nuvei的REST API SDK为PHP提供了访问Nuvei REST API的开发者工具。Nuvei的REST API是一个简单、易于使用、安全且无状态的API,允许在线商家和服务提供商通过Nuvei的数字支付网关处理消费者支付。该API支持所有PCI认证级别的商家、在线和移动商家应用程序,并且与大量支付选项兼容,如支付卡和替代支付方式。有关Nuvei REST API文档,请参阅:https://docs.nuvei.com/api/main/

要求

PHP 5.4或更高版本。

安装

通过Composer安装

composer require nuvei/nuvei-server-php

手动安装

如果您不想使用Composer,您可以下载最新版本,然后包含init.php文件。

require_once('/path/to/nuvei-sdk/init.php');

依赖项

PHP SDK需要以下扩展才能正常工作

配置

客户端

$client = new \Nuvei\Api\RestClient([
    'environment'       => \Nuvei\Api\Environment::TEST,
    'merchantId'        => '<your merchantId>',
    'merchantSiteId'    => '<your merchantSiteId>',
    'merchantSecretKey' => '<your merchantSecretKey>',
]);

或者

$client = new \Nuvei\Api\RestClient();
$config = $client->getConfig();
$config->setEnvironment(\Nuvei\Api\Environment::TEST);
$config->setMerchantId('<your merchantId>');
$config->setMerchantSiteId('<your merchantSiteId>');
$config->setMerchantSecretKey('<your merchantSecretKey>');

日志记录器

日志记录器可以使用PSR-3兼容的日志记录器进行配置。

使用Monolog的示例

$logger = new Monolog\Logger('nuvei-php-sdk');
$logger->pushHandler(new Monolog\Handler\StreamHandler('path/to/log', Monolog\Logger::DEBUG));
$client->setLogger($logger);

示例

Nuvei的PHP SDK在请求中附加了merchantId、merchantSiteId、timestamp和checksum。

<?php

use Nuvei\Api\RestClient;
use Nuvei\Tests\SimpleData;
use Nuvei\Tests\TestCaseHelper;

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

require __DIR__ . '/../init.php';
require __DIR__ . '/../tests/TestCaseHelper.php';
require __DIR__ . '/../tests/SimpleData.php';

$config = [
    'environment'       => \Nuvei\Api\Environment::TEST,
    'merchantId'        => '<your merchantId>',
    'merchantSiteId'    => '<your merchantSiteId>',
    'merchantSecretKey' => '<your merchantSecretKey>',
    'hashAlgorithm'     => '<sha256>'
];

$nuvei = new \Nuvei\Api\Nuvei();
$nuvei->initialize($config);

$paymentResponse = $nuvei->getPaymentService()->initPayment([
    'currency'       => 'EUR',
    'amount'         => '10',
    'userTokenId'    => '<user token id>',
    'paymentOption'  => [
        'card' => [
            'cardNumber'      => '<card number>',
            'cardHolderName'  => 'card name',
            'expirationMonth' => '<expiration month>',
            'expirationYear'  => '<expiration year>',
            'CVV'             => '<cvv>',
        ]
    ],
    'billingAddress' => [
        "firstName" => "<first name>",
        "lastName"  => "<last name>",
        "address"   => "<address>",
        "phone"     => "<phone number>",
        "zip"       => "<zip code>",
        "city"      => "<city>",
        'country'   => "<country ISO 3166-1 alpha-2>",
        "state"     => "<state>",
        "email"     => "<email address>",
        "county"    => "<county>",
    ]
]);

print_r($paymentResponse);

$openOrderResponse = $nuvei->getPaymentService()->openOrder([
    'userTokenId'       => '<user token id>',
    'clientUniqueId'    => '',
    'clientRequestId'   => '',
    'currency'          => SimpleData::getCurrency(),
    'amount'            => SimpleData::getAmount(),
    'amountDetails'     => SimpleData::getAmountDetails(),
    'items'             => SimpleData::getItems(),
    'deviceDetails'     => SimpleData::getDeviceDetails(),
    'userDetails'       => SimpleData::getUserDetails(),
    'shippingAddress'   => SimpleData::getShippingAddress(),
    'billingAddress'    => SimpleData::getBillingAddress(),
    'dynamicDescriptor' => SimpleData::getDynamicDescriptor(),
    'merchantDetails'   => SimpleData::getMerchantDetails(),
    'addendums'         => SimpleData::getAddEndUms(),
]);

print_r($openOrderResponse);