marlon-be / marlon-sips
本包的最新版本(1.0.3)没有可用的许可证信息。
1.0.3
2013-12-06 09:30 UTC
This package is not auto-updated.
Last update: 2024-09-20 18:09:03 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 标准,因此可以使用 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