我正在尝试使用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块中处理'errors'。我没有意识到Stripe不会抛出异常,这样可以让生活更轻松。然而,关于格式化消息的观点仍然存在。 '/ charge'只输出纯文本。
答案 0 :(得分:0)
如何查看响应并相应处理?
条纹文档清楚地向您显示成功收费的响应是:https://stripe.com/docs/api/node#create_charge(Example response
下)。它会为您提供一个大型JSON对象。
您需要弄清楚该响应的哪个部分对您在客户端应用程序中显示有用。如果不需要任何信息,那么您可以忽略响应。
(...)但这是一个'充电'页?如何将其显示为html而不仅仅是纯文本?
您现在正在做的只是通过res.send
将整个JSON对象发送到您的客户端。除了简单地将其作为纯文本发送回来之外,您没有对响应做任何事情。您需要配置视图以显示响应: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