beyntech / safecharge-php
访问SafeCharge API的PHP客户端库
2.0.3
2019-10-18 09:07 UTC
Requires
- php: >=5.4
- ext-curl: *
- ext-json: *
Requires (Dev)
- monolog/monolog: ^1.23
- phpunit/phpunit: ^7.5
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);