京东商城获取省市区

This commit is contained in:
苏尹岚
2020-05-15 15:20:53 +08:00
parent 80e221df9e
commit a528f1da5b
2 changed files with 116 additions and 12 deletions

View File

@@ -5,17 +5,30 @@ import (
)
type CreateEntityStoreParam struct {
Name string `json:"name"` //是 门店名称
AddCode int `json:"addCode"` //是 门店三级标准地址编码(京东)
AddCodeName string `json:"addCodeName"` //否 门店三级标准地址名称(京东)
AddName string `json:"addName"` //是 标准地址加扩展地址以@!分隔 必填 例:北京大兴区亦庄经济开发区@!京东大厦
Coordinate string `json:"coordinate"` //是 门店坐标 纬度在前,经度在后 例39.786683,116.563075
Phone string `json:"phone"` //是 门店电话
Item []int `json:"item"` //否 门店组ID
CustomerId string `json:"customerId"` //否 商家门店Id商家维度不可重复
Name string `json:"name"` //是 门店名称
AddCode int `json:"addCode"` //是 门店三级标准地址编码(京东)
AddCodeName string `json:"addCodeName"` //否 门店三级标准地址名称(京东)
AddName string `json:"addName"` //是 标准地址加扩展地址以@!分隔 必填 例:北京大兴区亦庄经济开发区@!京东大厦
Coordinate string `json:"coordinate"` //是 门店坐标 纬度在前,经度在后 例39.786683,116.563075
Phone string `json:"phone"` //是 门店电话
// Item []int `json:"item"` //否 门店组ID
CustomerID string `json:"customerId"` //否 商家门店Id商家维度不可重复
CategoryName string `json:"categoryName"` //否 门店扩展属性类目名称固定填为popmendianSelfdelivery
ExtendJson string `json:"extendJson"` //是 扩展属性JSON如{name1'value1',name2:'value2'},营业时间必传固定json格式{\'businessBeginTime\':\'09:00\',\'businessEndTime\':\'22:00\'}' ,可将中间的时间变更
ImageFile []byte `json:"imageFile"` //否 门店图片,图片二进制文件流允许png、jpg、gif、jpeg、bmp图片格式1M以内。
ExtendJSON string `json:"extendJson"` //是 扩展属性JSON如{name1'value1',name2:'value2'},营业时间必传固定json格式{\'businessBeginTime\':\'09:00\',\'businessEndTime\':\'22:00\'}' ,可将中间的时间变更
ImageFile string `json:"imageFile"` //否 门店图片,图片二进制文件流允许png、jpg、gif、jpeg、bmp图片格式1M以内。
}
type UpdateEntityStoreParam struct {
StoreID int `json:"storeId"` //门店ID(京东)
CreateEntityStoreParam
}
type GetAddressCodeResult struct {
ParentID int `json:"parentId"`
Level int `json:"level"`
AreaName string `json:"areaName"`
Status int `json:"status"`
AreaID int `json:"areaId"`
}
//创建门店
@@ -24,3 +37,53 @@ func (a *API) CreateEntityStore(createEntityStoreParam *CreateEntityStoreParam)
_, err = a.AccessAPI("jingdong.createEntityStore", prodURL, utils.Struct2FlatMap(createEntityStoreParam))
return err
}
//修改门店
//https://open.jd.com/home/home#/doc/api?apiCateId=55&apiId=2221&apiName=jingdong.updateEntityStore
func (a *API) UpdateEntityStore(updateEntityStoreParam *UpdateEntityStoreParam) (err error) {
_, err = a.AccessAPI("jingdong.updateEntityStore", prodURL, utils.Struct2FlatMap(updateEntityStoreParam))
return err
}
//删除门店
//https://open.jd.com/home/home#/doc/api?apiCateId=55&apiId=2222&apiName=jingdong.deleteStoresById
func (a *API) DeleteStoresByID(storeId int) (err error) {
_, err = a.AccessAPI("jingdong.deleteStoresById", prodURL, map[string]interface{}{
"storeId": storeId,
})
return err
}
//获取省地址信息et
//https://jos.jd.com/api/detail.htm?apiName=jingdong.areas.province.get&id=1011
func (a *API) GetProvince() (getAddressCodeResult []*GetAddressCodeResult, err error) {
result, err := a.AccessAPI("jingdong.areas.province.get", prodURL, nil)
if err == nil {
utils.Map2StructByJson(result["jingdong_areas_province_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false)
}
return getAddressCodeResult, err
}
//获取市地址信息et
//https://jos.jd.com/api/detail.htm?apiName=jingdong.areas.city.get&id=1014
func (a *API) GetCity(parentID int) (getAddressCodeResult []*GetAddressCodeResult, err error) {
result, err := a.AccessAPI("jingdong.areas.city.get", prodURL, map[string]interface{}{
"parent_id": parentID,
})
if err == nil {
utils.Map2StructByJson(result["jingdong_areas_city_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false)
}
return getAddressCodeResult, err
}
//获取区地址信息et
//https://jos.jd.com/api/detail.htm?apiName=jingdong.areas.county.get&id=1012
func (a *API) GetCounty(parentID int) (getAddressCodeResult []*GetAddressCodeResult, err error) {
result, err := a.AccessAPI("jingdong.areas.county.get", prodURL, map[string]interface{}{
"parent_id": parentID,
})
if err == nil {
utils.Map2StructByJson(result["jingdong_areas_county_get_responce"].(map[string]interface{})["baseAreaServiceResponse"].(map[string]interface{})["data"], &getAddressCodeResult, false)
}
return getAddressCodeResult, err
}

View File

@@ -1,11 +1,52 @@
package jdshopapi
import "testing"
import (
"encoding/base64"
"testing"
"git.rosy.net.cn/baseapi/utils"
)
func TestCreateEntityStore(t *testing.T) {
err := api.CreateEntityStore(&CreateEntityStoreParam{})
data, _, err := DownloadFileByURL("http://image.jxc4.com/image/b90ae8585e8cf2f3871f6e8318bde1dc.tem.png")
err = api.CreateEntityStore(&CreateEntityStoreParam{
Name: "京西菜市门店1",
AddCode: 50946,
AddCodeName: "金牛区",
AddName: "成都金牛区@!加州湾v派",
Coordinate: "29.707870,115.980868",
Phone: "18160030913",
ExtendJSON: `{"businessBeginTime":"09:00","businessEndTime":"22:00"}`,
ImageFile: base64.StdEncoding.EncodeToString(data),
CategoryName: "pop-mendian-Selfdelivery",
CustomerID: "666934",
})
if err != nil {
t.Fatal(err)
}
// t.Log(utils.Format4Output(result, false))
}
func TestGetProvince(t *testing.T) {
result, err := api.GetProvince()
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestGetCity(t *testing.T) {
result, err := api.GetCity(22)
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestGetCounty(t *testing.T) {
result, err := api.GetCounty(1930)
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}