From f64693493721882f5dafb3201ff150d1b037ae70 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Tue, 6 Dec 2022 17:42:55 +0800 Subject: [PATCH] - update --- cgi-bin.open.sameentity.go | 48 +++++++++++++++++++ const.go | 2 +- go.mod | 16 +++---- go.sum | 30 ++++++------ sign.decrypt.response.go | 13 +++++ wxa.security.applysetorderpathinfo.go | 61 ++++++++++++++++++++++++ wxa.security.getorderpathinfo.go | 68 +++++++++++++++++++++++++++ 7 files changed, 215 insertions(+), 23 deletions(-) create mode 100644 cgi-bin.open.sameentity.go create mode 100644 wxa.security.applysetorderpathinfo.go create mode 100644 wxa.security.getorderpathinfo.go diff --git a/cgi-bin.open.sameentity.go b/cgi-bin.open.sameentity.go new file mode 100644 index 0000000..7c538ab --- /dev/null +++ b/cgi-bin.open.sameentity.go @@ -0,0 +1,48 @@ +package wechatopen + +import ( + "context" + "encoding/json" + "go.dtapp.net/gorequest" + "net/http" +) + +type CgiBinOpenSameEnTityResponse struct { + Errcode int `json:"errcode"` + Errmsg string `json:"errmsg"` + SameEntity bool `json:"same_entity"` // 是否同主体;true表示同主体;false表示不同主体 +} + +type CgiBinOpenSameEnTityResult struct { + Result CgiBinOpenSameEnTityResponse // 结果 + Body []byte // 内容 + Http gorequest.Response // 请求 +} + +func newCgiBinOpenSameEnTityResult(result CgiBinOpenSameEnTityResponse, body []byte, http gorequest.Response) *CgiBinOpenSameEnTityResult { + return &CgiBinOpenSameEnTityResult{Result: result, Body: body, Http: http} +} + +// CgiBinOpenSameEnTity 获取授权绑定的商户号列表 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/cloudbase-common/wechatpay/getWechatPayList.html +func (c *Client) CgiBinOpenSameEnTity(ctx context.Context) (*CgiBinOpenSameEnTityResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + // 参数 + params := gorequest.NewParams() + // 请求 + request, err := c.request(ctx, apiUrl+"/cgi-bin/open/sameentity?access_token="+c.GetComponentAccessToken(ctx), params, http.MethodGet) + if err != nil { + return nil, err + } + // 定义 + var response CgiBinOpenSameEnTityResponse + err = json.Unmarshal(request.ResponseBody, &response) + if err != nil { + return nil, err + } + return newCgiBinOpenSameEnTityResult(response, request.ResponseBody, request), nil +} diff --git a/const.go b/const.go index 1fb50ca..a15a4de 100644 --- a/const.go +++ b/const.go @@ -6,5 +6,5 @@ const ( const ( LogTable = "wechatopen" - Version = "1.0.43" + Version = "1.0.44" ) diff --git a/go.mod b/go.mod index 3995283..f6bc0c8 100644 --- a/go.mod +++ b/go.mod @@ -7,13 +7,13 @@ require ( github.com/mitchellh/mapstructure v1.5.0 go.dtapp.net/dorm v1.0.54 go.dtapp.net/golog v1.0.102 - go.dtapp.net/gorequest v1.0.37 + go.dtapp.net/gorequest v1.0.38 go.dtapp.net/gostorage v1.0.13 ) require ( github.com/aliyun/aliyun-oss-go-sdk v2.2.6+incompatible // indirect - github.com/aws/aws-sdk-go v1.44.152 // indirect + github.com/aws/aws-sdk-go v1.44.153 // indirect github.com/aws/aws-sdk-go-v2 v1.17.2 // indirect github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.4.10 // indirect github.com/aws/aws-sdk-go-v2/config v1.18.4 // indirect @@ -34,7 +34,7 @@ require ( github.com/aws/smithy-go v1.13.5 // indirect github.com/baidubce/bce-sdk-go v0.9.138 // indirect github.com/basgys/goxml2json v1.1.0 // indirect - github.com/cespare/xxhash/v2 v2.1.2 // indirect + github.com/cespare/xxhash/v2 v2.2.0 // indirect github.com/clbanning/mxj v1.8.4 // indirect github.com/deckarep/golang-set v1.8.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect @@ -101,7 +101,7 @@ require ( github.com/xdg-go/stringprep v1.0.3 // indirect github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a // indirect github.com/yusufpapurcu/wmi v1.2.2 // indirect - go.dtapp.net/goip v1.0.39 // indirect + go.dtapp.net/goip v1.0.40 // indirect go.dtapp.net/gorandom v1.0.1 // indirect go.dtapp.net/gostring v1.0.10 // indirect go.dtapp.net/gotime v1.0.5 // indirect @@ -113,11 +113,11 @@ require ( go.uber.org/zap v1.24.0 // indirect golang.org/x/crypto v0.3.0 // indirect golang.org/x/mod v0.7.0 // indirect - golang.org/x/net v0.2.0 // indirect + golang.org/x/net v0.3.0 // indirect golang.org/x/sync v0.1.0 // indirect - golang.org/x/sys v0.2.0 // indirect - golang.org/x/text v0.4.0 // indirect - golang.org/x/time v0.2.0 // indirect + golang.org/x/sys v0.3.0 // indirect + golang.org/x/text v0.5.0 // indirect + golang.org/x/time v0.3.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gorm.io/driver/mysql v1.4.4 // indirect diff --git a/go.sum b/go.sum index 83f7c15..f6c43f9 100644 --- a/go.sum +++ b/go.sum @@ -28,8 +28,8 @@ github.com/aryann/difflib v0.0.0-20170710044230-e206f873d14a/go.mod h1:DAHtR1m6l github.com/aws/aws-lambda-go v1.13.3/go.mod h1:4UKl9IzQMoD+QF79YdCuzCwp8VbmG4VAQwij/eHl5CU= github.com/aws/aws-sdk-go v1.27.0/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.42.27/go.mod h1:OGr6lGMAKGlG9CVrYnWYDKIyb829c6EVBRjxqjmPepc= -github.com/aws/aws-sdk-go v1.44.152 h1:L9aaepO8wHB67gwuGD8VgIYH/cmQDxieCt7FeLa0+fI= -github.com/aws/aws-sdk-go v1.44.152/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= +github.com/aws/aws-sdk-go v1.44.153 h1:KfN5URb9O/Fk48xHrAinrPV2DzPcLa0cd9yo1ax5KGg= +github.com/aws/aws-sdk-go v1.44.153/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= github.com/aws/aws-sdk-go-v2 v1.17.2 h1:r0yRZInwiPBNpQ4aDy/Ssh3ROWsGtKDwar2JS8Lm+N8= github.com/aws/aws-sdk-go-v2 v1.17.2/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= @@ -81,8 +81,8 @@ github.com/casbin/casbin/v2 v2.1.2/go.mod h1:YcPU1XXisHhLzuxH9coDNf2FbKpjGlbCg3n github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= -github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/clbanning/mxj v1.8.4 h1:HuhwZtbyvyOw+3Z1AowPkU87JkJUSv751ELWaiTpj8I= github.com/clbanning/mxj v1.8.4/go.mod h1:BVjHeAH+rl9rs6f+QIpeRl0tfu10SXn1pUSa5PVGJng= github.com/clbanning/x2j v0.0.0-20191024224557-825249438eec/go.mod h1:jMjuTZXRI4dUb/I5gc9Hdhagfvm9+RyrPryS/auMzxE= @@ -585,14 +585,14 @@ github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxt github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= go.dtapp.net/dorm v1.0.54 h1:yY3NqVSPKDsoLUrEkVzyM9hiZO95jLT1BALXErt+DAw= go.dtapp.net/dorm v1.0.54/go.mod h1:9QRNnXLkHev7MllwpPq6OYusP8khujurXfMZv6p7CYo= -go.dtapp.net/goip v1.0.39 h1:6fEV0yrY3PNUK3lhEuMqxZJYEXzhbHannvsgZA7s7hE= -go.dtapp.net/goip v1.0.39/go.mod h1:9o6uaw0JCPvTwGFWRkznI8EidQ9bwWJ5dx02/7ZUnEM= +go.dtapp.net/goip v1.0.40 h1:JmbbJLydzTsq3X/f8TOqRzoFigf17fI017DWocA5SIU= +go.dtapp.net/goip v1.0.40/go.mod h1:zNUPOjqqGv2dAhZXvGe6AGTC9b5PQ2A7w16OvD4jOj4= go.dtapp.net/golog v1.0.102 h1:WVfx+vxWODqPkYJNeLfxIENyQO3RCCWr5xLhhPauOpM= go.dtapp.net/golog v1.0.102/go.mod h1:doXs2CQmQOMGhrZD7bRRzdUh+cYWfiugJEmpJWBeXDw= go.dtapp.net/gorandom v1.0.1 h1:IWfMClh1ECPvyUjlqD7MwLq4mZdUusD1qAwAdsvEJBs= go.dtapp.net/gorandom v1.0.1/go.mod h1:ZPdgalKpvFV/ATQqR0k4ns/F/IpITAZpx6WkWirr5Y8= -go.dtapp.net/gorequest v1.0.37 h1:m0a9nJHpV3q6N26k3U5+5j+InWJMNjM8bLTEonmp6Jc= -go.dtapp.net/gorequest v1.0.37/go.mod h1:IbhBN1ID6CqMitHjAYdEBmhK1P5FVDLUeMl1JqxE3qY= +go.dtapp.net/gorequest v1.0.38 h1:jrLLWdePnqVXNzgWH/dotNHtX8BRqLqYDM4T7Serj90= +go.dtapp.net/gorequest v1.0.38/go.mod h1:Llcxr9Ii+0iLycvoZjqNIJCAiYgsvsEqz36eUuTd7Bk= go.dtapp.net/gostorage v1.0.13 h1:FkEQGI8LBpfwrKAkTUo15sjofwND5bK8azyU9l41Ajc= go.dtapp.net/gostorage v1.0.13/go.mod h1:+MhF29aByUTk+Y48pDCWECPMoBqA/o+9VSvS+CTSgBk= go.dtapp.net/gostring v1.0.10 h1:eG+1kQehdJUitj9Hfwy79SndMHYOB7ABpWkTs7mDGeQ= @@ -688,8 +688,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.2.0 h1:sZfSu1wtKLGlWI4ZZayP0ck9Y73K1ynO6gqzTdBVdPU= -golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= +golang.org/x/net v0.3.0 h1:VWL6FNY2bEEmsGVKabSlHu5Irp34xmMRoqb/9lF9lxk= +golang.org/x/net v0.3.0/go.mod h1:MBQ8lrhLObU/6UmLb4fmbmk5OcyYmqtbGd/9yIeKjEE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -742,8 +742,9 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0 h1:ljd4t30dBnAvMZaQCevtY0xLLD0A+bRZXbgLMLU1F/A= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -754,12 +755,13 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.5.0 h1:OLmvp0KP+FVG99Ct/qFiL/Fhk4zp4QQnZ7b2U+5piUM= +golang.org/x/text v0.5.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.2.0 h1:52I/1L54xyEQAYdtcSuxtiT84KGYTBGXwayxmIpNJhE= -golang.org/x/time v0.2.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= diff --git a/sign.decrypt.response.go b/sign.decrypt.response.go index cd067d1..a04b34b 100644 --- a/sign.decrypt.response.go +++ b/sign.decrypt.response.go @@ -114,3 +114,16 @@ type SignDecryptWeAppAudit struct { Reason string `xml:"reason,omitempty"` // 审核不通过的原因 ScreenShot string `xml:"ScreenShot,omitempty"` // 审核不通过的截图示例。用 | 分隔的 media_id 的列表,可通过获取永久素材接口拉取截图内容 } + +// SignDecryptWxaSecurityApplySetOrderPathInfo 申请设置订单页 path 信息 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/basic-info-management/applySetOrderPathInfo.html +type SignDecryptWxaSecurityApplySetOrderPathInfo struct { + XMLName xml.Name + List string `xml:"List,omitempty"` // 申请结果列表 + Appid string `xml:"Appid,omitempty"` // 申请的appid + AuditId string `xml:"AuditId,omitempty"` // 审核单id + Status string `xml:"Status,omitempty"` // 订单页 path 状态 + ApplyTime int64 `xml:"ApplyTime,omitempty"` // 申请时间 + AuditTime int64 `xml:"AuditTime,omitempty"` // 审核时间 + Reason string `xml:"Reason,omitempty"` // 审核原因 +} diff --git a/wxa.security.applysetorderpathinfo.go b/wxa.security.applysetorderpathinfo.go new file mode 100644 index 0000000..a808aff --- /dev/null +++ b/wxa.security.applysetorderpathinfo.go @@ -0,0 +1,61 @@ +package wechatopen + +import ( + "context" + "encoding/json" + "fmt" + "go.dtapp.net/gorequest" + "net/http" +) + +type WxaSecurityApplySetOrderPathInfoResponse struct { + Errcode int `json:"errcode"` // 返回码 + Errmsg string `json:"errmsg"` // 返回码信息 +} + +type WxaSecurityApplySetOrderPathInfoResult struct { + Result WxaSecurityApplySetOrderPathInfoResponse // 结果 + Body []byte // 内容 + Http gorequest.Response // 请求 +} + +func newWxaSecurityApplySetOrderPathInfoResult(result WxaSecurityApplySetOrderPathInfoResponse, body []byte, http gorequest.Response) *WxaSecurityApplySetOrderPathInfoResult { + return &WxaSecurityApplySetOrderPathInfoResult{Result: result, Body: body, Http: http} +} + +// WxaSecurityApplySetOrderPathInfo 申请设置订单页 path 信息 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/basic-info-management/applySetOrderPathInfo.html +func (c *Client) WxaSecurityApplySetOrderPathInfo(ctx context.Context, notMustParams ...gorequest.Params) (*WxaSecurityApplySetOrderPathInfoResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + // 参数 + params := gorequest.NewParamsWith(notMustParams...) + // 请求 + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/security/applysetorderpathinfo?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } + // 定义 + var response WxaSecurityApplySetOrderPathInfoResponse + err = json.Unmarshal(request.ResponseBody, &response) + if err != nil { + return nil, err + } + return newWxaSecurityApplySetOrderPathInfoResult(response, request.ResponseBody, request), nil +} + +// ErrcodeInfo 错误描述 +func (resp *WxaSecurityApplySetOrderPathInfoResult) ErrcodeInfo() string { + switch resp.Result.Errcode { + case 61042: + return "批量提交超过最大数量,一次提交的 appid 数量不超过100个" + case 61043: + return "参数填写错误" + case 61044: + return "path填写不规范" + } + return "系统繁忙" +} diff --git a/wxa.security.getorderpathinfo.go b/wxa.security.getorderpathinfo.go new file mode 100644 index 0000000..edff805 --- /dev/null +++ b/wxa.security.getorderpathinfo.go @@ -0,0 +1,68 @@ +package wechatopen + +import ( + "context" + "encoding/json" + "fmt" + "go.dtapp.net/gorequest" + "net/http" +) + +type WxaSecurityGetOrderPathInfoResponse struct { + Errcode int `json:"errcode"` // 返回码 + Errmsg string `json:"errmsg"` // 返回码信息 + msg struct { + Path string `json:"path"` + ImgList []string `json:"img_list"` + Video string `json:"video"` + TestAccount string `json:"test_account"` + TestPwd string `json:"test_pwd"` + TestRemark string `json:"test_remark"` + Status int `json:"status"` + ApplyTime int64 `json:"apply_time"` + } `json:"msg"` +} + +type WxaSecurityGetOrderPathInfoResult struct { + Result WxaSecurityGetOrderPathInfoResponse // 结果 + Body []byte // 内容 + Http gorequest.Response // 请求 +} + +func newWxaSecurityGetOrderPathInfoResult(result WxaSecurityGetOrderPathInfoResponse, body []byte, http gorequest.Response) *WxaSecurityGetOrderPathInfoResult { + return &WxaSecurityGetOrderPathInfoResult{Result: result, Body: body, Http: http} +} + +// WxaSecurityGetOrderPathInfo 获取订单页 path 信息 +// https://developers.weixin.qq.com/doc/oplatform/openApi/OpenApiDoc/miniprogram-management/basic-info-management/getOrderPathInfo.html +func (c *Client) WxaSecurityGetOrderPathInfo(ctx context.Context, infoType int) (*WxaSecurityGetOrderPathInfoResult, error) { + // 检查 + err := c.checkComponentIsConfig() + if err != nil { + return nil, err + } + // 参数 + params := gorequest.NewParams() + params.Set("info_type", infoType) + // 请求 + request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/wxa/security/getorderpathinfo?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost) + if err != nil { + return nil, err + } + // 定义 + var response WxaSecurityGetOrderPathInfoResponse + err = json.Unmarshal(request.ResponseBody, &response) + if err != nil { + return nil, err + } + return newWxaSecurityGetOrderPathInfoResult(response, request.ResponseBody, request), nil +} + +// ErrcodeInfo 错误描述 +func (resp *WxaSecurityGetOrderPathInfoResult) ErrcodeInfo() string { + switch resp.Result.Errcode { + case 61041: + return "订单页 path 未设置" + } + return "系统繁忙" +}