const fs = require('node:fs') const https = require('node:https') // URL, на который отправляется запрос const url = 'https://pgtest.bspb.ru:5443/order' // Данные для отправки в формате JSON const data = { order: { typeRid: 'Purchase', amount: 100, currency: 'RUB', title: 'Название заказа', description: 'Описание заказа', }, } const options = { method: 'POST', // Путь к ключу и сертификату key: fs.readFileSync('./crt/bspb_test.key'), cert: fs.readFileSync('./crt/bspb_test.pem'), // Установка заголовков для отправки JSON и базовой авторизации headers: { 'Content-Type': 'application/json', 'Authorization': `Basic ${Buffer.from('' + ':' + '').toString('base64')}`, }, } // Отправка запроса и обработка ответа const req = https.request(url, options, (res) => { let responseData = '' res.on('data', (chunk) => { responseData += chunk }) res.on('end', () => { // Проверка кода ответа if (res.statusCode === 200) { try { const parsedData = JSON.parse(responseData) // Проверка наличия объекта order в ответе if (parsedData.order) { const order = parsedData.order // Проверка наличия необходимых полей в объекте order if (order.hppUrl && order.id && order.password) { // Формирование итоговой ссылки const finalUrl = `${order.hppUrl}?orderid=${order.id}&password=${order.password}` // Использование итоговой ссылки console.log(`Итоговая ссылка: ${finalUrl}`) } else { console.log('Объект order не содержит необходимых данных.') } } else { console.log('Ответ не содержит объекта order.') } } catch (error) { console.error('Ошибка:', error) } } else { console.error(`Ошибка ${res.statusCode} при запросе: ${responseData}`) } }) }) req.on('error', (error) => { console.error('Ошибка запроса:', error) }) req.write(JSON.stringify(data)) req.end()