endelwar/gestpayws

GestPay (Banca Sella) Web Services 的 PHP 实现

v1.4.0 2018-11-02 23:05 UTC

This package is auto-updated.

Last update: 2024-09-08 17:02:41 UTC


README

License Latest Stable Version Build Status Scrutinizer Code Quality Coverage Status

GestPay (Banca Sella) Web Services 的 PHP 实现

亮点

  • 简单的 API
  • 解耦的类
  • PHPUnit 测试
  • 框架无关
  • Composer 就绪,符合 PSR-2PSR-4 规范

系统要求

您需要 PHP >= 5.6soap 扩展来使用此库,但推荐使用 PHP 最新稳定版本。

安装

使用 Composer 安装 EndelWar/GestPayWS

$ composer require endelwar/gestpayws

使用

加密

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

use EndelWar\GestPayWS\WSCryptDecryptSoapClient;
use EndelWar\GestPayWS\WSCryptDecrypt;
use EndelWar\GestPayWS\Parameter\EncryptParameter;
use EndelWar\GestPayWS\Data;

// enable or disable test environment
$enableTestEnv = true;
$soapClient = new WSCryptDecryptSoapClient($enableTestEnv);
try {
    $gestpay = new WSCryptDecrypt($soapClient->getSoapClient());
} catch (\Exception $e) {
    var_dump($e->getCode(), $e->getMessage());
}

// set mandatory info
$encryptParameter = new EncryptParameter();
$encryptParameter->shopLogin = 'GESPAY12345';
$encryptParameter->amount = '1.23';
$encryptParameter->shopTransactionId = '1';
$encryptParameter->uicCode = Data\Currency::EUR;
$encryptParameter->languageId = Data\Language::ITALIAN;

// set optional custom info as array
$customArray = array('STORE_ID' => '42', 'STORE_NAME' => 'Shop Abc123');
$encryptParameter->setCustomInfo($customArray);

// encrypt data
$encryptResult = $gestpay->encrypt($encryptParameter);

// get redirect link to Banca Sella
echo $encryptResult->getPaymentPageUrl($encryptParameter->shopLogin, $soapClient->wsdlEnvironment);

解密

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

use EndelWar\GestPayWS\Parameter\DecryptParameter;
use EndelWar\GestPayWS\WSCryptDecryptSoapClient;
use EndelWar\GestPayWS\WSCryptDecrypt;

// $_GET['a'] and $_GET['b'] are received from Banca Sella
$param = array(
    'shopLogin' => $_GET['a'],
    'CryptedString' => $_GET['b']
);

$decryptParam = new DecryptParameter($param);

// enable or disable test environment
$enableTestEnv = true;
$soapClient = new WSCryptDecryptSoapClient($enableTestEnv);
try {
    $gestpay = new WSCryptDecrypt($soapClient->getSoapClient());
    $decryptResult = $gestpay->decrypt($decryptParam);
    
    echo $decryptResult->TransactionResult;
} catch (\Exception $e) {
    var_dump($e->getCode(), $e->getMessage());
}

测试

EndelWar/GestPayWS 有一个 PHPUnit 测试套件。要从项目文件夹中运行测试,请执行以下命令。

$ vendor/bin/phpunit

贡献

  1. 创建分支
  2. 创建您的功能分支(git checkout -b my-new-feature
  3. 提交您的更改(git commit -am 'Add some feature'
  4. 推送到分支(git push origin my-new-feature
  5. 创建新的 Pull Request

版本控制

应用语义版本控制(semver)。

许可证

此库采用 MIT 许可证。有关完整的版权和许可信息,请参阅与源代码一起分发的 LICENSE 文件。