Мне было поручено внедрить проверку 3D-карт 3D Secure на нашем существующем сайте. Мне просто интересно, есть ли у кого-нибудь пример кода для настройки 3D Secure?
Я прошел через документацию, но ничего не нашел.
Я написал статью об этом сейчас... 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 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 получит вызов от трехмерных защищенных серверов с полями формы "PaRes" и "MD" (т.е. ответ от банка выдачи и ссылка, которую вы указали ранее).
Затем вы отправляете данные авторизации обратно в DataCash как историческую транзакцию для завершения платежа.
Подробности об этом можно найти в разделе D.4. 3-D Secure, с DataCash MPI в Руководстве для разработчиков и эта страница (может потребоваться логин).
Если вам потребуются более подробные сведения, дайте мне знать, и я постараюсь получить здесь более подробную информацию.