跳到正文

独立订单支付 ​

独立订单支付支持一次性商品购买。本文介绍如何查询报价、创建订单、打开付款页面,以及恢复原订单的付款。

前提条件 ​

开发配置与测试无需人工审批。已提供的自有范围经营功能默认可用;一次性商品按真实需要配置,不是登录、API 或事件联调的前置。

在 Developer Console 的当前应用「商业管理 → 收费与履约」中选择一次性商品及已批准报价,保存后平台自动核验。报价包含确定的商品、价格和条款版本。客户的付款资格须独立批准;能管理应用或客户公司资料不能直接获得客户付款权限。

调用权限 ​

使用当前应用的用户 OAuth 登录,并申请独立支付 API 的用户权限:

Scope用途
commerce.order_payment.catalog.read读取获批的一次性报价
commerce.order_payment.order.read读取原订单和付款状态
commerce.order_payment.checkout.create接受报价及恢复原订单付款

API 权限配置就绪后,还须取得当前用户对 order_payment_product 资源范围的本人同意。资源编号是当前商品的 Product Code。Token 商品的本人授权不能用于独立订单支付;应用服务身份不能代替用户身份。

每次调用以下接口时,携带用户 Bearer,以及当前企业、应用、环境、API 产品、本人授权和商品的选择头:X-GV-Organization-ID、X-GV-Application-ID、X-GV-Environment、X-GV-API-Product-ID、X-GV-Delegated-Grant-ID、X-GV-Product-Code。每个头只允许一个值。使用公开配置的 GOODVISION_API_BASE,明确选择 sandbox|production,平台派生对应 Client 与环境绑定。

创建订单与付款 ​

  1. 调用 GET /open-platform/v1/order-payment-offers,读取当前获批报价的 id、resource_version、价格、条款正文和 terms_sha256。用户确认正文后,提交接受请求。

  2. 调用 POST /open-platform/v1/order-payment-orders,携带原 Idempotency-Key 和如下内容。金额由报价计算,正文不接受金额、收款账户或环境覆盖。

    json
    {
      "offer_id": "<获批报价 ID>",
      "offer_version": 3,
      "quantity": 2,
      "accepted_terms_sha256": "<所确认条款的 SHA256>"
    }
  3. 保存返回的原订单 id。此步骤只接受订单。调用 POST /open-platform/v1/order-payment-orders/{id}:checkout,携带原请求键及空对象 {},创建或恢复该订单的付款。取得有效 checkout.checkout_url 后跳转。

  4. 回跳后调用 GET /open-platform/v1/order-payment-orders/{id},以返回的 status 判断结果。回跳和托管页面成功提示不能确认订单已付款。

错误与恢复 ​

请求超时或返回 503 时,保留原订单、正文和请求键,用同一请求恢复原订单付款。不要换键创建另一笔付款。

尚未创建付款的订单有 30 分钟恢复窗口。托管会话过期、付款取消或结果不明且返回 409 时,先查询原订单,再联系平台处理。

商品停售或价格变化不会修改原订单的购买条件。每次请求仍会检查当前应用能力、本人授权和客户付款资格。

状态码处理方式
403检查能力是否暂停、授权是否撤销,以及商品、环境是否在批准范围内
429当前 API 订阅的分钟配额已耗尽,按 Retry-After 等待

独立支付用于一次性订单。订阅、Token 额度和产品使用权限需通过各自已开通的接口办理。

当前用户授权接口的完整参数与恢复规则见用户授权。

开发者文档。第三方接入不需要内部运营平台权限。