我已经在TEST服务器上与sagepay ant进行了服务器集成,来自post匹配的VPSSignature与使用消息构建的MD5以及确认消息上的其他元素。问题是当我返回LIVE模式时,MD5哈希和VPSSignature与任何事务都不匹配,即使它们处于OK状态。
我用sagepay的文件确认我的字符串:
MD5签名的值串联:VPSTxId +
VendorTxCode + Status + TxAuthNo + VendorName + AVSCV2 + SecurityKey +
AddressResult + PostCodeResult + CV2Result + GiftAid + 3DSecureStatus
+ CAVV + AddressStatus + PayerStatus + CardType + Last4Digits + DeclineCode + ExpiryDate + FraudResponse + BankAuthCode。
注意:在大写的情况下返回MD5值。
请确保在散列之前VendorName为LOWER CASE。使用 urldecode来反转你从Sagepay收到的urlencoding如果a 返回没有值的字段,不应该检查 反对字符串。
我看到SagePay Server Integration Verify Signature但是他们没有提到有关sagepay的测试或实时服务器的任何内容
答案 0 :(得分:0)
Sage Pay Server将在a的请求部分发送通知 POST到A1中提供的通知URL。请求将是URL 编码,名称=值字段用'&'字符分隔
我在Sage Pay Server集成和协议及指南3.00上阅读了这篇文章 可用here。
通过检查来自Sage Pay的任何POST变量来解决问题,在这种情况下:
3DSecureStatus
CAVV
AVSCV2
CV2Result
部分vars未被捕获并包含在MD5签名串联字符串中。
问题解决了。