使用Firebase Cloud Function将图像上传到Stripe以进行身份​​验证

时间:2019-06-01 22:13:06

标签: javascript node.js firebase stripe-payments

我在调用stripe.files.create()函数上载用于条纹连接帐户的身份文档时遇到麻烦。

我已经尝试了Stripe文档中的所有示例,并遵循了本指南:https://stripe.com/docs/file-upload,但是我仍然收到错误消息。

这是一个云函数,它接收存储在Firebase Storage中的图像的URL(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
            })
    })

预期的输出应该是来自条带的文件对象,但是我收到此错误消息:“我们目前不支持该文件类型。请尝试上传具有以下MIME类型之一的文件:application / pdf,image / jpeg,图片/ png”

任何帮助将不胜感激!谢谢!

更新

我尝试将下载链接传输到文件中,并在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
    })
})

0 个答案:

没有答案