处理付款/处理信用卡时使用什么 HTTP 代码?
例如:
我正在发送 JSON 响应,所以我不太介意,但我想知道什么是正确的代码。
首先,区分以下故障很重要
后者通常描述客户端无法自行解决的错误。
第一个应该有 400 系列的状态代码。其他由服务器端引起的应该有 500 系列的状态代码。
我的建议
资金不足
我建议
400
(错误的请求)以及有意义的错误消息。
无法取回资金(在没有给出原因的情况下)
500
(服务器内部错误),如果根本原因显然是服务器端。
503
(服务不可用),如果可以确定某些必要的网络服务暂时不可用。 503
背后的含义是,此错误是暂时的,鼓励客户端稍后重试相同的请求。
Retry-After
标头中设置建议客户端在重试之前等待的秒数。400
(错误请求)如果根本原因是客户端以某种方式无效的请求
信用卡已过期
我再次建议
400
(错误的请求)+错误消息
可以在此处找到完整的返回代码列表。
之前的回答说的是有效的。 重要的是,您的 API 在决定响应代码后坚持其选择。 这是由支付提供商更改其 API 导致的相关 Uber Eats 错误。
我想补充一点,
402
(需要付款)可能就是您正在寻找的。请注意,在发表此评论时,MDN 已将 402
声明为“实验性”。请在此处查看介绍 402 状态代码的 RFC。
MDN 文档状态:
有时,此状态代码表示在客户端付款之前无法处理请求。然而,不存在标准的使用约定,不同的实体在不同的上下文中使用它。