deruwe / atos-sips
此软件包的最新版本(1.0.3)没有可用的许可信息。
1.0.3
2013-12-06 09:30 UTC
This package is not auto-updated.
Last update: 2024-09-20 19:04:24 UTC
README
此库允许您轻松地将[Sips]集成到您的项目中。它提供了完成与[Sips]平台正确支付流程所需的必要组件。
要求
- PHP 5.3
- 您的网站服务器与Sips平台之间的网络连接
SIPS平台可以通过以下URL访问
- SIMU: https://payment-webinit.simu.sips-atos.com/paymentInit
- TEST: https://payment-webinit.test.sips-atos.com/paymentInit
- PRODUCTION: https://payment-webinit.sips-atos.com/paymentInit
概述
该库符合PSR-0标准,因此可以使用PSR-0类加载器(如Symfony2中的类加载器)来自动加载。请参阅autoload.php以获取示例。
该库支持Composer的使用。
- 创建一个包含Sips所需所有信息的PaymentRequest。
- 将其提交给Sips(客户端)
- 从Sips接收一个PaymentResponse(作为HTTP请求)
PaymentRequest和PaymentResponse都通过比较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可用的单独端点。该URL将由SIPS平台用于通知商户支付是否成功。
检查支付是否成功取决于检查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