Реализация DataCash 3DSecure в C#

Мне было поручено внедрить проверку кредитной карты 3D Secure на нашем существующем сайте. Мне просто интересно, есть ли у кого-нибудь пример кода для настройки 3D Secure?

Я был прямо через документацию, однако ничего не нашел.

2 ответа

Решение

Я написал статью об этом сейчас... http://www.alexjamesbrown.com/blog/development/implementing-datacash-3d-secure-with-asp-net/

Надеюсь, что это помогает людям, которые наткнуться на это из Google....

Я пытался заставить одного из парней, с которыми я работаю, что-то опубликовать здесь, поскольку он точно написал это для одного из наших клиентов, но я проведу вас через то, что, как я понимаю, должно быть.

Как правило, после того, как вы выполнили любые запросы предварительной проверки, которые вы выполняете (например, с помощью двоичных файлов DataCash), вы затем отправляете запрос на оплату в DataCash, используя агент DataCash для отправки запроса на оплату.

Если вы настроили 3D Secure в своей учетной записи DataCash и отправили через поля, чтобы сообщить, что эта транзакция может произойти с 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>

Вместе с блоком ThreeDSecure в элементе CardTxn.

Затем вам нужно взять 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 в Руководстве для разработчиков и на этой странице (может потребоваться вход в систему).

Если вам требуется более подробная информация, дайте мне знать, и я постараюсь получить более подробную информацию здесь.

Другие вопросы по тегам