我被要求协助将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";
并添加新的必填字段。工作完成了吗?
谢谢!
答案 0 :(得分:0)
如果现有代码中没有加密字段,则可能您根本没有使用表单协议,因此将编码从XOR更改为AES加密并不是很麻烦你。
2.22到3.00比2.23 - 3.00更大的跳跃,因此在从2.22迁移到3.00时需要进行的主要更改是将地址字段拆分为BillingAddress1,BillingAddress2等。您可以通过以下方式获得一些额外的功能提交一些非必填字段,但这取决于你。
另请注意,Sage Pay会在回复中返回一些额外的内容,因此值得确保您可以处理(或使用它!)。