订单发货使用简述
1、第三方需提供公钥给K歌
openssl genrsa -out rsa_private_key.pem 1024
`
2、请求参数
参数名 | 必选 | 类型 | 默认值 | 说明 |
---|---|---|---|---|
data | 是 | string | - | 消息数据, 内容为json字符串, 经过标准base64编码 |
sign | 是 | string | - | 对上面data数据的签名,签名采用SHA1withRSA,经过标准base64编码,第三方提供public key给K歌,用于验证此消息是否由第三方发出 |
data参数说明
参数名 | 必选 | 类型 | 说明 | 备注 |
---|---|---|---|---|
appid | 是 | string | AppID | 必须和header中一致 |
openid | 是 | string | 用户id | |
pay_type | 是 | int | 支付类型 | 1-普通包月支付 2-自动续费 3-连包签约 11-包月会员补偿 12-连包会员补偿 100-退权益 |
price | 是 | int | 实际付款金额 | 单位(分) |
days | 是 | int | 天数 (31 93 372 其他天数请联系产品) | |
pay_time | 是 | int | 支付时间 | 秒级时间戳 |
order_id | 是 | string | 订单id(对账用) | 对同一个orderid的请求幂等 |
timestamp | 是 | int | 请求时间戳 | 秒级时间戳,允许误差5分钟内 |
marketing_id | 否 | string | 营销活动id | 特殊天数商品需要传,比如1天、3天。活动号请联系产品获取 |
3、错误码说明
1.
例如 HTTP Header中的X-Open-APP-ID 应用级X-Open-Access-Token验证失败
2.
3.
3.1 错误码范围10001 - 11000 应该在联调阶段处理
返回值 | 错误信息 | 备注 |
---|---|---|
10001 | 参数错误 | Content-Type错误等 |
10002 | 解析json失败 | json字符串 base64解码失败/json解析失败等 |
10003 | header不匹配 | http header中appid与body中appid不一致 |
10004 | 参数错误2 | K歌内部server返回,出现概率较小 |
10005 | 未找到配置 | k歌内部未进行配置(应在测试阶段发现处理) |
10006 | 无发货权限 | - |
10007 | 无自动扣费权限 | 必须使用用户级token验证(对应pay_type=1),不支持应用级token开通 |
10008 | 重复退款 | - |
10009 | 退款时长或者价格错误 | - |
10010 | 订单超过最晚退款时间 | - |
10016 | 无退款权限 | - |
返回值 | 错误信息 | 备注 |
---|---|---|
11001 | 签名错误 | sign校验失败 |
11002 | 登录态校验失败 | appid openid 用户access_token校验失败 |
11003 | 获取账号uid失败 | 例如 自动扣费时,不需要用户在场, 用户已在K歌注销账号, 此时openid无法对应到K歌账号 |
11004 | 订单已存在 | 极短时间发送同一个订单的请求导致K歌后端异常 (一个请求成功, 其余请求返回该错误) |
11005 | 时间戳无效 | 时间戳需要与K歌服务器误差在5分钟内 |
11006 | 未知错误 | K歌后台会额外返回未知错误码 补充在msg中 |
http status非200一般是在网关侧失败, 请确认应用级token正确
3.1的错误码在联调阶段后基本上不会出现
3.2的错误码可进行重试, 注意请求时间戳不要过期(5分钟内)
4、RSA加密算法示例
修改于 2025-04-14 07:40:30