Загрузить сертификат клиента TLS в облачные функции Firebase
Я пытаюсь выяснить, возможно ли загрузить сертификат клиента TLS, который будет использоваться для моих облачных функций в firebase. Сертификат клиента TLS требуется сторонним платежным решением под названием Swish.
Это мой первый проект Firebase, и кажется глупым, что такая маленькая проблема сделает платформу непригодной для меня..
1 ответ
После некоторой головной боли и попыток я нашел довольно простой способ решения swish-платежей с помощью облачных функций:
Используя request-js вместо встроенных библиотек, мне нужно только создать объект параметров для использования в методе request.post() следующим образом:
const swishOptions = {
url: 'LINK TO SWISH SERVER',
json: true,
pfx: fs.readFileSync('cert.p12'),
passphrase: 'swish',
body: swishRequestBody
}
Файл cert.p12 должен быть расположен в той же папке, что и index.js, и будет загружен вместе с функциями.
rq.post(swishOptions, (err, res) => {
if (err){
console.log('payment creation error: ' + JSON.stringify(err))
reject(err)
}
if (res){
console.log('Payment-token: ' + res.headers.paymentrequesttoken)
}
});
Body-объект должен содержать все поля, указанные в Swish API, используйте console.log() для чтения сообщений об ошибках от Swish-сервера.