2010-01-20 8 views
4

У нас есть сайт коммерции, на котором мы пытаемся получить 3D Secure (проверено с помощью VISA/Mastercard Securecode).Некоторые банки-эмитенты, отказывающиеся от запросов 3D Secure

Мы используем DataCash в качестве поставщика платежей.

Мы видим следующий вопрос:

Некоторые карты, которые зачислены в этих схемах успешно показанных страниц 3D Secure, другие терпят неудачу, и разговаривать с банками-эмитентами не помогло, как они говорят нас они не видели транзакции.

Мы получаем сообщения от серверов, как «cap.securecode.com», заявив:

Ваша аутентификация не может быть завершена из-за ошибки системы. Если это происходит постоянно, обратитесь к CSR www.securesuite.co.uk "»

Или с.":.

Вы не можете получить доступ к этой странице

Это может быть по одной из двух причин:

  1. ПЧ вы пытаетесь получить доступ деактивируется
  2. Доступ к ФИ ограничен для конкретных IP-адресов, а также ваш адрес не один из них

Кто-нибудь еще видел эти ошибки, возвращаемые из проверочных банков, и как я могу решить это?

Я пытаюсь получить более подробную информацию о любом шаблоне успеха и неудач.

+1

@ Kev - Слишком локализованный, может быть, но не по теме? –

ответ

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> 

Удаление атрибута enctype из формы, кажется, решен вопрос - это не повлияли на транзакции, которые преуспели, и позволяет тем транзакциям, в которых также не удается добиться успеха.

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

+2

'enctype' означает тип кодировки - как данные формы будут представлены в данных при отправке POST на сервер. Тип кодировки по умолчанию - 'application/x-www-form-urlencoded'. 'multipart/form-data' обычно используется только тогда, когда вам нужно отправлять файлы на сервер. Эти два варианта дают очень разные данные POST. Тип множественной формы, по-видимому, не поддерживается некоторыми 3D-защищенными серверами. –

+0

Действительно - Как я уже отмечал, я не совсем уверен, почему мы указали «enctype» в этой форме - я уверен, что это не то, что мы добавили по умолчанию ... –

4

Позвольте мне дать вам некоторую дополнительную информацию,

Я работаю в банк-эмитент. Если транзакция включает 3D Secure, то первым шагом будет трехмерная безопасная аутентификация и только после успеха авторизация. Если банк-эмитент передал обработку 3D-безопасности другой организации, то верно, что они никогда не видят транзакции в случае трехмерных защищенных ошибок. Другими словами, они никогда не получали разрешения. Это зависит от того, знают ли они о трехмерной защищенной ошибке. Поэтому связаться с эмитентом, вероятно, не поможет.

Если я прав, то у вас есть проблемы с несколькими охраняемыми организациями 3D. Если я предполагаю, что у каждого эмитента есть своя собственная 3d-защищенная организация, тогда у вас проблемы с кредитными картами разных эмитентов (вы назвали securecode и securesuite). Поэтому я думаю, что это не имеет ничего общего с кредитной картой, но только с вашей обработкой.

Не проблема полностью в руках вашего платежного процессора? Или вы можете сделать что-то не так в своем общении с платежным процессором? Обратите внимание, что Visa и Mastercard действительно реализовали 3D Secure несколько иначе.

(Возможно, это глупый вопрос, но вы уверены, что карты с ошибкой - это Visa и Mastercard? Может ли быть правдой, что клиент использует карту (например, JBC), которая не поддерживается вашим платежным процессором?)

+0

Спасибо за ответ и хорошие комментарии, я постараюсь ответить на них здесь: 1) Согласились, связаться с банком-эмитентом действительно не помогло - ошибки возвращаются с серверов, на которых должна отображаться страница 3D Secure перед этой страницей Показано. 2) Я пытаюсь получить более подробную информацию от клиента, но он, похоже, будет основан на эмитенте, а не на карточной основе - то есть карты из банка Lloyds, а у HSBC - нет, а не все карты VISA, нет MasterCard карты работали. –

+0

3) Процессор платежей (Datacash) отвечает одинаково независимо от типа, он возвращает значение PaReq, которое мы должны отправить на URL-адрес, который он также поставляет. Да, я заметил, что экраны, отображаемые пользователю, могут быть разными. 4) Не глупый вопрос, но я получаю другой (обработанный) код ошибки от Datacash, заявляющий, что мне не разрешено использовать (например) AmEx или JCB. –

+0

Вы пытаетесь сделать 3D безопасным для карты, которая еще не включена для 3D-безопасности? (Помните, что я работаю на сайте эмитента). С нашей точки зрения мы (или клиент) активируем или деактивируем 3D-защиту для карты. Это на уровне карты, а не на схеме или уровне BIN. Вы можете получить 2 карты от одного и того же эмитента, одну и ту же схему, одну и ту же БИН, в то время как один включен, а другой нет. Я знаю, что некоторые эмитенты не активировали 3D для своих карт по одной схеме (например, все карты Visa этого эмитента включены, AMex - нет). Все это объясняет, почему ваши ошибки находятся на уровне эмитента вместо схемы – robertnl

3

3D-безопасность - это беспорядок - ваш процессор платежей передаст один из многих сайтов в зависимости от того, кто выдает вашу карточку. Некоторые из этих сайтов принимают запрос GET, а некоторые - только запрос POST. Вы можете получить эту ошибку, если вы отправляете GET, а не POST.

+0

Полезно знать (не конечно, почему/как я пропустил это в прошлом году, поэтому извиняюсь). Как вы можете видеть из моего ответа, мы используем POST, но включаем enctype, который некоторые 3D Secure серверы отклоняли. –

-1

это, вероятно, будет полезно для всех, если я скажу, что некоторые банки (MPI) возвращают ответы PaReq пустым пробелам, эти пробелы ДОЛЖНЫ быть заменены знаками «+», имейте в виду, что если вы используете PHP в PHP вы не можете просто кодировать их с помощью urlencode, так как это может нарушить перенаправление себя после предоставления правильных деталей.

Отношения K

+0

К сожалению, это не имело никакого отношения к проблеме. –