github.com/chanxuehong/wechat@v0.0.0-20230222024006-36f0325263cd/mp/poi/add.go (about) 1 package poi 2 3 import ( 4 "github.com/chanxuehong/wechat/mp/core" 5 ) 6 7 type Photo struct { 8 PhotoURL string `json:"photo_url"` 9 } 10 11 type AddParameters struct { 12 BaseInfo struct { 13 Sid string `json:"sid,omitempty"` // 可选, 商户自己的id,用于后续审核通过收到poi_id 的通知时,做对应关系。请商户自己保证唯一识别性 14 BusinessName string `json:"business_name,omitempty"` // 必须, 门店名称(仅为商户名,如:国美、麦当劳,不应包含地区、地址、分店名等信息,错误示例:北京国美) 15 BranchName string `json:"branch_name,omitempty"` // 必须, 分店名称(不应包含地区信息,不应与门店名有重复,错误示例:北京王府井店) 16 Province string `json:"province,omitempty"` // 必须, 门店所在的省份(直辖市填城市名,如:北京市) 17 City string `json:"city,omitempty"` // 必须, 门店所在的城市 18 District string `json:"district,omitempty"` // 必须, 门店所在地区 19 Address string `json:"address,omitempty"` // 必须, 门店所在的详细街道地址(不要填写省市信息) 20 Telephone string `json:"telephone,omitempty"` // 必须, 门店的电话(纯数字,区号、分机号均由“-”隔开) 21 Categories []string `json:"categories,omitempty"` // 必须, 门店的类型(不同级分类用“,”隔开,如:美食,川菜,火锅。详细分类参见附件:微信门店类目表) 22 OffsetType int `json:"offset_type"` // 必须, 坐标类型,1 为火星坐标(目前只能选1) 23 Longitude float64 `json:"longitude"` // 必须, 门店所在地理位置的经度 24 Latitude float64 `json:"latitude"` // 必须, 门店所在地理位置的纬度(经纬度均为火星坐标,最好选用腾讯地图标记的坐标) 25 PhotoList []Photo `json:"photo_list,omitempty"` // 必须, 图片列表,url 形式,可以有多张图片,尺寸为640*340px。必须为上一接口生成的url。 26 Recommend string `json:"recommend,omitempty"` // 可选, 推荐品,餐厅可为推荐菜;酒店为推荐套房;景点为推荐游玩景点等,针对自己行业的推荐内容 27 Special string `json:"special,omitempty"` // 必须, 特色服务,如免费wifi,免费停车,送货上门等商户能提供的特色功能或服务 28 Introduction string `json:"introduction,omitempty"` // 可选, 商户简介,主要介绍商户信息等 29 OpenTime string `json:"open_time,omitempty"` // 必须, 营业时间,24 小时制表示,用“-”连接,如 8:00-20:00 30 AvgPrice int `json:"avg_price,omitempty"` // 必须, 人均价格,大于0 的整数 31 } `json:"base_info"` 32 } 33 34 // Add 创建门店. 35 func Add(clt *core.Client, params *AddParameters) (err error) { 36 const incompleteURL = "https://api.weixin.qq.com/cgi-bin/poi/addpoi?access_token=" 37 38 var request = struct { 39 *AddParameters `json:"business,omitempty"` 40 }{ 41 AddParameters: params, 42 } 43 var result core.Error 44 if err = clt.PostJSON(incompleteURL, &request, &result); err != nil { 45 return 46 } 47 if result.ErrCode != core.ErrCodeOK { 48 err = &result 49 return 50 } 51 return 52 }