grandmasterx/safecharge

用于在yii2项目中集成SafeCharge的扩展

安装次数: 2,210

依赖: 0

建议者: 0

安全性: 0

星级: 0

关注者: 2

分支: 0

公开问题: 0

类型:yii2-extension

v1.0.1 2017-11-23 07:44 UTC

This package is not auto-updated.

Last update: 2024-09-15 03:24:06 UTC


README

SafeCharge的REST API SDK为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 grandmasterx/safecharge

手动

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

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

依赖

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

配置

客户端

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

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

记录器

记录器可以使用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、时间戳和校验和。

<?php
$client = new \grandmasterx\safecharge\api\RestClient([
    'environment'       => \grandmasterx\safecharge\api\Environment::TEST,
    'merchantId'        => '<your merchantId>',
    'merchantSiteId'    => '<your merchantSiteId>',
    'merchantSecretKey' => '<your merchantSecretKey>',
]);

$authenticationService = new \grandmasterx\safecharge\api\services\AuthenticationManagement($client);

$authenticationResponse = $authenticationService->getSessionToken([
    'clientRequestId' => '1'
]);

$openOrderParams = [
    'sessionToken'      => $authenticationResponse['sessionToken'],
    'currency'          => 'USD',
    'amount'            => "10",
    'amountDetails'     => [
        "totalShipping" => "0",
        "totalHandling" => "0",
        "totalDiscount" => "0",
        "totalTax"      => "0"
    ],
    'items'             => [
        [
            "id"       => "1",
            "name"     => "name",
            "price"    => "10",
            "quantity" => "1"
        ]
    ],
];

$orderService = new \grandmasterx\safecharge\api\services\OrdersManagement($client);

$openOrderResponse = $orderService->openOrder($openOrderParams);