7. 订单管理
更新:HHH   时间:2023-1-7


7.订单管理接口

7.1.创建订单

当用户申请购买时,调用该接口创建一个订单。

  • 请求
    /order/create?album_id=2

参数:
album_id 【必选】专辑(课程)编号,指明要购买哪个课程。

  • 响应

            {
                "code": 0,
                "data": {
                    "count": 1,
                    "ts": 1530760164,
                    "items": [
                        {
                            "id": "5",
                            "name": "我的直播课",
                            "amount": "0.00",
                            "trade_no": "5-9996-6d2d",
                            "status": 2
                        }
                    ]
                }
            }

name 订单名称,购买内容的名称
amount 要支付的总金额
trade_no 我方平台的订单号,提交给第三方支付系统。注意:在支付宝平台中,以 out_trade_no 的参数名给支付宝平台。
status 支付状态,重要说明:
------如果 status值为0,表示订单创建成功,可以提交支付平台支付;
------如果status值为2,表示该用户已经自动完成支付,原因可能是:课程免费、已经支付、其他优惠等,此时无需再向第三方支付平台提交支付,直接返回购买成功即可。

创建订单失败时返回错误,如:

                {
                    "code": 4,
                    "err_desc": "缺少订购内容参数"
                }

7.2.支付结果回调通知

当支付成功时,通过该接口进行通知,系统收到通知后更新订单状态。

  • 请求
    阿里云回调接口
    /order/alipay

微信支付回调接口
/orders/wxpay

  • 参数
    result 支付结果,数字2 或者字符串“SUCCESS”,表示支付成功;其他值表示支付失败。
    trade_no 我方订单编号
    third_trade_no 第三方支付平台的订单编号
    third_buyer_id 第三方支付平台的支付用户编号
    amount 支付金额

  • 响应
    {
    "code": 0
    }

注意: 如果后台返回错误,或者无响应,回调方要生成本地错误日志用于核查。

7.3.查询一个订单

  • 请求
    /order/get

  • 参数
    id 订单编号
    trade_no 提交给第三方系统时的我方订单号
    以上参数二选一。如果都给,忽略trade_no

  • 响应

            {
                "code": 0,
                "data": {
                    "count": 1,
                    "ts": 1530765028,
                    "items": [
                        {
                            "id": "1",
                            "user_id": "1",
                            "puber_id": "1",
                            "album_id": "1",
                            "title": "我的直播课",
                            "user_name": "王小二",
                            "price": "0.00",
                            "amount": "0.00",
                            "servicer": null,
                            "trade_no": null,
                            "third_trade_no": null,
                            "third_buyer_id": null,
                            "pay_status": "0",
                            "add_time": "2018-07-05 10:57:18",
                            "pay_time": "2018-07-05 10:57:18"
                        }
                    ]
                }
            }

user_id 购买者id
puber_id 发布者id
album_id 课程id
title 课程标题
price 价格
amount 金额
servicer 支付平台 1微信,2支付宝
trade_no 我方订单号
third_buyer_id 支付平台购买者编号
third_trade_no 支付平台订单号
pay_status 支付状态 0 未支付;2 已支付; 4 支付错误
add_time 创建时间
pay_time 支付时间

7.4.查询订单列表

查询老师或学生的订单列表。
如果以老师身份登录,查选售出的订单;
如果以学生身份登录,查询购买的订单。

  • 请求
    /order/list

  • 参数

album_id 专辑(课程)编号,忽略时请求全部。
time_para 时间参数,定义要查询订单的时间范围:
0 今天
1 昨天
-7 最近7天的
-30 最近30天
30 30天前的

page 页码
page_size 分页大小

返回同查询一个订单,只是返回内容可能有多个记录。

7.5.查询订单汇总

查询老师的所有成交订单的汇总数据,已课程为汇总条件。
汇总时间截止到最近一个汇总时间点。

  • 请求
    /order/sum

  • 参数

  • 响应

        {
            "code": 0,
            "data": {
                "count": 3,
                "ts": 1531213233,
                "items": [
                    {
                        "album_id": "7",
                        "title": "测试点播",
                        "total": "0.01",
                        "timestamp": "2018-07-10 17:00:33"
                    },
                    {
                        "album_id": "2",
                        "title": "测试支付",
                        "total": "0.01",
                        "timestamp": "2018-07-10 17:00:33"
                    },
                    {
                        "album_id": "1",
                        "title": "测试支付",
                        "total": "0.02",
                        "timestamp": "2018-07-10 17:00:33"
                    }
                ]
            }
        }

    album_id 课程编号
    title 课程名
    total 总收入
    timestamp 统计截止时间

返回web开发教程...