Skip to content

stripe 一次性购买 server to server

注:该页面的接口都是 server to server 接口,不支持 client 端使用。使用以下 S2S 接口不需要在 bytepower console 配置资产(assets) 和 商品(products)。

1. 创建一次性支付(one-off payment) 的 stripe 订单

POST /bp/server/user/{user_id}/asset/stripe_payment_intent

接口功能:  该接口创建一个一次性支付(one-time payment) 的 stripe 订单,即 stripe payment intent。

请求头部参数 (Headers)

参考接入 BytePower

  • X-BytePower-Auth-Token:JWT token

请求体

参数类型说明
pay_platform_config_namestring选填参数,使用的 stripe platfrom config 名字,不填默认为 Default
emailstring选填参数,用户邮箱,可以用于关联订单
use_default_payment_methodbool选填。 是否使用 stripe customer 的 default payment method,默认为 false,即不使用。 如果本次支付需要用户输入支付信息(如卡号),则可以不使用该选项,这样支付会使用用户填写的支付方式; 如果本次支付希望让用户跳过输入支付信息(如卡号)的步骤,设置该选项为 true,则服务端会尝试使用 stripe customer 的 default payment method 来配置该订单,如果 default payment method 有效,客户端就不再需要用户输入支付信息,可以直接 confirm 订单。 目前只支持【通过 setup_intent 创建订阅订单】 (即接口 /bp/asset/stripe_setup_intent 和 /bp/asset/stripe_sub 的联合使用)来设置 stripe customer 的 default payment method。
amonutint必填参数,订单的价格。对于美元来说,单位是分,其它币种请和服务端再确认。
currencystring必填。订单的币种,格式为 3 个字母的缩写,遵循 ISO 规范,如 usd

响应

  • HTTP 状态码:200
参数类型说明
stripe_payment_intentobject返回的 stripe payment intent 对象(即一次性支付订单)

stripe_payment_intent 数据结构见 stripe_payment_intent 对象说明

响应示例:

json
{
  "stripe_payment_intent": {
    "amount": 1000,
    "client_secret": "pi_3OoGrUJeDjdpBmRt0ckNRnep_secret_R2XJduJouWqBJ5cI22xEakzT9",
    "currency": "usd",
    "customer_id": "cus_PdXvHigq3f3svX",
    "id": "pi_3OoGrUJeDjdpBmRt0ckNRnep",
    "payment_method_id": "",
    "status": "requires_payment_method"
  }
}

HTTP 状态码:4xx 描述:错误 响应示例:

json
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}

error_type:

  • invalid_parameter (请求参数错误)
  • config_invalid (console 配置问题)
  • backend unavailable (stripe 第三方错误)

2. 获取 stripe 一次性支付(one-off payment) 订单信息

GET /bp/server/user/{user_id}/asset/stripe_payment_intent/{payment_intent_id}?pay_platform_config_name=

接口功能: 获取 stripe 一次性支付(one-time payment) 订单的信息。stripe 订单 id 由 URL 路径中的 payment_intent_id 给出,stripe 平台配置名字由 query string 中的 pay_platform_config_name 参数给出。

请求头部参数 (Headers)

参考接入 BytePower

  • X-BytePower-Auth-Token:JWT token。

query string

参数类型说明
pay_platform_config_namestring可选参数,stripe platform config 名称,不填默认为 Default

请求体

响应

  • HTTP 状态码:200
参数类型说明
stripe_payment_intentobject返回的 stripe payment intent 对象(即一次性支付订单)
assetsarray用户的 asset 信息

stripe_payment_intent 数据结构见 stripe_payment_intent 对象说明

响应示例:

json
{
  "assets": [
    {
      "custom_expire_time": "0001-01-01T00:00:00Z",
      "expire_time": "2024-02-28T06:33:24Z",
      "is_auto_renewable": true,
      "is_consumable": true,
      "is_trial_period": true,
      "name": "vip",
      "origin": "purchase",
      "platform": "stripe",
      "product_id": "prod_Nf6dZGfCIERbqP",
      "quantity": 300,
      "receipt_id": "sub_1OnxkeJeDjdpBmRtQTvwiUeA",
      "sub_canceled": false,
      "sub_canceled_time": "0001-01-01T00:00:00Z",
      "sub_canceled_ts": 0,
      "total_quantity": 300,
      "type": "subscription",
      "valid_seconds": 101407
    }
  ],
  "stripe_payment_intent": {
    "amount": 1000,
    "client_secret": "pi_3OoGrUJeDjdpBmRt0ckNRnep_secret_R2XJduJouWqBJ5cI22xEakzT9",
    "currency": "usd",
    "customer_id": "cus_PdXvHigq3f3svX",
    "id": "pi_3OoGrUJeDjdpBmRt0ckNRnep",
    "payment_method_id": "",
    "status": "requires_payment_method"
  }
}

HTTP 状态码:4xx 描述:错误 响应示例:

json
{
  "error": {
    "error_type": "invalid_parameter",
    "message": "xxxxx"
  }
}

error_type:

  • invalid_parameter (请求参数错误)
  • config_invalid (console 配置问题)
  • backend unavailable (stripe 第三方错误)

京ICP备19011570号-2