update meituan

master
李光春 2 years ago
parent 2a046f32ed
commit e2b7a2f0ef

@ -5,16 +5,25 @@ import (
"net/http"
)
// GenerateLinkResult 返回参数
type GenerateLinkResult struct {
type GenerateLinkResponse struct {
Status int `json:"status"` // 状态值0为成功非0为异常
Des string `json:"des,omitempty"` // 异常描述信息
Data string `json:"data,omitempty"` // 最终的推广链接
}
// GenerateLink 自助取链接口 https://union.meituan.com/v2/apiDetail?id=25
func (app *App) GenerateLink(actId int64, sid string, linkType, shortLink int) (result GenerateLinkResult, err error) {
type GenerateLinkResult struct {
Result GenerateLinkResponse // 结果
Body []byte // 内容
Err error // 错误
}
func NewGenerateLinkResult(result GenerateLinkResponse, body []byte, err error) *GenerateLinkResult {
return &GenerateLinkResult{Result: result, Body: body, Err: err}
}
// GenerateLink 自助取链接口
// https://union.meituan.com/v2/apiDetail?id=25
func (app *App) GenerateLink(actId int64, sid string, linkType, shortLink int) *GenerateLinkResult {
// 参数
param := NewParams()
param.Set("appkey", app.AppKey)
@ -22,20 +31,13 @@ func (app *App) GenerateLink(actId int64, sid string, linkType, shortLink int) (
param.Set("sid", sid)
param.Set("linkType", linkType)
param.Set("shortLink", shortLink)
// 转换
params := app.NewParamsWith(param)
params["sign"] = app.getSign(app.Secret, params)
// 请求
body, err := app.request("https://openapi.meituan.com/api/generateLink", params, http.MethodGet)
if err != nil {
return
}
// 解析
if err = json.Unmarshal(body, &result); err != nil {
return
}
return
// 定义
var response GenerateLinkResponse
err = json.Unmarshal(body, &response)
return NewGenerateLinkResult(response, body, err)
}

@ -5,35 +5,37 @@ import (
"net/http"
)
// MiniCodeResult 返回参数
type MiniCodeResult struct {
type MiniCodeResponse struct {
Status int `json:"status"` // 状态值0为成功非0为异常
Des string `json:"des,omitempty"` // 异常描述信息
Data string `json:"data,omitempty"` // 小程序二维码图片地址
}
// MiniCode 小程序二维码生成 https://union.meituan.com/v2/apiDetail?id=26
func (app *App) MiniCode(actId int64, sid string) (result MiniCodeResult, err error) {
type MiniCodeResult struct {
Result MiniCodeResponse // 结果
Body []byte // 内容
Err error // 错误
}
func NewMiniCodeResult(result MiniCodeResponse, body []byte, err error) *MiniCodeResult {
return &MiniCodeResult{Result: result, Body: body, Err: err}
}
// MiniCode 小程序二维码生成
// https://union.meituan.com/v2/apiDetail?id=26
func (app *App) MiniCode(actId int64, sid string) *MiniCodeResult {
// 参数
param := NewParams()
param.Set("appkey", app.AppKey)
param.Set("sid", sid)
param.Set("actId", actId)
// 转换
params := app.NewParamsWith(param)
params["sign"] = app.getSign(app.Secret, params)
// 请求
body, err := app.request("https://openapi.meituan.com/api/miniCode", params, http.MethodGet)
if err != nil {
return
}
// 解析
if err = json.Unmarshal(body, &result); err != nil {
return
}
return
// 定义
var response MiniCodeResponse
err = json.Unmarshal(body, &response)
return NewMiniCodeResult(response, body, err)
}

@ -1,121 +0,0 @@
package meituan
import (
"encoding/json"
"net/http"
)
type OpenapiPoiCategoryResult struct {
Code int `json:"code"`
Data []struct {
Name string `json:"name"`
Subcate []struct {
Name string `json:"name"` // 品类名称
ID int `json:"id"` // 品类id
} `json:"subcate"`
ID int `json:"id"`
} `json:"data"`
}
// OpenapiPoiCategory 基础数据 - 品类接口 https://openapi.meituan.com/#api-0.%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE-GetHttpsOpenapiMeituanComPoiDistrictCityid1
func (app *App) OpenapiPoiCategory(cityID int) (result OpenapiPoiCategoryResult, err error) {
param := NewParams()
param.Set("cityid", cityID)
// 参数
params := app.NewParamsWith(param)
// 请求
body, err := app.request("https://openapi.meituan.com/poi/category", params, http.MethodGet)
if err != nil {
return
}
if err = json.Unmarshal(body, &result); err != nil {
return
}
return
}
type OpenapiPoiAreaResult struct {
Code int `json:"code"`
Data []struct {
Area []struct {
Name string `json:"name"` // 商圈名称
ID int `json:"id"` // 商圈id
} `json:"area"`
Name string `json:"name"` // 行政区名称
ID int `json:"id"` // 行政区id
} `json:"data"`
}
// OpenapiPoiArea 基础数据 - 商圈接口 https://openapi.meituan.com/#api-0.%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE-GetHttpsOpenapiMeituanComPoiAreaCityid1
func (app *App) OpenapiPoiArea(cityID int) (result OpenapiPoiAreaResult, err error) {
param := NewParams()
param.Set("cityid", cityID)
// 参数
params := app.NewParamsWith(param)
// 请求
body, err := app.request("https://openapi.meituan.com/poi/area", params, http.MethodGet)
if err != nil {
return
}
if err = json.Unmarshal(body, &result); err != nil {
return
}
return
}
type OpenapiPoiDistrictResult struct {
Code int `json:"code"` // 状态码 0表示请求正常
Data []struct {
Name string `json:"name"` // 行政区名称
ID int `json:"id"` // 行政区id
} `json:"data"` // 返回行政区列表
}
// OpenapiPoiDistrict 基础数据 - 城市的行政区接口 https://openapi.meituan.com/#api-0.%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE-GetHttpsOpenapiMeituanComPoiDistrictCityid1
func (app *App) OpenapiPoiDistrict(cityID int) (result OpenapiPoiDistrictResult, err error) {
param := NewParams()
param.Set("cityid", cityID)
// 参数
params := app.NewParamsWith(param)
// 请求
body, err := app.request("https://openapi.meituan.com/poi/district", params, http.MethodGet)
if err != nil {
return
}
if err = json.Unmarshal(body, &result); err != nil {
return
}
return
}
type OpenapiPoiCityResult struct {
Code int `json:"code"` // 状态码 0表示请求正常
Data []struct {
Pinyin string `json:"pinyin"` // 城市拼音
Name string `json:"name"` // 城市名称
ID int `json:"id"` // 城市id
} `json:"data"` // 返回城市列表
}
// OpenapiPoiCity 基础数据 - 开放城市接口 https://openapi.meituan.com/#api-0.%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE-GetHttpsOpenapiMeituanComPoiCity
func (app *App) OpenapiPoiCity() (result OpenapiPoiCityResult, err error) {
// 请求
body, err := app.request("https://openapi.meituan.com/poi/city", map[string]interface{}{}, http.MethodGet)
if err != nil {
return
}
if err = json.Unmarshal(body, &result); err != nil {
return
}
return
}

@ -16,8 +16,7 @@ type OrderList struct {
QueryTimeType string `json:"queryTimeType,omitempty"` // 查询时间类型,枚举值 1 按订单支付时间查询 2 按订单发生修改时间查询
}
// OrderListResult 返回参数
type OrderListResult struct {
type OrderListResponse struct {
DataList []struct {
Orderid string `json:"orderid"` // 订单id
Paytime string `json:"paytime"` // 订单支付时间10位时间戳
@ -39,35 +38,28 @@ type OrderListResult struct {
Total int `json:"total"` // 查询条件命中的总数据条数,用于计算分页参数
}
// OrderList 订单列表查询(新) https://union.meituan.com/v2/apiDetail?id=1
func (app *App) OrderList(param OrderList) (result OrderListResult, err error) {
// 处理默认数据
if param.Page == "" {
param.Page = "1"
}
if param.Limit == "" {
param.Limit = "100"
}
// 接口参数
params := map[string]interface{}{}
b, _ := json.Marshal(&param)
var m map[string]interface{}
_ = json.Unmarshal(b, &m)
for k, v := range m {
params[k] = v
}
type OrderListResult struct {
Result OrderListResponse // 结果
Body []byte // 内容
Err error // 错误
}
func NewOrderListResult(result OrderListResponse, body []byte, err error) *OrderListResult {
return &OrderListResult{Result: result, Body: body, Err: err}
}
// OrderList 订单列表查询(新)
// https://union.meituan.com/v2/apiDetail?id=1
func (app *App) OrderList(notMustParams ...Params) *OrderListResult {
// 参数
params := app.NewParamsWith(notMustParams...)
// 请求时刻10位时间戳(秒级)有效期60s
params["ts"] = gotime.Current().Timestamp()
params["key"] = app.AppKey
params["sign"] = app.getSign(app.Secret, params)
body, err := app.request("https://runion.meituan.com/api/orderList", params, http.MethodGet)
if err != nil {
return
}
if err = json.Unmarshal(body, &result); err != nil {
return
}
return
// 定义
var response OrderListResponse
err = json.Unmarshal(body, &response)
return NewOrderListResult(response, body, err)
}

@ -0,0 +1,43 @@
package meituan
import (
"encoding/json"
"net/http"
)
type PoiAreaResponse struct {
Code int `json:"code"`
Data []struct {
Area []struct {
Name string `json:"name"` // 商圈名称
ID int `json:"id"` // 商圈id
} `json:"area"`
Name string `json:"name"` // 行政区名称
ID int `json:"id"` // 行政区id
} `json:"data"`
}
type PoiAreaResult struct {
Result PoiAreaResponse // 结果
Body []byte // 内容
Err error // 错误
}
func NewPoiAreaResult(result PoiAreaResponse, body []byte, err error) *PoiAreaResult {
return &PoiAreaResult{Result: result, Body: body, Err: err}
}
// PoiArea 基础数据 - 商圈接口
// https://openapi.meituan.com/#api-0.%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE-GetHttpsOpenapiMeituanComPoiAreaCityid1
func (app *App) PoiArea(cityID int) *PoiAreaResult {
// 参数
param := NewParams()
param.Set("cityid", cityID)
params := app.NewParamsWith(param)
// 请求
body, err := app.request("https://openapi.meituan.com/poi/area", params, http.MethodGet)
// 定义
var response PoiAreaResponse
err = json.Unmarshal(body, &response)
return NewPoiAreaResult(response, body, err)
}

@ -0,0 +1,43 @@
package meituan
import (
"encoding/json"
"net/http"
)
type PoiCategoryResponse struct {
Code int `json:"code"`
Data []struct {
Name string `json:"name"`
Subcate []struct {
Name string `json:"name"` // 品类名称
ID int `json:"id"` // 品类id
} `json:"subcate"`
ID int `json:"id"`
} `json:"data"`
}
type PoiCategoryResult struct {
Result PoiCategoryResponse // 结果
Body []byte // 内容
Err error // 错误
}
func NewPoiCategoryResult(result PoiCategoryResponse, body []byte, err error) *PoiCategoryResult {
return &PoiCategoryResult{Result: result, Body: body, Err: err}
}
// PoiCategory 基础数据 - 品类接口
// https://openapi.meituan.com/#api-0.%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE-GetHttpsOpenapiMeituanComPoiDistrictCityid1
func (app *App) PoiCategory(cityID int) *PoiCategoryResult {
// 参数
param := NewParams()
param.Set("cityid", cityID)
params := app.NewParamsWith(param)
// 请求
body, err := app.request("https://openapi.meituan.com/poi/category", params, http.MethodGet)
// 定义
var response PoiCategoryResponse
err = json.Unmarshal(body, &response)
return NewPoiCategoryResult(response, body, err)
}

@ -0,0 +1,36 @@
package meituan
import (
"encoding/json"
"net/http"
)
type PoiCityResponse struct {
Code int `json:"code"` // 状态码 0表示请求正常
Data []struct {
Pinyin string `json:"pinyin"` // 城市拼音
Name string `json:"name"` // 城市名称
ID int `json:"id"` // 城市id
} `json:"data"` // 返回城市列表
}
type PoiCityResult struct {
Result PoiCityResponse // 结果
Body []byte // 内容
Err error // 错误
}
func NewPoiCityResult(result PoiCityResponse, body []byte, err error) *PoiCityResult {
return &PoiCityResult{Result: result, Body: body, Err: err}
}
// PoiCity 基础数据 - 开放城市接口
// https://openapi.meituan.com/#api-0.%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE-GetHttpsOpenapiMeituanComPoiCity
func (app *App) PoiCity() *PoiCityResult {
// 请求
body, err := app.request("https://openapi.meituan.com/poi/city", map[string]interface{}{}, http.MethodGet)
// 定义
var response PoiCityResponse
err = json.Unmarshal(body, &response)
return NewPoiCityResult(response, body, err)
}

@ -0,0 +1,39 @@
package meituan
import (
"encoding/json"
"net/http"
)
type PoiDistrictResponse struct {
Code int `json:"code"` // 状态码 0表示请求正常
Data []struct {
Name string `json:"name"` // 行政区名称
ID int `json:"id"` // 行政区id
} `json:"data"` // 返回行政区列表
}
type PoiDistrictResult struct {
Result PoiDistrictResponse // 结果
Body []byte // 内容
Err error // 错误
}
func NewPoiDistrictResult(result PoiDistrictResponse, body []byte, err error) *PoiDistrictResult {
return &PoiDistrictResult{Result: result, Body: body, Err: err}
}
// PoiDistrict 基础数据 - 城市的行政区接口
// https://openapi.meituan.com/#api-0.%E5%9F%BA%E7%A1%80%E6%95%B0%E6%8D%AE-GetHttpsOpenapiMeituanComPoiDistrictCityid1
func (app *App) PoiDistrict(cityID int) *PoiDistrictResult {
// 参数
param := NewParams()
param.Set("cityid", cityID)
params := app.NewParamsWith(param)
// 请求
body, err := app.request("https://openapi.meituan.com/poi/district", params, http.MethodGet)
// 定义
var response PoiDistrictResponse
err = json.Unmarshal(body, &response)
return NewPoiDistrictResult(response, body, err)
}
Loading…
Cancel
Save