-
Notifications
You must be signed in to change notification settings - Fork 3
/
order.go
60 lines (55 loc) · 3.15 KB
/
order.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package meituan
import (
"encoding/json"
"net/http"
)
type OrderResponse struct {
Status int `json:"status"`
Des string `json:"des"`
Data struct {
BusinessLine int `json:"businessLine"` // 业务线
SubBusinessLine int `json:"subBusinessLine"` // 子业务线
ActId int `json:"actId"` // 活动id,可以在联盟活动列表中查看获取
Quantity int `json:"quantity"` // 商品数量
OrderId string `json:"orderId"` // 订单id
Paytime string `json:"paytime"` // 订单支付时间,10位时间戳
ModTime string `json:"modTime"` // 订单信息修改时间,10位时间戳
Payprice string `json:"payprice"` // 订单用户实际支付金额
Profit string `json:"profit,omitempty"` // 订单预估返佣金额
CpaProfit string `json:"cpaProfit,omitempty"` // 订单预估cpa总收益(优选、话费券)
Sid string `json:"sid"` // 订单对应的推广位sid
Appkey string `json:"appkey"` // 订单对应的appkey,外卖、话费、闪购、优选、酒店订单会返回该字段
Smstitle string `json:"smstitle"` // 订单标题
Status int `json:"status"` // 订单状态,外卖、话费、闪购、优选、酒店订单会返回该字段 1 已付款 8 已完成 9 已退款或风控
TradeTypeList []int `json:"tradeTypeList"` // 订单的奖励类型 3 首购奖励 5 留存奖励 2 cps 3 首购奖励
RiskOrder int `json:"riskOrder"` // 0表示非风控订单,1表示风控订单
Refundprofit string `json:"refundprofit,omitempty"` // 订单需要扣除的返佣金额,外卖、话费、闪购、优选、酒店订单若发生退款会返回该字段
CpaRefundProfit interface{} `json:"cpaRefundProfit"` // 订单需要扣除的cpa返佣金额(优选、话费券)
RefundInfoList interface{} `json:"refundInfoList"` // 退款列表
RefundProfitList interface{} `json:"refundProfitList"`
Extra interface{} `json:"extra"`
} `json:"data"`
}
type OrderResult struct {
Result OrderResponse // 结果
Body []byte // 内容
Err error // 错误
}
func NewOrderResult(result OrderResponse, body []byte, err error) *OrderResult {
return &OrderResult{Result: result, Body: body, Err: err}
}
// Order 单订单查询接口(新版)
// https://union.meituan.com/v2/apiDetail?id=24
func (app *App) Order(notMustParams ...Params) *OrderResult {
// 参数
params := app.NewParamsWith(notMustParams...)
// 请求时刻10位时间戳(秒级),有效期60s
params["appkey"] = app.AppKey
params["sign"] = app.getSign(app.Secret, params)
// 请求
body, err := app.request("https://openapi.meituan.com/api/order", params, http.MethodGet)
// 定义
var response OrderResponse
err = json.Unmarshal(body, &response)
return NewOrderResult(response, body, err)
}