vjee / sips-payment-sdk
(基于 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: 2024-09-21 17:04:05 UTC
README
此包提供了 Worldline 电子支付网关 Sips 的 PHP 实现。
⚠️ 此库是为 Sips 2.0 编写的,与 Sips 1.0 不兼容!
安装
通过 Composer 安装此 Sips 库是推荐的方法。
运行 composer 命令以安装软件包的最新稳定版本
composer require worldline/sips-payment-sdk
安装软件包后,您需要要求 Composer 的自动加载器
require 'vendor/autoload.php'
使用
💡 目前库只支持 Sips 的 paypage 模式。
初始化
首先,使用您的商户 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>
验证支付
当客户完成时,他可以返回到您的应用程序。这是通过表单完成的,通过在初始化支付时提供的正常ReturnUrl 进行 POST 请求。此 POST 请求包含有关支付的详细信息。您可以简单解码这些响应,并通过调用 finalizeTransaction
函数创建一个 PaypageResult
对象
$sipsClient = new SipsClient( new SipsEnvironment("SIMU"), "002001000000001", "002001000000001_KEY1", 1 ); $paypageResponse = $sipsClient->finalizeTransaction();
⚠️ 由于客户不总是重定向回(例如,他关闭确认页面),包含一个
automaticResponseUrl
是一个好习惯。即使客户没有重定向回您的网站,Sips 也会将交易的详细信息 POST 到此 URL。