SagePay升级2.22至3.0 No Crypt Field

时间:2015-05-08 14:20:40

标签: curl aes protocols crypt sagepay

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

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

我遇到的第一个问题是,现有代码中没有任何地方存在“地穴”和“地穴”。领域。事实上,数据'使用CURL通过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";

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

谢谢!

1 个答案:

答案 0 :(得分:0)

如果现有代码中没有加密字段,则可能您根本没有使用表单协议,因此将编码从XOR更改为AES加密并不是很麻烦你。

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

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