处理付款/处理信用卡时使用什么HTTP代码?例如:
我正在发送JSON响应,所以我不太介意,但我想知道什么是正确的代码使用。
gab6jxml1#
首先,必须区分以下故障1.由客户端引起1.其他是由服务器端的问题引起的后者通常描述客户端无法自己解决的错误。第一个问题应该有一个400系列的状态码,其他由服务器端引起的问题应该有一个500系列的状态码。"我的建议"
400
500
503
Retry-After
返回代码的完整列表可以在here中找到。
h4cxqtbf2#
前面的答案是正确的。* 重要的是,您的API在决定响应代码后会坚持自己的选择。* Here's a relevant Uber Eats bug caused by a payment provider changing their API.我想补充的是402(需要支付)可能是你正在寻找的。注意,402是由MDN声明为“实验性”在这个评论的时候。检查RFC介绍402状态码在这里。MDN docs状态:有时,此状态代码表示在客户付款之前无法处理请求。但是,不存在标准的使用惯例,不同的实体在不同的上下文中使用它。
402
2条答案
按热度按时间gab6jxml1#
首先,必须区分以下故障
1.由客户端引起
1.其他是由服务器端的问题引起的
后者通常描述客户端无法自己解决的错误。
第一个问题应该有一个400系列的状态码,其他由服务器端引起的问题应该有一个500系列的状态码。
"我的建议"
400
(Bad request)以及一个有意义的错误消息。500
(内部服务器错误),如果根本原因明显是服务器端。503
(服务不可用),如果可以确定某些必要的Web服务暂时不可用。503
背后的含义是,此错误是暂时性的,鼓励客户端稍后重试相同的请求。Retry-After
头中设置建议客户端在重试之前等待的秒数。400
(Bad request),如果根本原因是客户端发出的某种无效请求400
(错误请求)+错误消息返回代码的完整列表可以在here中找到。
h4cxqtbf2#
前面的答案是正确的。* 重要的是,您的API在决定响应代码后会坚持自己的选择。* Here's a relevant Uber Eats bug caused by a payment provider changing their API.
我想补充的是
402
(需要支付)可能是你正在寻找的。注意,402
是由MDN声明为“实验性”在这个评论的时候。检查RFC介绍402状态码在这里。MDN docs状态:
有时,此状态代码表示在客户付款之前无法处理请求。但是,不存在标准的使用惯例,不同的实体在不同的上下文中使用它。