Direct Protocol 4.00 - ThreeDSRequestorPriorAuthenticationInfo.threeDSReqPriorRef - 我该如何填充它?

Direct Protocol 4.00 - ThreeDSRequestorPriorAuthenticationInfo.threeDSReqPriorRef - how do I populate this?

我想知道如何填充字段。

直接集成规范的 "A1.2 ThreeDSRequestorPriorAuthenticationInfoXML" 部分指出

The 3DS Requestor Prior Transaction Authentication Information contains optional information about a 3DS cardholder authentication that occurred prior to the current transaction.

字段 threeDSReqPriorRef 具有描述:

This data element provides additional information to the ACS to determine the best approach for handling a request. It will contain an ACS Transaction ID for a prior authenticated transaction (for example, the first recurring transaction that was authenticated with the cardholder). This ID will be available in future via My Sage Pay and the Reporting and Admin API.

显然提供事先参考将是 "better",但我想知道如何填充它?

所以我正在查看 CReq 的内容:

{
  "messageType" : "CReq",
  "messageVersion" : "2.1.0",
  "threeDSServerTransID" : "0868ead0-8e3e-4c29-be1a-9689500b52fe",
  "acsTransID" : "44d368d3-31c5-472d-a27e-ad2fd2a75cc7",
  "challengeWindowSize" : "05"

假设所需的数据是从acsTransID获得的,我大概必须存储这些数据以备下次使用?但是我不知道是否应该完全打开 CRreq,因为这似乎是一种万能的气味? (另请注意,上述来自 SagePay 测试系统的内容也无效 JSON)

SagePay 肯定应该在响应中提供此参考吗? (我真的不想使用 Reporting API 来获取参考 TBH ... 这有点像老鼠窝)

听起来您需要从损坏的 JSON 响应中删除 acsTransID 并使用它。不过,这是最好的猜测。听起来好像 SagePay 目前 return 没有任何形式。

您可以找到如何重定向 3DAuth 的详细信息,持卡人姓名为 "Challenge",但仍然没有将 3D 值发送到银行的完整解决方案。

Sagepay - Payment Authorised despite 3dSecure Failure