Загрузить сертификат клиента 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-сервера.

Другие вопросы по тегам