Skip to content

paypal 一次性购买 server to server

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

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

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

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

请求头部参数 (Headers)

参考接入 BytePower

  • X-BytePower-Auth-Token:JWT token

请求体

参数类型说明
pay_platform_config_namestring选填参数,paypal platform config 名字,不填默认为 Default
amountint必填。订单的价格。对于美元来说,单位是分,其它货币还需要再确认。
currencystring必填。订单的币种,格式为 3 个字母的缩写,遵循 ISO 规范 ,如 usd

响应

  • HTTP 状态码:200
参数类型说明
paypal_orderobject返回的 paypal 订单对象

paypal_order 数据结构见 paypal_order 对象说明

响应示例:

json
{
  "paypal_order": {
    "amount": 157,
    "approve_link_href": "https://www.sandbox.paypal.com/checkoutnow?token=5S461083AJ628890L",
    "currency": "usd",
    "id": "5S461083AJ628890L",
    "status": "CREATED"
  }
}

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

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

error_type:

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

2. 支付一次性支付(one-off payment) 的 paypal 订单

POST /bp/server/user/{user_id}/asset/paypal_order/{order_id}/capture

接口功能:  该接口支付一个一次性支付(one-time payment) 的 paypal 订单。

创建订单后,首先让用户在 approve_link_href 指向的网页中进行确认,然后再调用该接口进行支付。支付完成后,订单状态为 COMPLETED 表示支付成功。

请求头部参数 (Headers)

参考接入 BytePower

  • X-BytePower-Auth-Token:JWT token

请求体

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

响应

  • HTTP 状态码:200
参数类型说明
paypal_orderobject返回的 paypal 订单对象

paypal_order 数据结构见 paypal_order 对象说明

响应示例:

json
{
  "paypal_order": {
    "amount": 157,
    "approve_link_href": "",
    "currency": "usd",
    "id": "5S461083AJ628890L",
    "status": "COMPLETED"
  }
}

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

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

error_type:

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

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

GET /bp/server/user/{user_id}/asset/paypal_order/{order_id}?pay_platform_config_name=

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

请求头部参数 (Headers)

参考接入 BytePower

  • X-BytePower-Auth-Token:JWT token

query string

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

请求体

响应

  • HTTP 状态码:200
参数类型说明
paypal_orderobjectpaypal_order 信息
assetsarray用户的 asset 信息

paypal_order 数据结构见 paypal_order 对象说明

响应示例:

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": "paypal",
      "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
    }
  ],
  "paypal_order": {
    "amount": 157,
    "approve_link_href": "",
    "currency": "usd",
    "id": "5S461083AJ628890L",
    "status": "COMPLETED"
  }
}

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

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

error_type:

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

京ICP备19011570号-2