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)
- X-BytePower-Auth-Token:JWT token
请求体
参数 | 类型 | 说明 |
---|---|---|
pay_platform_config_name | string | 选填参数,paypal platform config 名字,不填默认为 Default |
amount | int | 必填。订单的价格。对于美元来说,单位是分,其它货币还需要再确认。 |
currency | string | 必填。订单的币种,格式为 3 个字母的缩写,遵循 ISO 规范 ,如 usd |
响应
- HTTP 状态码:200
参数 | 类型 | 说明 |
---|---|---|
paypal_order | object | 返回的 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)
- X-BytePower-Auth-Token:JWT token
请求体
参数 | 类型 | 说明 |
---|---|---|
pay_platform_config_name | string | 可选参数,paypal platform config 名称,不填默认为 Default |
响应
- HTTP 状态码:200
参数 | 类型 | 说明 |
---|---|---|
paypal_order | object | 返回的 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)
- X-BytePower-Auth-Token:JWT token
query string
参数 | 类型 | 说明 |
---|---|---|
pay_platform_config_name | string | 可选参数,paypal platform config 名称,不填默认为 Default |
请求体
无
响应
- HTTP 状态码:200
参数 | 类型 | 说明 |
---|---|---|
paypal_order | object | paypal_order 信息 |
assets | array | 用户的 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 第三方错误)