Braintree 集成 - gateway.transaction.sale 永远不会达到错误,结果函数
Braintree integration - gateway.transaction.sale never reaches err, result function
我正在使用 Firebase 函数来集成 Braintree 服务器端。我已经用其他功能检查了 Firebase 云功能,它们运行良好。所以,这绝对与布伦特里有关。我检查了 github 中的 Braintree nodejs 实现指南,我的代码没问题。 https://github.com/braintree/braintree_node
问题是函数总是用 unexpectedError
转到 catch
。代码永远不会到达代码的 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);
});
}
});
我已经尝试过的东西 -
使用 bluebird 将 gateway.transaction.sale 转换为 promise。它仍然给出相同的错误 -
更改金额并通过选择测试卡给另一个随机数 - https://developers.braintreepayments.com/reference/general/testing/node#test-value-2223000048400011
删除 options
- 没有任何变化
这可能是因为您处于免费层 (Spark),因此传出套接字连接被阻止。您必须将项目升级到 Blaze plan
才能启用传出连接。 Blaze plan
有很大的配额限制,因此您可能不会被收费。
我正在使用 Firebase 函数来集成 Braintree 服务器端。我已经用其他功能检查了 Firebase 云功能,它们运行良好。所以,这绝对与布伦特里有关。我检查了 github 中的 Braintree nodejs 实现指南,我的代码没问题。 https://github.com/braintree/braintree_node
问题是函数总是用 unexpectedError
转到 catch
。代码永远不会到达代码的 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);
});
}
});
我已经尝试过的东西 -
使用 bluebird 将 gateway.transaction.sale 转换为 promise。它仍然给出相同的错误 -
更改金额并通过选择测试卡给另一个随机数 - https://developers.braintreepayments.com/reference/general/testing/node#test-value-2223000048400011
删除
options
- 没有任何变化
这可能是因为您处于免费层 (Spark),因此传出套接字连接被阻止。您必须将项目升级到 Blaze plan
才能启用传出连接。 Blaze plan
有很大的配额限制,因此您可能不会被收费。