京东物流

This commit is contained in:
苏尹岚
2020-06-04 15:14:19 +08:00
parent 6a4077f441
commit 9b9f04ca3d
6 changed files with 57 additions and 19 deletions

View File

@@ -13,11 +13,12 @@ import (
)
var (
regexpOrderDetailTable = regexp.MustCompile(`<table id="receiveData">([\s\S]*?)</table>`)
regexpOrderDetailTd = regexp.MustCompile(`<td colspan="2">(.*?)</td>`)
regexpOrderDetailMobile = regexp.MustCompile(`<span id="mobile">(.*?)</span>`)
regexpOrderDetailDay = regexp.MustCompile(`<td class="pubwhite">配送日期:</td>[\s\S]*?<td colspan="2">(.*?)</td>`)
regexpOrderDetailPay = regexp.MustCompile(`<td class="pubwhite">应支付金额:</td>[\s\S]*?<td>[\s\S]*?¥(.*?[\s\S]*?)</td>`)
regexpOrderDetailTable = regexp.MustCompile(`<table id="receiveData">([\s\S]*?)</table>`)
regexpOrderDetailTd = regexp.MustCompile(`<td colspan="2">(.*?)</td>`)
regexpOrderDetailMobile = regexp.MustCompile(`<span id="mobile">(.*?)</span>`)
regexpOrderDetailDay = regexp.MustCompile(`<td class="pubwhite">配送日期:</td>[\s\S]*?<td colspan="2">(.*?)</td>`)
regexpOrderDetailPay = regexp.MustCompile(`<td class="pubwhite">应支付金额:</td>[\s\S]*?<td>[\s\S]*?¥(.*?[\s\S]*?)</td>`)
regexpOrderDetailMobileKey = regexp.MustCompile(`accesskey="(.*?)"`)
)
const (
@@ -391,6 +392,7 @@ type OrderDetailResult struct {
ConsigneeMobile string `json:"consigneeMobile"`
ExpectedDeliveredTime string `json:"expectedDeliveredTime"`
ActualPayPrice int64 `json:"actualPayPrice"`
MobileKey string `json:"mobileKey"`
}
//订单详情
@@ -405,6 +407,7 @@ func (a *API) OrderDetail(orderId string) (orderDetailResult *OrderDetailResult,
expectedDeliveredTime := regexpOrderDetailDay.FindStringSubmatch(body)
actualPayPrice := regexpOrderDetailPay.FindStringSubmatch(body)
consigneeTable := regexpOrderDetailTable.FindStringSubmatch(body)
mobileKey := regexpOrderDetailMobileKey.FindStringSubmatch(body)
if len(consigneeTable) > 0 {
consigneeTd := regexpOrderDetailTd.FindAllStringSubmatch(consigneeTable[1], -1)
consigneeMobiles := regexpOrderDetailMobile.FindStringSubmatch(consigneeTable[1])
@@ -423,6 +426,24 @@ func (a *API) OrderDetail(orderId string) (orderDetailResult *OrderDetailResult,
if len(actualPayPrice) > 0 {
orderDetailResult.ActualPayPrice = utils.Float64TwoInt64(utils.Str2Float64(strings.TrimSpace(actualPayPrice[1])) * 100)
}
if len(mobileKey) > 0 {
orderDetailResult.MobileKey = mobileKey[1]
}
}
return orderDetailResult, err
}
//尝试获取订单的真实手机号
//https://https://neworder.shop.jd.com/order/json/phoneSensltiveInfo
func (a *API) PhoneSensltiveInfo(orderId, accessKey string) (fakeMobile string, err error) {
result, err := a.AccessStorePage("https://neworder.shop.jd.com/order/json/phoneSensltiveInfo", map[string]interface{}{
"orderId": orderId,
"accessKey": accessKey,
"accessType": "0",
"token": JdsMobileToken,
}, true)
if err == nil {
fakeMobile = result["model"].(map[string]interface{})["phone"].(string)
}
return fakeMobile, err
}