#javascript #vue.js
#javascript #vue.js
Вопрос:
У меня есть платеж по карте, который возвращает ответ с перенаправленным URL-адресом. Я должен перенаправить пользователя после инициализации платежа. Я делаю это с помощью:
...
window.location.href = response.data.meta.authorization.redirect
Для подтверждения платежа на странице, которую я не контролирую.
После проверки у меня есть URL-адрес перенаправления в моем запросе, который перенаправляет (перенаправление браузера) пользователя обратно в мое приложение с данными запроса, которые выглядят следующим образом:
http://account.localhost.com/deposit/card?response={"id":1499407,"txRef":"tUhElMQhoC"...,
Мне нужен идентификатор в этом URL-адресе для подтверждения платежа и последующего обновления моей базы данных.
Как я могу сделать это с помощью Vue?
Комментарии:
1. Используете ли вы Vue-router?
2. @Daniel_Knights Да, я
Ответ №1:
Вы можете использовать URL API для извлечения json в response
параметре, затем проанализировать его и получить идентификатор из результирующего объекта.
const str = `http://account.localhost.com/depositcard?response={"id":1499407,"txRef":"tUhElMQhoC"}`
const json = new URL(str).searchParams.get('response')
const obj = JSON.parse(json)
console.log(obj.id)
Ответ №2:
С помощью Vue-router вы можете получить параметры запроса с this.$route.query
, а затем получить доступ к определенному параметру: this.$route.query.id
Поскольку идентификатор находится внутри объекта stringified JSON, вам придется сначала проанализировать его: JSON.parse(this.$route.query.response).id
Итак, с перенаправлением имеет смысл получить доступ к данным в created
цепочке жизненного цикла:
created() {
console.log(JSON.parse(this.$route.query.response).id);
}
Комментарии:
1. Куда именно этот код попадает в моем компоненте после перенаправления браузера?
2. Обычно в
created
крючке3. Я получаю
undefined
4. Извините, я неправильно прочитал ваш URL. Вам нужно будет сделать
JSON.parse(this.$route.query.response).id