I can't complete a transaction via the SagePay Test Environment when attempting to run through the "challenge" flow. I'm supplying the new PDS2 fields and using VPS Direct Protocol 4.00
I've triple checked the VPSTxId to make sure it's the one I received in the response to the first stage transaction. The CReq is also present and valid (I've Base64 decoded it and it looks reasonable enough to me).
Response from test system (first stage transaction):
"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}"
Request to test system (second stage transaction):
"CRes" -> "ewogICJtZXNzYWdlVHlwZSIgOiAiQ1JlcyIsCiAgIm1lc3NhZ2VWZXJzaW9uIiA6ICIyLjEuMCIsCiAgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIiA6ICJjMzY2NjEyMi04Yjk4LTRhNmEtYjlkZS01OGI2MWFkNjhhZTMiLAogICJhY3NUcmFuc0lEIiA6ICI5YjNkOGFkMS0yZDY3LTRjNjYtYmM4Yi02ZWQ1ZDIwYzk2OWEiLAogICJ0cmFuc1N0YXR1cyIgOiAiWSIKfQ"
"VPSTxId" -> "{2C04F723-BC87-3C7B-D805-DD4ED5B6BAFF}"
Response from test system (second stage transaction):
"Status" -> "INVALID"
"StatusDetail" -> "5083 : VpsTxId provided in callback does not match transaction in CRes"
"VPSProtocol" -> "3.00"
I've tried submitting the second stage transaction with VPSProtocol (both 3.00 and 4.00) and without. No difference.
Any ideas? I expect the SagePay Test Environment is just broken, but there is also a possibility I'm doing something wrong ..