У меня проблемы с вызовом функции 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
})
})