vjee/sips-payment-sdk

(基于 worldline/sips-payment-sdk 的分支) 此库简化了使用 Sips 2.0,电子支付 API。

1.0.2 2018-12-06 13:38 UTC

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。