Я использую функции Firebase для интеграции серверной части Braintree. Я проверил облачные функции Firebase с другими функциями, и они работают нормально. Итак, это определенно как-то связано с Брейнтри. Я проверил руководство по реализации Braintree nodejs на github, и мой код в порядке. https://github.com/braintree/braintree_node
Проблема в том, что функция всегда переходит к catch
с unexpectedError
. Код никогда не достигает then
части кода.
exports.setNonce = functions.https.onRequest((req, res) => {
// Grab the parameters.
if (req.body.nonce === undefined) {
// This is an error case, as "message" is required
return res.status(400).send('No nonce defined!');
} else {
return gateway.transaction.sale({
amount: '5.00',
paymentMethodNonce: 'fake-valid-nonce',
options: {
submitForSettlement: true
}
}).then((err, result) => {
if(err) {
return res.status(406).send(err);
}
else {
return res.status(200).json({"hash" : "Successful"});
}
}).catch((error) => {
return res.status(406).send(error);
});
}
});
Вещи, которые я уже пробовал –
Преобразуйте gateway.transaction.sale в обещание с помощью bluebird. Он по-прежнему выдает ту же ошибку - Как обещать метод Braintree?
Измените сумму и дайте другой одноразовый номер, выбрав карточки для тестирования - https://developers.braintreepayments.com/reference/general/testing/node#test-value-2223000048400011
Удалить
options
- Ничего не меняется