80 lines
2.4 KiB
TypeScript
80 lines
2.4 KiB
TypeScript
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()
|