alsaze 7a7d27c7ae
All checks were successful
Deploy / build (push) Successful in 45s
создаю телегу товаров
2025-10-03 19:26:39 +03:00

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()