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. 客户继续完成结账流程。