【发布时间】:2019-12-19 04:53:00
【问题描述】:
尝试运行“挑战”流程时,我无法通过 SagePay 测试环境完成交易。我正在提供新的 PDS2 字段并使用 VPS Direct Protocol 4.00
我对 VPSTxId 进行了三次检查,以确保它是我在第一阶段交易的响应中收到的。 CReq 也存在且有效(我已对其进行 Base64 解码,对我来说它看起来足够合理)。
来自测试系统的响应(第一阶段交易):
"Status" -> "3DAUTH"
"3DSecureStatus" -> "OK"
"CReq" -> "ewogICJtZXNzYWdlVHlwZSIgOiAiQ1JlcSIsCiAgIm1lc3NhZ2VWZXJzaW9uIiA6ICIyLjEuMCIsCiAgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIiA6ICJjMzY2NjEyMi04Yjk4LTRhNmEtYjlkZS01OGI2MWFkNjhhZTMiLAogICJhY3NUcmFuc0lEIiA6ICI5YjNkOGFkMS0yZDY3LTRjNjYtYmM4Yi02ZWQ1ZDIwYzk2OWEiLAogICJjaGFsbGVuZ2VXaW5kb3dTaXplIiA6ICIwNSIKfQ"
"StatusDetail" -> "2021 : Please redirect your customer to the ACSURL, passing CReq."
"ACSURL" -> "https://test.sagepay.com/3ds-simulator/html_challenge"
"VPSProtocol" -> "4.00"
"VPSTxId" -> "{2C04F723-BC87-3C7B-D805-DD4ED5B6BAFF}"
请求测试系统(第二阶段事务):
"CRes" -> "ewogICJtZXNzYWdlVHlwZSIgOiAiQ1JlcyIsCiAgIm1lc3NhZ2VWZXJzaW9uIiA6ICIyLjEuMCIsCiAgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIiA6ICJjMzY2NjEyMi04Yjk4LTRhNmEtYjlkZS01OGI2MWFkNjhhZTMiLAogICJhY3NUcmFuc0lEIiA6ICI5YjNkOGFkMS0yZDY3LTRjNjYtYmM4Yi02ZWQ1ZDIwYzk2OWEiLAogICJ0cmFuc1N0YXR1cyIgOiAiWSIKfQ"
"VPSTxId" -> "{2C04F723-BC87-3C7B-D805-DD4ED5B6BAFF}"
来自测试系统的响应(第二阶段事务):
"Status" -> "INVALID"
"StatusDetail" -> "5083 : VpsTxId provided in callback does not match transaction in CRes"
"VPSProtocol" -> "3.00"
我尝试过使用 VPSProtocol(3.00 和 4.00)提交第二阶段事务,而没有。没有区别。
有什么想法吗?我预计 SagePay 测试环境刚刚损坏,但也有可能我做错了什么..
【问题讨论】:
-
我也有这个错误,我确定 VPSTxId 是正确的。
-
打电话给 SagePay 后,他们告诉我删除标识符中的括号。所以发送:
"VPSTxId" -> "2C04F723-BC87-3C7B-D805-DD4ED5B6BAFF" -
我刚刚尝试了上面的解决方案并确认它有效