Skip to content

处理支付

支付处理开始于 Genstore 向支付应用发起 HTTP 请求,支付应用需通过 Update payment result 异步通知 Genstore 支付结果。一旦支付状态被回调为 成功 (true)失败 (false),即进入支付生命周期的终态,状态不可再变更。

整个流程依赖 Genstore 与支付应用之间的幂等异步通信。支付应用必须实现:

  • 幂等性:避免重复请求导致结果不一致。
  • 重试策略:在网络错误或超时情况下安全重试。

TIP

  • 支付应用必须支持测试模式。商家可以在支付应用中开启或关闭测试模式。当测试模式开启时,除查询类请求外,所有请求的业务参数中都会携带 test: true 字段。
  • 涉及到先授权后捕获的操作,商户可以选择先进行授权。如果您的应用不支持先授权后捕获,您需要自行处理支付接口中的授权请求。在商户订单中,系统会根据您返回的支付状态为“已授权”来启用捕获按钮,您需要自行处理捕获请求,而不是简单返回“已授权”状态。

直连卡支付

下图说明了 Genstore 与信用卡支付应用之间的支付流程:

  1. 客户触发支付请求。
  2. Genstore 向支付应用发送请求,请求中指定了要收取的金额、货币以及加密的信用卡信息。
  3. 应用以 HTTP 代码 200 (OK)响应,表示请求有效且已被接收。
  4. 支付应用使用请求中接收到的支付信息来处理支付。
  5. 支付应用通过调用 Genstore 的 Update payment result API,将支付结果同步给Genstore,并根据需要实施重试策略。
  6. Genstore 通过 HTTP 代码 200 (OK)响应,表示请求有效且已被接收。
  7. 客户继续完成结账。

启用 3D-Secure 的直连卡支付

在需要 3-D Secure 验证的场景下,直连卡支付会增加额外的认证步骤。在该流程中,支付应用需返回 3-D Secure 重定向 URL,Genstore 将客户引导至认证页面,待验证完成后,应用再通过 Update payment result API 通知 Genstore 最终支付结果。

下图说明了在启用 3D Secrue 的场景下,Genstore 与信用卡支付应用扩展的支付流程:

流程步骤

  1. 客户在 Genstore 完成结账,触发支付请求。
  2. Genstore 向支付应用发送请求(包含金额、货币、加密的信用卡信息)。
  3. 支付应用确定是否需要 3-D Secure 重定向。如需认证,应用需返回客户应重定向的 URL。
  4. Genstore 将客户重定向至该认证页面,客户完成 3-D Secure 身份验证。客户在 3-D Secure 认证过程中可能会被挑战。
    • 如果3-D Secure 身份验证失败,应用程序调用 Update payment result将支付最终确定为或已拒绝;
    • 如果3-D Secure 身份验证成功,则继续进行支付,应用完成支付,使用 Update payment result 向 Genstore 同步支付结果。
  5. Genstore 通过 HTTP 代码 200 (OK)响应,确认支付状态已更新。
  6. 客户继续完成结账流程。

站外支付

对于需要将客户跳转到外部页面完成支付的场景,采用 站外支付模型。

流程步骤

  1. 客户在 Genstore 完成结账,触发支付请求。
  2. Genstore 向支付应用发送请求,包含金额与货币信息。
  3. 支付应用以 HTTP 200 (OK) 响应,并返回由应用托管的支付页面重定向 URL。
  4. Genstore 将客户重定向至该 URL。
  5. 客户在当前页面进行支付,支付应用收集客户支付凭证,并执行支付处理。
  6. 支付应用调用 Update payment result API:
    • 若支付已完成 → 更新为成功或失败,并根据需要实施重试策略。
    • 若支付需等待第三方(客户 / 支付合作伙伴 / 支付网络) → 可先设置为 处理中
  7. Genstore 返回 HTTP 状态码 200 (OK) 并携带重定向 URL。
  8. 支付应用将客户重定向回 Genstore。
  9. 客户继续完成结账流程。