Как выполнить 3-D Secure Authentication в SDK Mastercard Gateway для Android?

Я подписался на https://github.com/Mastercard-Gateway/gateway-android-sdk/wiki, чтобы произвести оплату в моем приложении.

Первоначально использовался тестовый идентификатор продавца для создания сеанса с помощью указанного ниже API. https://mtf.gateway.mastercard.com/api/rest/version/56/merchant/DB***/session/SESSION000****

Который дал идентификатор сеанса в ответ и с этим обновил данные моей карты в API обновления сеанса. Получено сообщение об успешном завершении, например {"session":{"updateStatus":"SUCCESS","version":"cd9f6b9602"}}

После этого я генерирую случайный 3DSecureId для тестирования и передаю sessionId, AMOUNT, CURRENCY, 3dSecureId в API check3DSecureEnrollment.

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

Еще одна попытка - https://github.com/Mastercard-Gateway/gateway-android-sdk/wiki/3D-Secure-Authentication

Проверено для варианта 1 и 2 в приведенной выше ссылке. Отображается ошибка при раздувании макета класса InflateException.

Нужна помощь для решения этих проблем?


person Gopinathan B    schedule 17.06.2020    source источник
comment
Привет, я также пытаюсь интегрировать MPGS с помощью Android SDK. когда я звонил API сеанса обновления, он всегда возвращал мне ошибку, говоря {"error":{"cause":"INVALID_REQUEST","explanation":"Directly providing cardholder data is not supported. Consider using a session or token."},"result":"ERROR"}. Не могли бы вы помочь мне в этом. Какую структуру JSON вы передаете на шлюз .. Пожалуйста   -  person Rajeev Kumar    schedule 23.07.2020
comment
Я передаю JSON: {sourceOfFunds: {provided: {card: {nameOnCard: raj, number: 4508750014571019, securityCode: 100, expiry: {month: 05, year: 21}}}}}   -  person Rajeev Kumar    schedule 23.07.2020


Ответы (1)


Я тоже столкнулся с той же проблемой. Поскольку нет хорошей документации, такие проблемы трудно исправить. Чтобы решить проблему, о которой вы упомянули, я решил убрать Gateway3DSecureActivity из библиотеки.

Intent intent = new Intent(this, Gateway3DSecureActivity.class);
intent.putExtra(Gateway3DSecureActivity.EXTRA_HTML, html);
intent.putExtra(Gateway3DSecureActivity.EXTRA_TITLE, title); // optional

startActivityForResult(intent, YOUR_3DS_REQUEST_CODE);

Поэтому я заменил Gateway3DSecureActivity в приведенном выше коде своим пользовательским действием.

Я работал над Kotlin, поэтому я создал свою собственную операцию для обработки ответа, которая отлично работает. Исключение связано со структурой макета. Макет начинается с тега layout, который является причиной сбоя. Таким образом, мы можем создать собственное действие без этого тега, что я и сделал.

Взгляните на мою суть

person Sreehari K    schedule 23.06.2020
comment
Спасибо за ответ. Я постараюсь вернуться к тебе, братан. - person Gopinathan B; 25.06.2020
comment
пожалуйста, дайте мне знать, если вам понадобится дополнительная помощь - person Sreehari K; 26.06.2020