【问题标题】:Implementing DataCash 3DSecure in C#在 C# 中实现 DataCash 3DSecure
【发布时间】:2010-11-17 09:46:24
【问题描述】:

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

我一直在阅读文档,但什么也没找到。

【问题讨论】:

  • 通常支付网关提供支持,你的网关是谁?
  • 通常他们会这样做...但是没有用于 3D 安全的示例代码.... 什么都没有。数据现金

标签: c# asp.net payment-gateway datacash


【解决方案1】:

我曾试图让与我一起工作的其中一个人在这里发布一些东西,因为他确实是为我们的一个客户写的,但我会带你完成我所理解的过程。

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

如果您在 DataCash 帐户上设置了 3D 安全,并且您已通过字段发送说此交易可以通过 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 安全,在开发人员指南中使用 DataCash MPI,在 this page 上(可能需要登录)。

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

【讨论】:

  • 您好,感谢您提供的非常详细的回答!我真的很感谢你的帮助。我已使用以下方式向您发送了一个问题:doodle.co.uk/Contact.aspx 这是正确的吗?
  • 是的,这是正确的 - 我认为只需要几分钟就可以弄清楚它在做什么......我会看看我是否可以为你收集一些代码。
【解决方案2】:

我现在写了一篇关于这个的文章...... http://www.alexjamesbrown.com/blog/development/implementing-datacash-3d-secure-with-asp-net/

希望这可以帮助那些从 Google 偶然发现此问题的人......

【讨论】:

  • 尝试使用 Chrome 访问您的文章时(未尝试过其他浏览器),我收到一条警告说该页面包含恶意内容?
  • 没错。从 IE 浏览时,我被 AVG 保存。 IE 没有警告。
  • 我的网站成为了某种病毒的受害者 - 现在应该对其进行排序(不过谷歌可能需要一段时间才能将其标记为安全)
猜你喜欢
  • 2022-09-30
  • 2014-12-10
  • 1970-01-01
  • 2014-11-16
  • 1970-01-01
  • 1970-01-01
  • 2021-06-27
  • 2012-09-30
  • 2010-09-27
相关资源
最近更新 更多