QFPay订阅支付API
创建并管理订阅及订阅支付
订阅支付运行流程
API运行环境
环境名称 | 地址 |
---|---|
Sandbox | https://openapi-int.qfapi.com |
API资源
如需要创建并管理一个订阅支付活动,需要如下的API资源:
API资源 |
---|
Customer |
Payment Token |
Product |
Subscription |
创建订阅支付的流程
信息
当前 subscription 的创建流程如下:
- 配置你的异步通知地址,你可以通过通知获取
token_id
并且跟进订阅支付的状态。 - 创建 customer 对象并获得
customer_id
。 - 使用
customer_id
和卡信息来创建 token intent并获得token_id
。 - 创建 product 对象并获得
product_id
,你可以在 product 对象定义订阅支付的每个扣款周期的交易金额和两次扣款周期的间隔。 - 使用
customer_id
,product_id
和token_id
创建 subscription 对象,订阅支付的开始时间和总的扣款周期将在 subscription 对象定义。
订阅支付的状态
state diagram 所有订阅状态一旦触发都会推送至商户后台服务
通用响应参数列表
参数名称 | 参数类型 | 描述 |
---|---|---|
respcd | String | 返回码, 0000 = API呼叫成功 |
resperr | String | 呼叫结果的详情 |
respmsg | String | 呼叫的信息详情 |
page | Int | 查询页数,在查询API中出现 |
page_size | Int | 查询页大小,在查询API中出现 |
data | Object | 结果值, JSON对象或由JSON对象组成的列表 |
Customer
Customer 是一个提供给商户用于存储客户信息的API资源. 这个对象可以被应用在 PaymentToken, Subscription API中.
创建 Customer 对象
API 路径 : /customer/v1/create
请求参数列表
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
name | String | 否 | 客户姓名 |
phone | String | 否 | 客户联系方式 |
String | 否 | 客户邮箱 | |
billing_address | String | 否 | 客户账单地址, 字符串化的JSON对象 |
在data部分的响应参数列表
参数名称 | 参数类型 | 描述 |
---|---|---|
customer_id | String | QFPay 系统生成的唯一 customer 对象ID值 |
name | String | 客户姓名 |
phone | String | 客户联系方式 |
String | 客户邮箱 | |
billing_address | JSON | 客户账单地址 |
更新 customer 对象
API 路径 : /customer/v1/update
请求参数列表
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
customer_id | String | 是 | QFPay 系统生成的唯一 customer 对象ID值 |
name | String | 否 | 客户姓名 |
phone | String | 否 | 客户联系方式 |
String | 否 | 客户邮箱 | |
billing_address | JSON | 否 | 客户账单地址 |
在data部分的响应参数列表
参数名称 | 参数类型 | 描述 |
---|---|---|
customer_id | String | QFPay 系统生成的唯一 customer 对象ID值 |
name | String | 客户姓名 |
phone | String | 客户联系方式 |
String | 客户邮箱 | |
billing_address | JSON | 客户账单地址 |
查询 customer 对象
API 路径 : /customer/v1/query
请求参数列表
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
customer_id | String | 否 | QFPay 系统生成的唯一 customer 对象ID值 |
name | String | 否 | 客户姓名 |
phone | String | 否 | 客户联系方式 |
String | 否 | 客户邮箱 | |
page | Int | 否 | 默认值 = 1 |
page_size | Int | 否 | 默认值 = 10, 最大值是100 |
在data部分的响应参数列表
包含如下参数的 customer 对象数组:
参数名称 | 参数类型 | 描述 |
---|---|---|
customer_id | String | QFPay 系统生成的唯一 customer 对象ID值 |
name | String | 客户姓名 |
phone | String | 客户联系方式 |
String | 客户邮箱 |
删除 customer 对象
永久删除 customer 对象, 不能撤销. 任何与已删除的 customer 对象相关联的订阅计划将会被取消
API 路径 : /customer/v1/delete
请求参数列表
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
customer_id | String | 是 | QFPay 系统生成的唯一 customer 对象ID值 |
Product
Product 是商户要提供给客户的商品和服务的模型.它定义了交易金额, 交易货币和扣款周期(如可用). 这个对象可被用于 subscription API
创建 product 对象
创建一个新的 product 对象
API 路径 : /product/v1/create
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
name | String | 是 | 展示给客户的产品名称 |
type | String | 否 | 默认值=onetime, 可用值: onetime, recurring |
description | String | 否 | 产品描述 |
txamt | Int | 是 | 交易金额, e.g. $1=100。建议数值大于200,避免因支付金额过低而被交易风控。 |
txcurrcd | String | 是 | 交易货币, e.g. HKD |
interval | String | 否 | 可用值: monthly, yearly, 周期扣款产品必传 |
interval_count | Int | 否 | 两次扣款的间隔, 最高允许1年, 周期扣款产品必传 |
usage_type | String | 否 | 默认值=licensed, 可用值: licensed |
在data部分的响应参数列表
参数名称 | 参数类型 | 描述 |
---|---|---|
product_id | String | QFPay 系统生成的唯一 product 对象的ID值 |
name | String | 展示给客户的产品名称 |
type | String | 默认值=onetime, 可用值: onetime, recurring |
description | String | 产品描述 |
txamt | Int | 交易金额, e.g. $1=100。建议数值大于200,避免因支付金额过低而被交易风控。 |
txcurrcd | String | 交易货币, e.g. HKD |
interval | String | 可用值: monthly, yearly |
interval_count | Int | 两次扣款的间隔 |
usage_type | String | 默认值=licensed, 可用值: licensed |
更新 product 对象
更新当前的 product 对象信息
API 路径 : /product/v1/update
请求参数列表
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
product_id | String | 是 | QFPay 系统生成的唯一 product 对象的ID值 |
name | String | 否 | 展示给客户的产品名称 |
description | String | 否 | 产品描述 |