mirror of
https://github.com/silenceper/wechat.git
synced 2026-02-04 12:52:27 +08:00
追加接口【微信物流服务 /微信物流服务(商家查看) /查询组件】 (#843)
* feat: 添加 微信物流服务 /微信物流服务(商家查看) /消息组件 * fix lint issues * fix: 查询运单详情信息返回结果结构 * 追加官方文档地址 * feat: 追加接口【微信物流服务 /微信物流服务(商家查看) /查询组件】 * fix: comments * fix: indents
This commit is contained in:
@@ -8,10 +8,19 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// 传运单接口
|
// 传运单接口,商户使用此接口向微信提供某交易单号对应的运单号。微信后台会跟踪运单的状态变化
|
||||||
|
openMsgTraceWaybillURL = "https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/trace_waybill?access_token=%s"
|
||||||
|
|
||||||
|
// 查询运单接口,商户在调用完trace_waybill接口后,可以使用本接口查询到对应运单的详情信息
|
||||||
|
openMsgQueryTraceURL = "https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/query_trace?access_token=%s"
|
||||||
|
|
||||||
|
// 更新物流信息,更新物品信息
|
||||||
|
openMsgUpdateWaybillGoodsURL = "https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/update_waybill_goods?access_token=%s"
|
||||||
|
|
||||||
|
// 传运单接口,商户使用此接口向微信提供某交易单号对应的运单号。微信后台会跟踪运单的状态变化,在关键物流节点给下单用户推送消息通知
|
||||||
openMsgFollowWaybillURL = "https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/follow_waybill?access_token=%s"
|
openMsgFollowWaybillURL = "https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/follow_waybill?access_token=%s"
|
||||||
|
|
||||||
// 查运单接口
|
// 查运单接口,商户在调用完follow_waybill接口后,可以使用本接口查询到对应运单的详情信息
|
||||||
openMsgQueryFollowTraceURL = "https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/query_follow_trace?access_token=%s"
|
openMsgQueryFollowTraceURL = "https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/query_follow_trace?access_token=%s"
|
||||||
|
|
||||||
// 更新物品信息接口
|
// 更新物品信息接口
|
||||||
@@ -21,6 +30,63 @@ const (
|
|||||||
openMsgGetDeliveryListURL = "https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/get_delivery_list?access_token=%s"
|
openMsgGetDeliveryListURL = "https://api.weixin.qq.com/cgi-bin/express/delivery/open_msg/get_delivery_list?access_token=%s"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
// TraceWaybill 传运单
|
||||||
|
// https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html#_2-%E6%8E%A5%E5%8F%A3%E5%88%97%E8%A1%A8
|
||||||
|
func (express *Express) TraceWaybill(ctx context.Context, in *TraceWaybillRequest) (res TraceWaybillResponse, err error) {
|
||||||
|
accessToken, err := express.GetAccessToken()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
uri := fmt.Sprintf(openMsgTraceWaybillURL, accessToken)
|
||||||
|
response, err := util.PostJSONContext(ctx, uri, in)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用通用方法返回错误
|
||||||
|
err = util.DecodeWithError(response, &res, "TraceWaybill")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryTrace 查询运单详情信息
|
||||||
|
// https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html#_2-%E6%8E%A5%E5%8F%A3%E5%88%97%E8%A1%A8
|
||||||
|
func (express *Express) QueryTrace(ctx context.Context, in *QueryTraceRequest) (res QueryTraceResponse, err error) {
|
||||||
|
accessToken, err := express.GetAccessToken()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
uri := fmt.Sprintf(openMsgQueryTraceURL, accessToken)
|
||||||
|
response, err := util.PostJSONContext(ctx, uri, in)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用通用方法返回错误
|
||||||
|
err = util.DecodeWithError(response, &res, "QueryTrace")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateWaybillGoods 更新物品信息
|
||||||
|
// https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_search.html#_2-%E6%8E%A5%E5%8F%A3%E5%88%97%E8%A1%A8
|
||||||
|
func (express *Express) UpdateWaybillGoods(ctx context.Context, in *UpdateWaybillGoodsRequest) (err error) {
|
||||||
|
accessToken, err := express.GetAccessToken()
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
uri := fmt.Sprintf(openMsgUpdateWaybillGoodsURL, accessToken)
|
||||||
|
response, err := util.PostJSONContext(ctx, uri, in)
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用通用方法返回错误
|
||||||
|
err = util.DecodeWithCommonError(response, "UpdateWaybillGoods")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
// FollowWaybill 传运单
|
// FollowWaybill 传运单
|
||||||
// https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_open_msg.html#_4-1%E3%80%81%E4%BC%A0%E8%BF%90%E5%8D%95%E6%8E%A5%E5%8F%A3-follow-waybill
|
// https://developers.weixin.qq.com/miniprogram/dev/platform-capabilities/industry/express/business/express_open_msg.html#_4-1%E3%80%81%E4%BC%A0%E8%BF%90%E5%8D%95%E6%8E%A5%E5%8F%A3-follow-waybill
|
||||||
func (express *Express) FollowWaybill(ctx context.Context, in *FollowWaybillRequest) (res FollowWaybillResponse, err error) {
|
func (express *Express) FollowWaybill(ctx context.Context, in *FollowWaybillRequest) (res FollowWaybillResponse, err error) {
|
||||||
@@ -97,6 +163,44 @@ func (express *Express) GetDeliveryList(ctx context.Context) (res GetDeliveryLis
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TraceWaybillRequest 传运单接口请求参数
|
||||||
|
type TraceWaybillRequest struct {
|
||||||
|
GoodsInfo FollowWaybillGoodsInfo `json:"goods_info"` // 必选,商品信息
|
||||||
|
Openid string `json:"openid"` // 必选,用户openid
|
||||||
|
SenderPhone string `json:"sender_phone"` // 寄件人手机号
|
||||||
|
ReceiverPhone string `json:"receiver_phone"` // 必选,收件人手机号,部分运力需要用户手机号作为查单依据
|
||||||
|
DeliveryID string `json:"delivery_id"` // 运力id(运单号所属运力公司id)
|
||||||
|
WaybillID string `json:"waybill_id"` // 必选,运单号
|
||||||
|
TransID string `json:"trans_id"` // 必选,交易单号(微信支付生成的交易单号,一般以420开头)
|
||||||
|
OrderDetailPath string `json:"order_detail_path"` // 订单详情页地址
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// TraceWaybillResponse 传运单接口返回参数
|
||||||
|
type TraceWaybillResponse struct {
|
||||||
|
util.CommonError
|
||||||
|
WaybillToken string `json:"waybill_token"` // 查询id
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryTraceRequest 查询运单详情接口请求参数
|
||||||
|
type QueryTraceRequest struct {
|
||||||
|
WaybillToken string `json:"waybill_token"` // 必选,查询id
|
||||||
|
}
|
||||||
|
|
||||||
|
// QueryTraceResponse 查询运单详情接口返回参数
|
||||||
|
type QueryTraceResponse struct {
|
||||||
|
util.CommonError
|
||||||
|
WaybillInfo FlowWaybillInfo `json:"waybill_info"` // 运单信息
|
||||||
|
ShopInfo FollowWaybillShopInfo `json:"shop_info"` // 商品信息
|
||||||
|
DeliveryInfo FlowWaybillDeliveryInfo `json:"delivery_info"` // 运力信息
|
||||||
|
}
|
||||||
|
|
||||||
|
// UpdateWaybillGoodsRequest 更新物品信息接口请求参数
|
||||||
|
type UpdateWaybillGoodsRequest struct {
|
||||||
|
WaybillToken string `json:"waybill_token"` // 必选,查询id
|
||||||
|
GoodsInfo FollowWaybillGoodsInfo `json:"goods_info"` // 必选,商品信息
|
||||||
|
}
|
||||||
|
|
||||||
// FollowWaybillRequest 传运单接口请求参数
|
// FollowWaybillRequest 传运单接口请求参数
|
||||||
type FollowWaybillRequest struct {
|
type FollowWaybillRequest struct {
|
||||||
GoodsInfo FollowWaybillGoodsInfo `json:"goods_info"` // 必选,商品信息
|
GoodsInfo FollowWaybillGoodsInfo `json:"goods_info"` // 必选,商品信息
|
||||||
|
|||||||
Reference in New Issue
Block a user