node.js - 在 Express 应用中处理 Stripe 响应
问题描述
我正在尝试使用 Express 编写一个简单的 Stripe 集成。我的代码创建客户并收费并完成,出现在我的仪表板中。但是我很难理解如何处理来自 Stripe 的响应。以下只是从 Stripe 输出整个响应 - 我希望能够根据此响应的内容输出一条友好的消息:
stripe.customers.create({
card: stripeToken
})
.then(customer =>
stripe.charges.create({
amount: fee,
description: "Client Ref: " + clientref,
currency: "gbp",
customer: customer.id,
metadata: {
'allocation:': allocate
}
}))
.then(charge => response.send(charge))
.catch(err => {
console.log("Error:", err);
response.status(500).send({error: "Purchase Failed"});
});
我如何查看响应并相应地处理它?我试过使用 response.send 承诺,我可以让它显示部分响应,但这是一个“收费”页面吗?如何将其显示为 html 而不仅仅是纯文本?
我查看了 Stripe 文档并没有发现任何类似的东西。我希望能够说明失败的付款、拒绝等以及成功的收费。
非常感谢任何帮助或其他示例!
谢谢
编辑:好的,我处理 catch 块中的“错误”。我没有意识到 Stripe 不会抛出异常,所以这让生活更轻松。然而,我关于格式化消息的观点仍然存在。'/charge' 只输出纯文本。
解决方案
我如何查看响应并相应地处理它?
Stripe 文档在这里清楚地向您展示了成功收费的响应:https ://stripe.com/docs/api/node#create_charge (在 下Example response
)。它会返回一个大型 JSON 对象。
您需要弄清楚该响应的哪一部分对您有用,以便在客户端应用程序中显示。如果不需要任何信息,那么您可以简单地忽略响应。
(...) 但这是一个“收费”页面吗?如何将其显示为 html 而不仅仅是纯文本?
您现在所做的只是将整个 JSON 对象通过res.send
. 除了简单地将其作为纯文本发回之外,您没有对响应做任何事情。您需要配置视图以显示响应:http ://expressjs.com/en/guide/using-template-engines.html
或者,如果您生成一个 API 供其他人使用,则使用res.json
发送回您从 Stripe 获得的 JSON。http://expressjs.com/en/4x/api.html#res.json
我希望能够说明失败的付款、拒绝等以及成功的收费。
然后你需要处理发生的错误。您正在通过 处理错误.catch
,但您没有检查错误对象。同样,条纹也有关于错误的文档:https ://stripe.com/docs/api#errors
他们甚至还告诉您如何处理错误:https ://stripe.com/docs/api#handling-errors
推荐阅读
- hockeyapp - 使用 API(令牌)从应用中心/曲棍球应用下载最新的工件
- linux - 在 Linux 上通过 OpenSSH 公钥身份验证使用 Powershell 更新 DNS
- javascript - 触发 3cx-clicktotalk WordPress 插件的 3cx 调用按钮
- android - 尝试使用 maven 和插件 com.jayway.maven.plugins.android.generation2 构建 android 应用程序时出现 NullPointerException
- sql - 将列名的文本值转换为查询中的列
- javascript - 如何为开放图层中的开放街道地图使用不同的主题?
- java - 列表上的 Selenium 非确定性循环
- java - Eclipse:导出具有依赖项的 java 库
- java - 声明和直接归因之间的区别
- azure - Microsoft.Azure.Cosmos SDK 带有延续令牌的分页查询