wijs / atos-sips
此包已被废弃,不再维护。没有推荐替代包。
此包最新版本(1.0.3)没有可用的许可信息。
1.0.3
2013-12-06 09:30 UTC
This package is not auto-updated.
Last update: 2024-03-07 11:22:05 UTC
README
这个库允许您轻松地将[Sips]集成到项目中。它提供了与[Sips]平台完成正确支付流程所需的组件。
需求
- PHP 5.3
- 您的web服务器与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标准,因此可以使用如Symfony2中的PSR-0类加载器自动加载。请参阅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