SagePay 升级 2.22 到 3.0 无地穴字段

SagePay Upgrade 2.22 to 3.0 No Crypt Field

我被要求协助将 SagePay 自定义支付实施从协议 v2.22 升级到协议 v3.0。

我正在尝试按照此页面上的说明进行操作: https://www.sagepay.co.uk/support/12/36/upgrading-from-2-22-to-3-00-a-brief-overview

我遇到的第一个问题是现有代码中没有任何地方有 'Crypt' 字段。事实上,'data' 是使用 CURL over SSL 发送的,这些行(和其他行):

// Set the URL
curl_setopt ($curlSession, CURLOPT_URL, $url);
// No headers, please
curl_setopt ($curlSession, CURLOPT_HEADER, 0);
// It's a POST request
curl_setopt ($curlSession, CURLOPT_POST, 1);
// Set the fields for the POST
curl_setopt ($curlSession, CURLOPT_POSTFIELDS, $data);
// Return it direct, don't print it out
curl_setopt($curlSession, CURLOPT_RETURNTRANSFER,1);
// This connection will timeout in 60 seconds
curl_setopt($curlSession, CURLOPT_TIMEOUT,60);
//The next two lines must be present for the kit to work with newer version of cURL
//You should remove them if you have any problems in earluer version of cURL
curl_setopt($curlSession, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curlSession, CURLOPT_SSL_VERIFYHOST, 1);

我是否可能只需要更改此设置:

$ProtocolVersion = "2.22";

为此:

$ProtocolVersion = "3.0";

并添加新的必填字段。工作完成了吗?

谢谢!

如果您现有的代码中没有 crypt 字段,很可能您根本没有使用 Form 协议,因此将编码从 XOR 加密更改为 AES 加密对您来说并不麻烦。

2.22 到 3.00 比 2.23 - 3.00 跳得更大,因此从 2.22 迁移到 3.00 时需要做的主要更改是将地址字段拆分为 BillingAddress1、BillingAddress2 等。您可以使用一些额外的功能通过提交一些非必填字段来获得,但这将取决于您。

另请注意,Sage Pay return 回复中有一些额外的内容,因此值得确保您可以处理(或利用它!)。