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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
package jingdong
import (
"context"
"github.com/gogf/gf/container/garray"
"github.com/gogf/gf/encoding/gjson"
"github.com/gogf/gf/frame/g"
)
type msgJD struct {
}
var Msg = msgJD{}
type GetPushMessages struct {
CommonRes
Result []struct {
Id int `json:"id"`
Type int `json:"type"`
Time string `json:"time"`
Result interface{} `json:"result"`
} `json:"result"`
}
type DelPushMessages struct {
CommonRes
Result bool `json:"result"`
}
//GetPushMessages 获取消息 【每次是能获取100条,旧消息不删除不能获取最新消息】
//1:订单拆分消息{"id":推送id, "result" : {"pOrder" :父订单id} , "type": 1, "time":推送时间}
//2:商品价格变更{"id":推送id, "result":{"skuId" : 商品编号 }, "type": 2, "time":推送时间}
//4:商品上下架变更消息{"id":推送id, "result":{"skuId" : 商品编号 }, "type": 4 "time":推送时间}
//5:订单妥投消息{"id":推送id, "result":{"orderId":"京东订单编号", "state":"1是妥投,2是拒收"}, "type" : 5, "time":推送时间}
//6:商品池内商品添加、删除消息{"id":推送id, "result":{"skuId": 商品编号, "page_num":商品池编号, "state":"1添加,2删除"}, "type" : 6, "time":推送时间}
//10:订单取消消息{"id":推送id, "result":{" orderId": 京东订单编号 }, "type" : 10, "time":推送时间}
//11:发票开票进度消息{"id":推送id, "result":{"markId":"发票提报标识","state":"状态"}, "type" : 11, "time":推送时间}
//state状态:1:代表全部开票;2:代表驳回;3:部分开票;4:发票寄出
//12:配送单生成成功消息{"id":推送id, "result":{" orderId": 京东订单编号 }, "type" : 12, "time":推送时间}
//13:换新订单生成成功消息{"id":推送id, "result":{"afsServiceId": 服务单号, " orderId":换新订单号}, "type" : 13, "time":推送时间}
//14:支付失败消息{"id":推送id, "result":{" orderId": 京东订单编号}, "type" : 14, "time":推送时间}
//15:7天未支付取消消息/未确认取消消息{"id":推送id, "result":{"orderId": 京东订单编号, "cancelType": 取消类型}, "type" : 15, "time":推送时间}
//16:商品介绍及规格参数变更消息{"id":推送id, "result":{"skuId" : 商品编号 } "type" : 16, "time":推送时间}
//17:赠品促销变更消息{"id":推送id, "result":{"skuId" : 商品编号 } "type" : 17, "time":推送时间}
//18:订单等待确认收货消息{"id":推送id, "result":{"orderId":京东订单号} "type" : 18, "time":推送时间}
//23:订单配送退货消息{"id":推送id, "result":{"orderId":京东订单号} "type" : 23, "time":推送时间}
//25:新订单消息{"id":推送id, "result":{"orderId":京东订单号, "pin":"京东账号"} "type" : 25, "time":推送时间(订单创建时间)}
//26:预定订单消息{"id":推送id, "result":{"orderId":京东订单号} "type" : 26, "time":推送时间}
//28:售后服务单进度消息{"id":推送id, "result":{"orderId":京东订单号,"pin":"京东账号","skuId":商品编号,"afsServiceId":"服务单号","state":服务单状态} "type" : 28, "time":推送时间}
//31:订单完成消息{"orderId":123123123,"jdOrderState":19,"completeTime":"2018-09-20 16:21:21","pin":"测试pin"}
//48:商品池添加、删除消息{"id":推送id, "result":"{"poolType": "recommend", "page_num":"商品池编号", "state":"1添加,2删除"}", "type" : 28, "time":推送时间}
//49:折扣率变更消息{"id":推送id, "result":"{"oldRate":0.10,"category":"670-671-718","newRate":0.05,"type":1}" "type" : 28, "time":推送时间}
//50:京东地址变更消息[{ "id": "推送id", "result": { "areaId": "京东地址编码", "areaName": "京东地址名称", "parentId": "父京东ID编码", "areaLevel": “地址等级(行政级别:国家(1)、省(2)、市(3)、县(4)、镇(5))”, "operateType":”操作类型(插入数据为1,更新时为2,删除时为3)}”, "time":"消息推送时间", “type":”消息类型” } ]
//100:商品税率变更消息(目前未涵盖全部商品){"timestampLong": "1499136371666","features": "consumptionVAT:12,outputVAT:11,inputVAT:11","sku_id": "3213213"}
//102:专票资质审核进度消息 {"completeDate":"2019-01-09 00:19:14","pushDate":"2019-01-09 00:19:16","pins":"测试","reason":"财务审批通过","status":2,"unitName":"广州市翎唯营销策划有限公司","submitDate":"2018-09-25 15:56:47","taxpayerId":"914401055697802911","vatId":462260}
func (*msgJD) GetPushMessages(ctx context.Context, id *garray.Array) (res *GetPushMessages, err error) {
method := "message/get"
param := g.Map{
"type": id.Join(","),
}
result, err := server.requestApi(ctx, method, param)
if err != nil {
return
}
err = gjson.New(result).Scan(&res)
return
}
//DeletePushMessage 删除消息
func (*msgJD) DeletePushMessage(ctx context.Context, id *garray.Array) (res *DelPushMessages, err error) {
method := "message/del"
param := g.Map{
"id": id.Join(","),
}
result, err := server.requestApi(ctx, method, param)
if err != nil {
return
}
err = gjson.New(result).Scan(&res)
return
}
type MsgSolitRes struct {
CommonRes
Result []struct {
Id string `json:"id"`
Time string `json:"time"`
Type int `json:"type"`
Result struct {
POrder string `json:"pOrder"`
} `json:"result"`
} `json:"result"`
}
//Solit 拆单
func (*msgJD) Solit(ctx context.Context) (res *MsgSolitRes, err error) {
method := "message/get"
param := g.Map{
"type": "1",
}
result, err := server.requestApi(ctx, method, param)
if err != nil {
return
}
err = gjson.NewWithOptions(result, gjson.Options{
StrNumber: true,
}).Scan(&res)
return
}
type MsgSendRes struct {
CommonRes
Result []struct {
Id string `json:"id"`
Time string `json:"time"`
Type int `json:"type"`
Result struct {
OrderId string `json:"orderId"`
} `json:"result"`
} `json:"result"`
}
//Send 发货
func (*msgJD) Send(ctx context.Context) (res *MsgSendRes, err error) {
method := "message/get"
param := g.Map{
"type": "12",
}
result, err := server.requestApi(ctx, method, param)
if err != nil {
return
}
err = gjson.NewWithOptions(result, gjson.Options{
StrNumber: true,
}).Scan(&res)
return
}
type MsgSuccessRes struct {
CommonRes
Result []struct {
Id string `json:"id"`
Time string `json:"time"`
Type int `json:"type"`
Result struct {
JdOrderState int `json:"jdOrderState"`
Pin string `json:"pin"`
CompleteTime string `json:"completeTime"`
OrderId string `json:"orderId"`
} `json:"result"`
} `json:"result"`
}
//Success 订单完成
func (*msgJD) Success(ctx context.Context) (res *MsgSuccessRes, err error) {
method := "message/get"
param := g.Map{
"type": "31",
}
result, err := server.requestApi(ctx, method, param)
if err != nil {
return
}
err = gjson.NewWithOptions(result, gjson.Options{
StrNumber: true,
}).Scan(&res)
return
}
type MsgReplaceRes struct {
CommonRes
Result []struct {
Id string `json:"id"`
Time string `json:"time"`
Type int `json:"type"`
Result struct {
AfsServiceId string `json:"afsServiceId"`
OrderId string `json:"orderId"`
} `json:"result"`
} `json:"result"`
}
//Replace 换新订单
func (*msgJD) Replace(ctx context.Context) (res *MsgReplaceRes, err error) {
method := "message/get"
param := g.Map{
"type": "13",
}
result, err := server.requestApi(ctx, method, param)
if err != nil {
return
}
err = gjson.NewWithOptions(result, gjson.Options{
StrNumber: true,
}).Scan(&res)
return
}
type MsgRefundRes struct {
CommonRes
Result []struct {
Id string `json:"id"`
Time string `json:"time"`
Type int `json:"type"`
Result struct {
Pin string `json:"pin"`
AfsServiceId string `json:"afsServiceId"`
IsOffline bool `json:"isOffline"`
State int `json:"state,omitempty"`
SkuId string `json:"skuId"`
OrderId string `json:"orderId"`
} `json:"result"`
} `json:"result"`
}
//Refund 售后
func (*msgJD) Refund(ctx context.Context) (res *MsgRefundRes, err error) {
method := "message/get"
param := g.Map{
"type": "110",
}
result, err := server.requestApi(ctx, method, param)
if err != nil {
return
}
err = gjson.NewWithOptions(result, gjson.Options{
StrNumber: true,
}).Scan(&res)
return
}