我的任务是在我们现有的网站上实施3D安全信用卡验证。
我只是想知道是否有人可以使用示例代码来设置3D Secure?

我看过文档没错,但是什么也没找到。

最佳答案

我试图让一个与我合作的人在这里发布一些东西,因为他是为我们的一位客户精心编写的,但是我将带您了解我所理解的过程。

基本上,一旦执行了要执行的任何预验证请求(例如,使用DataCash二进制文件),就可以使用DataCash代理将付款请求提交给DataCash以发送付款请求。

如果您在DataCash帐户上设置了3D Secure,并且已通过字段发送消息说3DS可以进行此交易,则可能会返回状态码150:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <CardTxn>
    <card_scheme>...</card_scheme>
    <country>...</country>
    <issuer>...</issuer>
    <ThreeDSecure>
      <acs_url>...</acs_url>
      <pareq_message>...</pareq_message>
    </ThreeDSecure>
  </CardTxn>
  <datacash_reference>...</datacash_reference>
  <merchantreference>...</merchantreference>
  <mode>TEST</mode>
  <reason>3DS Payer Verification Required</reason>
  <status>150</status>
  <time>...</time>
</Response>


以及CardTxn元素中的ThreeDSecure块。

然后,您需要使用acs_url和pareq_message,并使用它们将请求提交给发卡银行以进行授权。

这通常采用自我提交的JavaScript形式,可以将其发布到IFrame中:

<!-- Action comes from acs_url returned by DataCash -->
<form method="post"
      target="3dAuthFrame"
      action="https://testserver.datacash.com/acs">
  <!-- Value comes from pareq_message returned by DataCash -->
  <input value="[...]"
         name="PaReq"
         type="hidden" />
  <!-- Value is a merchant specified identifier that is dislayed to the user -->
  <input value="[...]"
         name="MD"
         type="hidden" />
  <!-- Value is a public URL that the 3D Secure server will post back to -->
  <input type="hidden"
         name="TermUrl"
         value="[...]"/>
  <p>
    If you do not see your card issuer's instructions, below, please click
    <input value="Continue" name="TDAction" type="submit" />
  </p>
  <iframe style="width:100%;height:400px"
          src="javascript:''"
          name="3dAuthFrame"></iframe>
  <script type="text/javascript">
    document.forms[0].elements.TDAction.click();
    document.forms[0].elements.TDAction.disabled=true;</script>
</form>


然后,TermUrl上的页面将接收来自3D安全服务器的呼叫,其中包含表单字段“ PaRes”和“ MD”(即发卡行的回复以及您之前提供的参考)。

然后,您可以将这些授权详细信息作为历史交易提交回DataCash以完成付款。

有关此问题的详细信息,请参见第D.4节。 3-D Secure,使用《开发人员指南》中的DataCash MPI,并在this page上(可能需要登录)。

如果您需要更多详细信息,请告诉我,我将尝试在此处获取更多详细信息。

10-08 17:14