订阅签约

接口说明

适用场景:商户发起订阅签约,含首期扣款或试用鉴权

请求方式:【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]

【扣款路径】至少一档,每档含 orderpaymentMethodsubjectRef

属性
order  必填 number【优先级序号】扣款路径优先级序号(从 1 开始,越小越优先)
paymentMethod  必填 string(32)【支付方式】,见数据字典与枚举说明1.5
subjectRef  必填 string【主体引用】协议号等主体引用
ext  选填 object【扩展参数】

注意deductionPayRouteJSON 数组类型,直接传 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 系统异常 内部系统错误