#node.js #proxy #axios
#node.js #полномочие #аксиос
Вопрос:
Без прокси это работает
Я никогда раньше не работал с прокси-серверами, поэтому не знаю, на что мне следует обращать внимание… но _currentURL: http://[прокси]/pathToPayments, похоже, выглядит странно. Хотя я понятия не имею, что происходит.
app.get('/payment', (req, res) =gt; { const amount = req.body; const params = new URLSearchParams(); params.append('ssl_merchant_id', MERCHANTID); params.append('ssl_user_id', MERCHANTUSERID); params.append('ssl_pin', MERCHANTPIN); params.append('ssl_transaction_type', 'ccsale'); params.append('ssl_amount', 150); let axiosConfig = { headers: { 'Content-Type': 'application/x-www-form-urlencoded', }, proxy: { host: FIXIE_URL, port: 80, }, }; axios .post( 'https://api.demo.convergepay.com/hosted-payments/transaction_token', params, axiosConfig, ) .then((response) =gt; { return response.data; }) .then((token) =gt; { console.log(token); res.redirect( `https://api.demo.convergepay.com/hosted-payments?ssl_txn_auth_token=${token}`, ); }) .catch((err) =gt; console.log(err)); });
Комментарии:
1. Нужно больше объяснений о том, чего вы пытаетесь достичь и каков фактический результат.
2. Я хочу, чтобы пользователь мог нажать на ссылку и перейти на страницу размещенных платежей. Мне приходится использовать прокси-сервер из-за того, что Heroku меняет IP-адреса, и этому сайту платежей требуется внести IP-адреса в белый список. Фиксики-это дополнение, которое Heroku использует для этого. Их документы устарели (с использованием пакета ответов), поэтому мне нужно использовать axios. Прямо сейчас ссылка нажата, и она просто загружается навсегда, и изображения показывают, что я получаю. Удаление прокси-объекта из axiosConfig заставляет его работать на локальном хосте, но мне нужен прокси-сервер для работы.
Ответ №1:
Я написал Фикси по электронной почте об этом. В итоге они обновили свои документы информацией axios из-за того, что то, что они использовали, устарело.
«В частности, что не так в вставленном коде, так это то, что вы не тот хост (вам просто нужно указать имя хоста, а не полный URL-адрес), и вам нужно предоставить учетные данные для аутентификации. Так что что-то вроде этого:
axios({ method: 'get', url: 'https://example.com', proxy: { protocol: 'http', host: YOUR_FIXIE_HOST, port: 80, auth: { username: 'fixie', password: FIXIE_TOKEN } } }) .then(function (response) { // Do something with the response });
Ваш хост fixie-это поддомен fixie, без какой-либо информации о протоколе или порте. Так что что-то вроде triathalon.usefixie.com. Ваш токен fixie — это случайная строка после fixie:
полного URL-адреса fixie.»