Nuxt - возвращение формы 3D Secure без перенаправления - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь реализовать форму 3D Secure, но я застрял при отображении страницы банка пользователя.

Я отправляю запрос из моего бэкэнда, и мой ответ выглядит примерно так:

{
  status: 'success',
  locale: 'en',
  systemTime: 1585266454071,
  conversationId: '123456789',
  threeDSHtmlContent: 'PCFkb2N0eXBlIGh0bWw+CjxodG1sIGxhbmc9ImVuIj4KPGhlYWQ+CiAgICA8dGl0bGU+aXl6aWNvIE1vY2sgM0QtU2VjdXJlIFByb2Nlc3NpbmcgUGFnZTwvdGl0bGU+CjwvaGVhZD4KPGJvZHk+Cjxmb3JtIGlkPSJpeXppY28tM2RzLWZvcm0iIGFjdGlvbj0iaHR0cHM6Ly9zYW5kYm94LWFwaS5peXppcGF5LmNvbS9wYXltZW50L21vY2svaW5pdDNkcyIgbWV0aG9kPSJwb3N0Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9yZGVySWQiIHZhbHVlPSJtb2NrNDYtOTUwODMyNjU0MjAzODIxOWl5emlvcmQiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluIiB2YWx1ZT0iNTQwMDAxIj4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InN1Y2Nlc3NVcmwiIHZhbHVlPSJodHRwczovL3NhbmRib3gtYXBpLml5emlwYXkuY29tL3BheW1lbnQvaXl6aXBvcy9jYWxsYmFjazNkcy9zdWNjZXNzLzM0Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhaWx1cmVVcmwiIHZhbHVlPSJodHRwczovL3NhbmRib3gtYXBpLml5emlwYXkuY29tL3BheW1lbnQvaXl6aXBvcy9jYWxsYmFjazNkcy9mYWlsdXJlLzM0Ij4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1hdGlvblVybCIgdmFsdWU9Imh0dHBzOi8vc2FuZGJveC1hcGkuaXl6aXBheS5jb20vcGF5bWVudC9tb2NrL2NvbmZpcm0zZHMiPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iUGFSZXEiIHZhbHVlPSJhZTJhZGQ4MC0zZTRiLTQ0OTQtOTdhYi1kMzk2YzA5ZWVkZmUiPgo8L2Zvcm0+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpeXppY28tM2RzLWZvcm0iKS5zdWJtaXQoKTsKPC9zY3JpcHQ+CjwvYm9keT4KPC9odG1sPg=='
}

По сути, threeDSHtmlContent - это строка в кодировке base64 страницы HTML. Который делает запрос на свой сервер и должен перенаправить мое приложение Nuxt на этот сервер. Я могу обработать после обратного вызова.

Мой компонент Nuxt:

<template>
  <v-container pa-12>
    <div :v-html="rawHTML"></div>
    ...
    OTHER FORM DATA
    ...
  </v-container>
</template>
  export default {
    computed: {
      rawHTML() {
        return this.$store.state.postAJob.rawHTML;
      }
    },
    methods: {
      submit() {
        this.$store.dispatch("postAJob/sendPayment", { ... })
      }
    }
}

И мой магазин:

export const state = () => ({
  rawHTML: ""
});

export const mutations = {
  SET_RAWHTML(state, data) {
    state.rawHTML = data;
  },
  SET_ERROR(state, data) {
    state.error = data;
  },
  SET_LOADING(state, data) {
    state.isLoading = data;
  }
};

export const actions = {
  async sendPayment({ commit }, payment) {
    commit("SET_LOADING", true);
    let response = await this.$axios.post(`/payment`, payment)
    let buff = new Buffer.from(response.data.threeDSHtmlContent, "base64");
    commit("SET_LOADING", false);
    commit("SET_RAWHTML", buff.toString())
  }
};

Мой компонент не отправляет форму, которая поставляется с поэтому я не могу видеть страницу 3D Secure.

Как заставить работать кнопку отправки этой формы возврата?

Спасибо.

...