创建订单
需要申请添加 IP 白名单,此接口仅代表下单状态。
基本信息
| 项目 | 值 |
|---|---|
| URL | /order/createOrder |
| 方法 | HTTP POST |
请求参数
| 参数名 | 类型 | 必传 | 说明 |
|---|---|---|---|
| phoneNum | string | 是 | 手机号码(合作方下单前必须校验手机号正确性) |
| outOrderNum | string | 是 | 外部订单号(同一用户+同一订单号视为重复下单) |
| goodsType | int | 是 | 商品类型:1 安卓懒人币、2 iOS懒人币、3 VIP会员、4 有声书籍、5 付费节目、7 分章书籍、8 VIP会员(按套餐ID) |
| goodsId | long | 条件 | 商品/套餐 ID,详见各 goodsType 要求 |
| goodsNum | int | 条件 | 商品数量,详见各 goodsType 要求 |
| os | int | 否 | 系统类型:1 iOS、2 Android。不传默认 Android |
| originalTotalFee | int | 条件 | 商品原价(单位:分),我方定价模式下必传 |
| userPayTotalFee | int | 否 | 用户付款金额(单位:分) |
| payTotalFee | int | 条件 | 懒人收款金额(单位:分),对方定价模式下必传 |
关于定价模式
- 我方定价(默认):合作方传
originalTotalFee,系统按配置的分成比例/金额计算各方收入 - 对方定价:合作方传
userPayTotalFee(用户实付)+payTotalFee(懒人收款),无需传originalTotalFee
商品类型说明
| goodsType | 含义 | goodsId | goodsNum | originalTotalFee |
|---|---|---|---|---|
| 1 | 安卓懒人币 | 不传 | 币数量(必传) | 我方定价必传 |
| 2 | iOS 懒人币 | 不传 | 币数量(必传) | 我方定价必传 |
| 3 | VIP 会员(按月数) | 不传 | 月数(必传) | 我方定价必传 |
| 4 | 有声书籍 | 书籍 ID(必传) | 不传 | 我方定价必传 |
| 5 | 付费节目 | 节目 ID(必传) | 不传 | 我方定价必传 |
| 7 | 分章书籍 | 书籍 ID(必传) | 不传 | 我方定价必传 |
| 8 | VIP 会员(按套餐 ID,推荐) | 套餐 ID(必传) | 不传 | 不传 |
响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| orderNo | long | 订单号 |
| createTime | long | 创建时间(时间戳,毫秒) |
| originalTotalFee | int | 商品原价(单位:分) |
| userPayTotalFee | int | 用户付款金额(单位:分) |
| payTotalFee | int | 懒人收款金额(单位:分) |
| status | int | 下单状态,0 表示成功 |
| msg | String | 描述信息 |
状态码
| status | 说明 |
|---|---|
| 0 | 下单成功 |
| 1 | 下单失败(原因见 msg) |
| 4 | 无效的套餐 ID |
| 7 | 没权限访问该接口 |
| 9 | 未开放该商品权限 |
| 15 | 参数格式错误 |
| 16 | 用户创建失败 |
| 17 | 非法下单(用户不匹配) |
| 19 | 下单内容不合法(过滤规则不通过) |
| 21 | 合作方非法 |
| 22 | 分销业务已截止 |
| 23 | 书籍/资源 ID 不存在 |
| 27 | 单个用户下单限制 |
| 28 | 分销价格错误 |
| 38 | token 校验失败 |
| 39 | IP 不在白名单 |
响应示例
成功:
{
"result": {
"orderNo": 62223800099,
"createTime": 1596531878000,
"originalTotalFee": 800,
"userPayTotalFee": 800,
"payTotalFee": 400,
"status": 0,
"msg": "下单成功!"
}
}
重复订单(幂等):
{
"result": {
"orderNo": 62223800099,
"createTime": 1596531878000,
"status": 0,
"msg": "下单成功(重复订单)!"
}
}
此接口状态码仅代表下单状态。若要确认交易是否完成、权益是否生效,请在下单成功后调用 查询订单 接口,以查询结果为准。
VIP 会员下单详解
方式一:按月数下单(goodsType=3)
适用于月卡、季卡、半年卡、年卡。不支持周卡(周卡请使用方式二)。
参数要求:
| 参数 | 说明 |
|---|---|
| goodsType | 固定传 3 |
| goodsNum | 1=月卡、3=季卡、6=半年卡、12=年卡 |
| os | 1 iOS / 2 Android,不传默认 Android |
| originalTotalFee | 我方定价模式下必传,对应价格见下表 |
标准价格表(单位:分):
| OS | 月卡(goodsNum=1) | 季卡(goodsNum=3) | 半年卡(goodsNum=6) | 年卡(goodsNum=12) |
|---|---|---|---|---|
| Android | 1500 | 4200 | 8200 | 14800 |
| iOS | 1800 | 5000 | 9000 | 16800 |
示例(我方定价):
phoneNum=18895162342&outOrderNum=DX124563525632&goodsType=3&goodsNum=1&originalTotalFee=1500
含义:手机号 18895162342 的用户以 15 元购买 1 个月 Android VIP 会员。
方式二:按套餐 ID 下单(goodsType=8,推荐)
无需计算天数和价格,只需传入套餐 ID,系统自动查询天数和价格。支持所有卡型(含周卡)。
参数要求:
| 参数 | 说明 |
|---|---|
| goodsType | 固定传 8 |
| goodsId | 套餐 ID(必传),见下方套餐列表 |
| goodsNum | 不传 |
| os | 不传(自动根据套餐 ID 识别) |
| originalTotalFee | 不传(系统自动使用套餐标准价) |
可用套餐列表:
| 套餐 ID | OS | 卡型 | 天数 | 标准价(分) |
|---|---|---|---|---|
| 10060 | Android | 7 天周卡 | 7 | 800 |
| 10061 | Android | 月卡 | 31 | 1500 |
| 10062 | Android | 季卡 | 93 | 4200 |
| 10063 | Android | 半年卡 | 186 | 8200 |
| 10064 | Android | 年卡 | 372 | 14800 |
| 10070 | iOS | 7 天周卡 | 7 | 800 |
| 10071 | iOS | 月卡 | 31 | 1800 |
| 10072 | iOS | 季卡 | 93 | 5000 |
| 10073 | iOS | 半年卡 | 186 | 9000 |
| 10074 | iOS | 年卡 | 372 | 16800 |
示例(我方定价,使用标准价):
phoneNum=18895162342&outOrderNum=XX12456&goodsType=8&goodsId=10060
含义:手机号 18895162342 的用户以标准价 8 元购买 7 天 VIP 周卡(Android)。
示例(对方定价模式):
phoneNum=18895162342&outOrderNum=XX12457&goodsType=8&goodsId=10060&userPayTotalFee=600&payTotalFee=300
含义:用户实付 6 元,懒人收款 3 元,购买 7 天 VIP 周卡。对方定价模式由分销商配置决定,需传 userPayTotalFee 和 payTotalFee。
补充说明
- 参数编码:当参数中出现特殊字符(
# $ ^ & * + =)时,需在完成签名后对参数进行 URL 编码,再构造请求。 - 重复下单:同一用户 + 同一外部订单号视为重复订单,系统返回 status=0 和原订单信息,不会重复扣费。
- 接口过滤规则:分销商需在后台配置允许下单的 VIP 天数(如
7,31,93,186,372),未配置的天数会返回 status=19。使用 goodsType=8 时未配置过滤规则默认放行。
电信联名卡 VIP 下单参数示例:
phoneNum=18895162342&outOrderNum=DX124563525632&goodsType=3&goodsNum=1&originalTotalFee=1000
含义:18895162342 的电信联名卡用户以 10 元的价格购买 1 个月 VIP 会员,对应电信侧订单号 DX124563525632。