【问题标题】:What HTTP code response to use when payment fails?付款失败时使用什么 HTTP 代码响应?
【发布时间】:2020-02-07 11:34:45
【问题描述】:

在处理付款/处理信用卡时使用什么 HTTP 代码?

例如:

  • 资金不足
  • 无法取回资金(未说明原因)
  • 信用卡过期

我正在发送一个 JSON 响应,所以我不太介意,但我想知道什么是正确的代码。

【问题讨论】:

    标签: json http payment-processing


    【解决方案1】:

    首先,区分失败是很重要的

    1. 由客户端引起,并且
    2. 其他由服务器端问题引起的

    后者通常描述客户端无法自行解决的错误。

    第一个应该有 400 系列中的状态代码。其他的,由服务器端引起的,应该有500系列的状态码。

    我的建议

    • 资金不足

      • 我会建议 400(错误请求)以及有意义的错误消息。
    • 无法取回资金(未说明原因)

      • 500(内部服务器错误),如果根本原因显然是服务器端。
      • 503(服务不可用),如果可以确定某些必要的web服务暂时不可用。 503 背后的含义是这个错误是暂时的,鼓励客户端稍后重试相同的请求。
      • 400(错误请求)如果根本原因是客户端的某种无效请求
    • 信用卡过期

      • 再次,我建议400(错误请求)+错误消息

    返回代码的完整列表可以在here 找到。

    【讨论】:

    • 即使外部 API 关闭,您是否会使用 503? (如 Stripe、Paypal 等。)
    • 如果外部 API 不可用也阻止了您的 API 处理请求,那么可以。在这种情况下,我建议使用 503
    猜你喜欢
    • 1970-01-01
    • 2014-12-19
    • 2013-07-26
    • 2018-04-26
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2014-04-01
    相关资源
    最近更新 更多