Загрузка изображения в Stripe с использованием Firebase Cloud Function для проверки личности - PullRequest
0 голосов
/ 02 июня 2019

У меня проблемы с вызовом функции stripe.files.create () для загрузки документа, удостоверяющего личность, для учетной записи Stripe Connect.

Я перепробовал все примеры в документации полосы и следовал этому руководству: https://stripe.com/docs/file-upload однако я все еще получаю ошибки.

Это облачная функция, которая берет URL-адрес изображения, хранящегося в Firebase Storage (rp - модули запроса-обещания от https://www.npmjs.com/package/request-promise):

exports.testFileUpload = functions.https.onCall((data, context) => {
    return rp(data.dlUrl).then(response => {
        var imgFile = response
        console.log(imgFile)
            return stripe.files.create({
                purpose: 'identity_document',
                file: {
                    data: imgFile,
                    name: 'file.jpeg',
                    type: 'image/jpeg'
                }
            }).then((file) => {
                console.log(file)
                return file
            }).catch((err) => {
                console.log(err)
                return err
            })
    })

Ожидаемый вывод должен быть файловым объектом из stripe, однако я получаю следующее сообщение об ошибке: «В настоящее время мы не поддерживаем этот тип файла. Попробуйте загрузить файл с одним из следующих mimetypes: application / pdf, image / JPEG, изображение / PNG "

Любая помощь будет принята с благодарностью! Спасибо!

UPDATE

Я попытался перенаправить ссылку на скачивание в файл и сослался на файл в запросе stripe.files.create (), но я все еще получаю ту же ошибку неподдерживаемого типа файла, что и выше

exports.testFileUpload = functions.https.onCall((data, context) => {
    request(data.dlUrl).pipe(fs.createWriteStream('/tmp/IC.jpg'))
    var fp = fs.readFileSync('/tmp/IC.jpg');
    return stripe.files.create({
        purpose: 'identity_document',
        file: {
            data: fp,
            name: 'IC.jpg',
            type: 'application/octet-stream'
        }
    }).then((file) => {
        console.log(file)
        return file
    }).catch((err) => {
        console.log(err)
        return err
    })
})
...