beyntech/safecharge-php

访问SafeCharge API的PHP客户端库

2.0.3 2019-10-18 09:07 UTC

This package is auto-updated.

Last update: 2024-09-18 20:59:35 UTC


README

SafeCharge的REST API SDK for PHP为开发者提供了访问Safecharge的REST API的工具。SafeCharge的REST API是一个简单、易用、安全且无状态的API,它使得在线商家和服务提供商能够通过SafeCharge的支付网关处理消费者支付。API支持所有PCI认证级别的商家,从他们的在线和移动商家应用,并且与大量的支付选项兼容,例如支付卡、替代支付方式等。有关SafeCharge REST API文档,请参阅:https://www.safecharge.com/docs/api/

要求

PHP 5.4或更高版本。

安装

通过Composer安装

composer require safecharge-international/safecharge-php

手动安装

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

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

依赖项

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

配置

客户端

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

如果您的哈希算法是md5,您应该在上述数组中添加参数'hashAlgorithm'并设置值为'md5'。

或者

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

如果您的哈希算法是md5,请在上述代码后直接添加以下代码

$config->setHashAlgorithm('md5');

日志记录器

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

使用Monolog的示例

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

示例

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

<?php

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

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

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

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

$safecharge = new \SafeCharge\Api\SafeCharge();
$safecharge->initialize($config);
$paymentResponse = $safecharge->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);

$openOrderRequest = $safecharge->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($openOrderRequest);