一些发卡银行拒绝3D安全请求

Zha*_*uid 4 asp.net credit-card payment-gateway 3d-secure

我们有一个商业网站,我们正试图通过设置3D Secure(由VISA/Mastercard Securecode验证).

我们使用DataCash作为我们的支付提供商.

我们看到以下问题:

一些注册在这些方案中的卡正在成功地显示在3D安全页面上,其他卡正在失败,并且与发卡银行交谈没有帮助,因为他们告诉我们他们没有看到交易.

我们从"cap.securecode.com"等服务器收到消息,说明:

由于系统错误,无法完成您的身份验证.如果这种情况持续发生,请联系您的CSR".

或者来自"www.securesuite.co.uk":

您无法访问此页面.

这可能是由于以下两个原因之一:

  1. 您尝试访问的FI已停用
  2. 对特定IP地址的访问权限受到限制,您的地址不是其中之一

有没有其他人看到验证银行返回这些错误,我该如何解决?

我试图获得有关成功和失败的任何模式的进一步细节.

Zha*_*uid 7

看起来我们用于向3D Secure服务器提交请求的表单存在问题:

<form method="post" 
      enctype="multipart/form-data" 
      action="https://[3dSecureServer]">
  <input value="[EncodedRequest]" name="PaReq" type="hidden">
  <input value="[RetailerReference]" name="MD" type="hidden">
  <input value="[RetailerReturnUrl]" type="hidden" name="TermUrl">
  <p>If you do not see your card issuer's instructions, below, 
     please click <input value="Continue" name="TDAction" type="submit"></p>
</form>
Run Code Online (Sandbox Code Playgroud)

enctype从表单中删除属性似乎已经解决了问题 - 它对成功的事务没有影响,并允许那些失败成功的事务.

我想这是从其他一些示例代码中获取的.

  • `enctype`代表编码类型 - 在POST到服务器时如何在数据中表示表单数据.默认编码类型是`application/x-www-form-urlencoded`.`multipart/form-data`通常仅在需要将文件发送到服务器时使用.这两个选项产生了截然不同的POST数据.某些3D安全服务器可能不支持多部分表单类型. (2认同)