digipolisgent / sips-wordline
该软件包最新版本(0.1.3)没有可用的许可证信息。
0.1.3
2021-05-04 15:58 UTC
Requires (Dev)
- phpunit/phpunit: 5.4.*
This package is auto-updated.
Last update: 2024-09-05 16:56:21 UTC
README
这个库允许您轻松地将[Sips]集成到项目中。它提供了完成[Sips]平台正确支付流程所需的组件。
需求
- PHP 5.3
- 您的Web服务器与Sips平台之间的网络连接
SIPS平台可以通过以下URL访问
- SIMU: https://payment-webinit.simu.sips-services.com/paymentInit
- TEST: https://payment-webinit.test.sips-services.com/paymentInit
- PRODUCTION: https://payment-webinit.sips-services.com/paymentInit
分支
由于它们不再创建新版本,这个库是从worldline/Sips-International-non-FR-PHPlibrary 分支出来的。
概述
该库符合PSR-0标准,因此可以使用PSR-0类加载器(如Symfony2中的类加载器)自动加载。请参阅autoload.php以获取示例。
该库支持使用Composer。
- 创建包含Sips所需所有信息的PaymentRequest。
- 将其提交给Sips(客户端)
- 从Sips接收PaymentResponse(作为HTTP请求)
PaymentRequest和PaymentResponse都通过比较SHA签名进行身份验证,SHA签名是参数的散列和一个秘密密码。您可以使用ShaComposer创建散列。
SHA Composer
Sips生成SHA签名的方法
-
"每个参数后跟密码"此方法需要您使用以下加密方法:SHA-256。
使用此库的实现很简单
<?php use Sips\ShaComposer\AllParametersShaComposer; $shaComposer = new AllParametersShaComposer($passphrase);
PaymentRequest
<?php use Sips\Passphrase; use Sips\PaymentRequest; $passphrase = new Passphrase('passphrase-defined-in-sips-interface'); $shaComposer = new AllParametersShaComposer($passphrase); $paymentRequest = new PaymentRequest($shaComposer); // Optionally set Sips uri, defaults to TEST account //$paymentRequest->setSipsUri(PaymentRequest::PRODUCTION); // Set various params: $paymentRequest->setMerchantId('123456'); $paymentRequest->setKeyVersion('1'); $paymentRequest->setTransactionReference($sipsTransactionReference); $paymentRequest->setAmount(1000); $paymentRequest->setCurrency('EUR'); $paymentRequest->setLanguage('nl'); $paymentRequest->setPaymentBrand('VISA'); // ... $paymentRequest->validate(); // Create Http client to send the paymentRequest // We use Zend_Http_Client here, feel free to use your favourite HTTP client library $client = new Zend_Http_Client($paymentRequest->getSipsUri()); $client->setParameterPost('Data', $paymentRequest->toParameterString()); $client->setParameterPost('InterfaceVersion', '<Sips interfaceVersion>'); $client->setParameterPost('Seal', $paymentRequest->getShaSign()); $response = $client->request(Zend_Http_Client::POST); echo $response->getRawBody(); exit();
PaymentResponse
通常将PaymentResponse
用于单独的端点,该端点可用于SIPS。SIPS平台将使用此URL通知商户支付是否成功。
检查支付是否成功依赖于检查RESPONSECODE
参数是否为00
或60
。
<?php use Sips\PaymentResponse; use Sips\ShaComposer\AllParametersShaComposer; // ... $paymentResponse = new PaymentResponse($_REQUEST); $passphrase = new Passphrase('passphrase-defined-in-sips-interface'); $shaComposer = new AllParametersShaComposer($passphrase); if($paymentResponse->isValid($shaComposer) && $paymentResponse->isSuccessful()) { // handle payment confirmation } else { // perform logic when the validation fails }
运行测试
测试套件需要PHPUnit来运行。只需在项目的根目录中运行phpunit
。
phpunit