worldline / sips-payment-sdk
该库简化了使用Sips 2.0,电子支付API。
Requires
- php: >=7.0.0
- guzzlehttp/guzzle: @stable
Requires (Dev)
- phpunit/phpunit: @stable
This package is not auto-updated.
Last update: 2023-06-26 20:25:21 UTC
README
⚠️ 自2021年6月30日起,sips-atos.com的URL将停止工作。它们已被sips-services.com的URL所替代。请确保更新到1.0.7或更高版本以避免问题。
Sips 库
该包为Worldline电子支付网关Sips提供PHP实现。
⚠️ 该库是为Sips 2.0编写的,与Sips 1.0不兼容!
安装
推荐通过 Composer 安装此Sips库。
运行Composer命令安装最新稳定版本的包
composer require worldline/sips-payment-sdk
安装包后,您需要引入Composer的自动加载器
require 'vendor/autoload.php';
使用
💡 目前该库仅支持Sips在支付页面模式。
初始化
首先,使用您的商户ID、密钥版本和密钥创建所需环境的客户端。
//these parameters should not be hardcoded. $sipsClient = new SipsClient( new SipsEnvironment("SIMU"), "002001000000001", "002001000000001_KEY1", 1 );
接下来,设置请求以在Sips服务器上初始化会话。
$paypageRequest = new PaypageRequest(); $paypageRequest->setAmount(200); $paypageRequest->setCurrencyCode("EUR"); $paypageRequest->setNormalReturnUrl('http://lib.wl.be//return.php'); $paypageRequest->setOrderChannel("INTERNET");
添加交易的唯一引用。
$paypageRequest->setTransactionReference("myUniqueIdentifier");
💡 如果您没有提供引用,插件将生成一个。
最后,将请求提交到服务器以初始化交易。
$initializationResponse = $sipsClient->initialize($paypageRequest);
从服务器收到的initializationResponse
包含继续处理交易所需的所有信息。如果您的初始化成功,您的响应将包含redirectionStatusCode = '00'
重定向到支付页面
如果您的初始化成功,您必须使用收到的redirectionUrl执行包含redirectionData和seal作为参数的POST请求。由于这应该将客户重定向到Sips支付页面,最干净的例子是一个简单的HTML表单
<form action="<?= $sipsResponse->getRedirectionUrl() ?>"> <input type="hidden" name="redirectionVersion" value="<?= $sipsResponse->getRedirectionVersion() ?>"> <input type="hidden" name="redirectionData" value="<?= $sipsResponse->getRedirectionData() ?>"> <input type="submit" value="Go to PayPage"> </form>
验证支付
当客户完成操作后,他可以返回您的应用程序。这是通过表单完成的,通过向初始化支付时提供的normalReturnUrl发送POST请求来实现。该POST请求包含有关支付的详细信息。您可以简单地解码这些响应,并通过调用finalizeTransaction
函数创建一个PaypageResult
对象
$sipsClient = new SipsClient( new SipsEnvironment("SIMU"), "002001000000001", "002001000000001_KEY1", 1 ); $paypageResponse = $sipsClient->finalizeTransaction();
⚠️ 由于客户不总是会重定向回(例如,他关闭了确认页面),包含一个
automaticResponseUrl
是一个好习惯。即使客户没有重定向回您的网站,Sips也会将交易的详细信息POST到这个URL。