【问题标题】:Sagepay - Payment Authorised despite 3dSecure FailureSagepay - 尽管 3dSecure 失败,但仍授权付款
【发布时间】:2019-12-14 23:40:57
【问题描述】:

我们目前正在更新我们的 SagePay 集成,以根据即将生效的欧盟法规强制执行 3DSecure。

但是我们的测试发现,即使 3DSecure 被标记为“失败”,付款仍然被授权。除了 3D 安全检查外,我们还没有在管理系统中设置任何特定规则。 (其他 3d 安全复选框均未选中,并且最小值/最大值字段中没有值)。

我们希望设置我们的系统,以便如果 3Dsecure 失败,它不会授权交易。我们如何做到这一点?

【问题讨论】:

  • 这是一个超级具体的问题。您不需要为某人提供大量代码来执行此操作吗?事实上,聘请您信任的人来处理这件事可能会更好。
  • 是的,我有一个开发团队。这就是为什么我来到 SagePay 的“支持论坛”。 (sagepay 直接链接到 StackOverflow 作为他们的开发支持论坛)。
  • 我不知道,如果我有源代码,我可以帮助解决具体的代码问题。但这似乎很笼统,根本不像他们在这里提到的主题:stackoverflow.com/help/on-topic。 ,但我们会看看你会收到什么回复
  • 在这里,看来你没有错。但是 Sagepay 的 meta.stackoverflow.com/questions/359288/…

标签: opayo 3d-secure


【解决方案1】:

我遇到了完全相同的问题。正确通过所有详细信息,每张测试卡都会返回成功授权。这与昨天我被发送到挑战页面时不同(随后给了我一个 404 错误),所以我只能推测 SagePay 实际上还没有完成编写他们的 3DSv2 处理。

您可以传递的“魔法值”,因为 CardHolder 实际上也没有做任何事情,而且在传递一些新字段(例如 ThreeDSRequestorAuthenticationInfoXML 和 AcctInfoXML)时,我也会收到服务器错误。

正在等待我昨天发送给他们的支持团队的电子邮件的回复。

【讨论】:

    【解决方案2】:

    Cardholder 字段更改为魔法值 CHALLENGE 对我有用

    这将使状态返回为“3DAUTH”(在使用魔法值之前我总是得到“OK”);您还将获得 Sage 模拟器 ACSURL ("https://test.sagepay.com/3ds-simulator/html_challenge")。查看我的请求和响应示例

    已发送: "VPSProtocol=4.00&TxType=PAYMENT&Vendor=[YOUR_VENDOR_HERE]&VendorTxCode=[YOUR_VENDOR_TX_CODE]&Amount=8.05&Currency=GBP&Description=LDN payment&CardHolder=CHALLENGE&CardNumber=4929 0000 0000 6&CV2=123&ExpiryDate=0120&CardType=VISA&BillingSurname=TestSurname&BillingFirstnames=TestName&BillingAddress1=88&BillingCity=Glasgow&BillingPostCode=412&BillingCountry=GB&DeliverySurname=TestSurnameB&DeliveryFirstnames=TestNameB&DeliveryAddress1=test address line 1&DeliveryCity=Glasgow&DeliveryPostCode=412&DeliveryCountry=GB&CustomerEMail=test@email.com&Apply3DSecure=1&ChallengeWindowSize=01&ThreeDSNotificationURL=[YOUR_URL]&BrowserAcceptHeader=text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3&BrowserUserAgent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36&BrowserJavascriptEnabled=1&BrowserJavaEnabled=1&BrowserLanguage=en-GB&BrowserColorDepth=8&BrowserScreenHeight=480&BrowserScreenWidth=640&BrowserTZ=0&ClientIPAddress=127.0.0.1"

    收到: "VPSProtocol=4.00; Status=3DAUTH; StatusDetail=2021 : Please redirect your customer to the ACSURL, passing CReq.; VPSTxId={9A9461B6-C8A8-CDE5-75FC-EBABFA6BB5FD}; 3DSecureStatus=OK; ACSURL=https://test.sagepay.com/3ds-simulator/html_challenge; CReq=ewogICJtZXNzYWdlVHlwZSIgOiAiQ1JlcSIsCiAgIm1lc3NhZ2VWZXJzaW9uIiA6ICIyLjEuMCIsCiAgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIiA6ICJmMWZkNWJhOS0xZTAzLTQ4NGQtOGQzNi0zMTU5MTM5N2Y2YmIiLAogICJhY3NUcmFuc0lEIiA6ICJmNzgxOTYwMS1iN2VhLTRkMWUtYWY0MS00ZjRhYTY1NjQ3MjMiLAogICJjaGFsbGVuZ2VXaW5kb3dTaXplIiA6ICIwMSIKfQ"

    请参阅第 28 页的有关此文档的链接,幻数: Sage direct-integration protocol 4.00

    【讨论】:

    • 我已经做到了这一点,但是当发布到 /direct3dcallback.vsp 时,我收到以下错误。您是否设法端到端测试?我相当确定我的 VPSTxId 是正确的。 VPSProtocol:3.00 状态:无效 StatusDetail:5083:回调中提供的 VpsTxId 与 CRes 中的事务不匹配
    • 是的,我设法让它工作到最后您收到的错误听起来像是您在 direct3dcallback 请求上传递了错误的值。您能否仔细检查一下您是否传递了从 sage 发卡行模拟器收到的正确 cres 值
    • 问题是 VPSTxID 需要在没有我不知道的 { 和 } 的情况下传递。
    猜你喜欢
    • 2013-11-09
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多