订阅签约
接口说明
适用场景:商户发起订阅签约,含首期扣款或试用鉴权
请求方式:【POST】/v1/subscription/sign
请求域名:【域名】https://api.baofu.com
请求参数
Header HTTP头参数
详细请参考【开发指引-整体说明】
| Header | 必填 | 说明 |
|---|---|---|
Authorization |
是 | 统一网关鉴权;签名算法与签名参数见下表(须在一行内,勿换行) |
Content-Type |
是 | 固定 application/json |
宝付要求请求通过HTTP Authorization头来传递签名。Authorization由认证类型和签名信息两个部分组成。
Authorization: 认证类型 签名信息
具体组成为:
- 认证类型,取值 RSA/SM2
签名信息
| 参数名 | 说明 |
|---|---|
| mch_id | 宝付分配的唯一商编 |
| app_id | 宝付终端号,选填,若传值,则使用宝付4.0证书 |
| nonce_str | 请求随机串,和上面构造签名串的随机串要保持一致 |
| timestamp | 时间戳 和上面构造签名串的时间戳要保持一致 |
| serial_no | 商户API证书序列号,用于声明所使用的证书 |
| baofu_serial_no | 宝付证书序列号, 联系技术支持提供 |
| dgtl_envlp | 数字信封(非必填),16位密钥,用宝付公钥加密后传输 |
| signature | 签名值,上面算出来的签名值 |
注意:以上七项签名信息,无顺序要求。数字信封参数可以为空
Authorization头的示例如下:(注意,示例因为排版可能存在换行,实际数据应在一行)
Authorization: RSA mch_id="128308",app_id="128308",nonce_str="P7X2R9Z1M5W6Q4V3B8C0D2E1F7G9H2J4",signature="DKLJASKLFGHQWJFPWQJLFKGDKSLGJPQJPFWQJLGKNDLSKJGLDSJLKFSJAKL",timestamp="1507488238",serial_no="123821002",baofu_serial_no="123822342",dgtl_envlp="GLKUIOWQGKDLSNGLKQWJPRQ"
body 包体参数
outTradeNo 必填 string(64)
【商户侧订单号】与统一会员组成签约幂等键。6-64个字符,只能是数字、大小写字母
productCode 必填 string(32)
【内部产品编码】配置中心维护的产品编码
userId 视产品 string(64)
【用户标识】部分产品必填
riskItem 必填 string(2048)
【风控扩展】JSON 字符串(内部 JSON 需转义);详细参数见风控参数字段说明(通用参数、电商、互金消金、航旅、酒店、保险、游戏、大宗);透传至协议支付,具体字段以运营对接为准
deductionPayRoute 必填 array[object]
【扣款路径】至少一档,每档含 order、paymentMethod、subjectRef
| 属性 | |
|---|---|
| order 必填 number【优先级序号】扣款路径优先级序号(从 1 开始,越小越优先) | |
| paymentMethod 必填 string(32)【支付方式】,见数据字典与枚举说明1.5 | |
| subjectRef 必填 string【主体引用】协议号等主体引用 | |
| ext 选填 object【扩展参数】 |
注意:
deductionPayRoute为 JSON 数组类型,直接传 JSON 数组即可,无需做字符串转义;riskItem仍为 String 类型,值为 JSON 字符串,必须对内部 JSON 做转义处理。
notifyUrl 视业务 string(512)
【异步通知地址】须以 http:// 或 https:// 开头;用于接收异步回调通知
merchantNo 选填 string(32)
【商户号】可省略,以统一会员反查为准
clientIp 选填 string(128)
【客户端IP】网关未解析到 IP 时可兜底,与订阅落库 client_ip 一致
响应参数
成功时 data 为订阅视图对象:
subscriptionNo string
【订阅号】系统分配的订阅唯一标识
merchantNo string
【商户号】可空
outTradeNo string
【商户签约订单号】与请求中 outTradeNo 一致
productCode string
【内部产品编码】
userId string
【用户标识】
cycleType string
【周期类型】见数据字典与枚举说明1.3
cycleValue number
【周期值】
fixedDay number
【固定扣款日】依周期模型
baseAmount number
【每期扣款基准金额】单位:分。与产品配置或营销算价结果一致
appliedPricingType string
【应用的定价类型】枚举码,见数据字典与枚举说明1.6
status string
【订阅状态】见数据字典与枚举说明1.1
signTime string
【签约时间】
cancelTime string
【取消时间】未取消时为 null
nextDeductionTime string
【下次计划扣款时间】
currentPeriod number
【当前期数】
totalPeriod number
【总期数】null 为永续
错误码
| 状态码 | 错误码 | 描述 | 说明 |
|---|---|---|---|
| 400 | PARAM_ERROR |
参数校验失败 | 必填参数缺失、格式不合法、产品配置不存在/已禁用、定价策略无效等 |
| 400 | OUT_TRADE_NO_USED |
商户订单号已使用 | 同一统一会员下 outTradeNo 已存在 |
| 200 | TRADE_ERROR |
支付失败 | 协议支付首期扣款失败、鉴权失败、免费试用已使用 |
| 200 | USER_PAYING |
支付处理中 | 渠道侧处理中,结果未决,需通过查询接口确认终态 |
| 504 | SYSTEM_ERROR |
远程调用失败 | 依赖服务超时 |
| 503 | SERVICE_UNAVAILABLE |
配置查询失败 | 配置中心不可用 |
| 500 | SYSTEM_ERROR |
系统异常 | 内部系统错误 |