From 66c86f0fd33d986cf82ab94bde2047410a5f908b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=85=89=E6=98=A5?= Date: Sat, 25 Mar 2023 15:12:57 +0800 Subject: [PATCH] - update wechatopen - update wechatpayopen --- CHANGELOG.md | 5 +++ library.go | 2 +- ...acube.getweanalysisappiddailyretaininfo.go | 14 +++--- ...ube.getweanalysisappiddailysummarytrend.go | 10 ++--- ...acube.getweanalysisappiddailyvisittrend.go | 18 ++++---- ...ube.getweanalysisappidmonthlyretaininfo.go | 14 +++--- ...ube.getweanalysisappidmonthlyvisittrend.go | 18 ++++---- ...datacube.getweanalysisappiduserportrait.go | 44 +++++++++---------- ...ube.getweanalysisappidvisitdistribution.go | 4 +- .../datacube.getweanalysisappidvisitpage.go | 20 ++++----- ...cube.getweanalysisappidweeklyretaininfo.go | 14 +++--- ...cube.getweanalysisappidweeklyvisittrend.go | 18 ++++---- service/wechatpayopen/sign.go | 22 +--------- service/wechatpayopen/sign.rsa.go | 27 ++++++++++++ 14 files changed, 122 insertions(+), 108 deletions(-) create mode 100644 service/wechatpayopen/sign.rsa.go diff --git a/CHANGELOG.md b/CHANGELOG.md index ced4c057..f2382908 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,8 @@ +## v1.0.106 + +- update [wechatopen](service%2Fwechatopen) +- update [wechatpayopen](service%2Fwechatpayopen) + ## v1.0.105 - update [wechatopen](service%2Fwechatopen) diff --git a/library.go b/library.go index 7ef9effa..a2051c78 100644 --- a/library.go +++ b/library.go @@ -1,5 +1,5 @@ package go_library func Version() string { - return "1.0.105" + return "1.0.6" } diff --git a/service/wechatopen/datacube.getweanalysisappiddailyretaininfo.go b/service/wechatopen/datacube.getweanalysisappiddailyretaininfo.go index 8f1af5ff..24341546 100644 --- a/service/wechatopen/datacube.getweanalysisappiddailyretaininfo.go +++ b/service/wechatopen/datacube.getweanalysisappiddailyretaininfo.go @@ -8,15 +8,15 @@ import ( ) type DataCubeGetWeAnAlySisAppidDailyRetainInfoResponse struct { - RefDate string `json:"ref_date"` + RefDate string `json:"ref_date"` // 日期 VisitUvNew []struct { - Key int `json:"key"` - Value int `json:"value"` - } `json:"visit_uv_new"` + Key int64 `json:"key"` + Value int64 `json:"value"` + } `json:"visit_uv_new"` // 新增用户留存 VisitUv []struct { - Key int `json:"key"` - Value int `json:"value"` - } `json:"visit_uv"` + Key int64 `json:"key"` + Value int64 `json:"value"` + } `json:"visit_uv"` // 活跃用户留存 } type DataCubeGetWeAnAlySisAppidDailyRetainInfoResult struct { diff --git a/service/wechatopen/datacube.getweanalysisappiddailysummarytrend.go b/service/wechatopen/datacube.getweanalysisappiddailysummarytrend.go index d361a56d..b0f038cc 100644 --- a/service/wechatopen/datacube.getweanalysisappiddailysummarytrend.go +++ b/service/wechatopen/datacube.getweanalysisappiddailysummarytrend.go @@ -9,11 +9,11 @@ import ( type DataCubeGetWeAnAlySisAppidDailySummaryTrendResponse struct { List []struct { - RefDate string `json:"ref_date"` - VisitTotal int `json:"visit_total"` - SharePv int `json:"share_pv"` - ShareUv int `json:"share_uv"` - } `json:"list"` + RefDate string `json:"ref_date"` // 日期 + VisitTotal int64 `json:"visit_total"` // 累计用户数 + SharePv int64 `json:"share_pv"` // 转发次数 + ShareUv int64 `json:"share_uv"` // 转发人数 + } `json:"list"` // 数据列表 } type DataCubeGetWeAnAlySisAppidDailySummaryTrendResult struct { diff --git a/service/wechatopen/datacube.getweanalysisappiddailyvisittrend.go b/service/wechatopen/datacube.getweanalysisappiddailyvisittrend.go index 806bd694..614864f3 100644 --- a/service/wechatopen/datacube.getweanalysisappiddailyvisittrend.go +++ b/service/wechatopen/datacube.getweanalysisappiddailyvisittrend.go @@ -9,15 +9,15 @@ import ( type DataCubeGetWeAnAlySisAppidDailyVisitTrendResponse struct { List []struct { - RefDate string `json:"ref_date"` - SessionCnt int `json:"session_cnt"` - VisitPv int `json:"visit_pv"` - VisitUv int `json:"visit_uv"` - VisitUvNew int `json:"visit_uv_new"` - StayTimeUv float64 `json:"stay_time_uv"` - StayTimeSession float64 `json:"stay_time_session"` - VisitDepth float64 `json:"visit_depth"` - } `json:"list"` + RefDate string `json:"ref_date"` // 时间 + SessionCnt int64 `json:"session_cnt"` // 打开次数(自然周内汇总) + VisitPv int64 `json:"visit_pv"` // 访问次数(自然周内汇总) + VisitUv int64 `json:"visit_uv"` // 访问人数(自然周内去重) + VisitUvNew int64 `json:"visit_uv_new"` // 新用户数(自然周内去重) + StayTimeUv float64 `json:"stay_time_uv"` // 人均停留时长 (浮点型,单位:秒) + StayTimeSession float64 `json:"stay_time_session"` // 次均停留时长 (浮点型,单位:秒) + VisitDepth float64 `json:"visit_depth"` // 平均访问深度 (浮点型) + } `json:"list"` // 数据列表 } type DataCubeGetWeAnAlySisAppidDailyVisitTrendResult struct { diff --git a/service/wechatopen/datacube.getweanalysisappidmonthlyretaininfo.go b/service/wechatopen/datacube.getweanalysisappidmonthlyretaininfo.go index f2f9d1c2..0cee1f98 100644 --- a/service/wechatopen/datacube.getweanalysisappidmonthlyretaininfo.go +++ b/service/wechatopen/datacube.getweanalysisappidmonthlyretaininfo.go @@ -8,15 +8,15 @@ import ( ) type DataCubeGetWeAnAlySisAppidMonthlyRetainInfoResponse struct { - RefDate string `json:"ref_date"` + RefDate string `json:"ref_date"` // 日期 VisitUvNew []struct { - Key int `json:"key"` - Value int `json:"value"` - } `json:"visit_uv_new"` + Key int64 `json:"key"` + Value int64 `json:"value"` + } `json:"visit_uv_new"` // 新增用户留存 VisitUv []struct { - Key int `json:"key"` - Value int `json:"value"` - } `json:"visit_uv"` + Key int64 `json:"key"` + Value int64 `json:"value"` + } `json:"visit_uv"` // 活跃用户留存 } type DataCubeGetWeAnAlySisAppidMonthlyRetainInfoResult struct { diff --git a/service/wechatopen/datacube.getweanalysisappidmonthlyvisittrend.go b/service/wechatopen/datacube.getweanalysisappidmonthlyvisittrend.go index 73c36678..1b894a01 100644 --- a/service/wechatopen/datacube.getweanalysisappidmonthlyvisittrend.go +++ b/service/wechatopen/datacube.getweanalysisappidmonthlyvisittrend.go @@ -9,15 +9,15 @@ import ( type DataCubeGetWeAnAlySisAppidMonthlyVisitTrendResponse struct { List []struct { - RefDate string `json:"ref_date"` - SessionCnt int `json:"session_cnt"` - VisitPv int `json:"visit_pv"` - VisitUv int `json:"visit_uv"` - VisitUvNew int `json:"visit_uv_new"` - StayTimeUv float64 `json:"stay_time_uv"` - StayTimeSession float64 `json:"stay_time_session"` - VisitDepth float64 `json:"visit_depth"` - } `json:"list"` + RefDate string `json:"ref_date"` // 时间 + SessionCnt int64 `json:"session_cnt"` // 打开次数(自然周内汇总) + VisitPv int64 `json:"visit_pv"` // 访问次数(自然周内汇总) + VisitUv int64 `json:"visit_uv"` // 访问人数(自然周内去重) + VisitUvNew int64 `json:"visit_uv_new"` // 新用户数(自然周内去重) + StayTimeUv float64 `json:"stay_time_uv"` // 人均停留时长 (浮点型,单位:秒) + StayTimeSession float64 `json:"stay_time_session"` // 次均停留时长 (浮点型,单位:秒) + VisitDepth float64 `json:"visit_depth"` // 平均访问深度 (浮点型) + } `json:"list"` // 数据列表 } type DataCubeGetWeAnAlySisAppidMonthlyVisitTrendResult struct { diff --git a/service/wechatopen/datacube.getweanalysisappiduserportrait.go b/service/wechatopen/datacube.getweanalysisappiduserportrait.go index 635fcc18..9fbf8422 100644 --- a/service/wechatopen/datacube.getweanalysisappiduserportrait.go +++ b/service/wechatopen/datacube.getweanalysisappiduserportrait.go @@ -11,64 +11,64 @@ type DataCubeGetWeAnAlySisAppidUserPortraitResponse struct { RefDate string `json:"ref_date"` // 时间范围 VisitUvNew struct { Province []struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"province"` // 分布类型 City []struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"city"` // 省份 Genders []struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"genders"` // 城市 Platforms []struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"platforms"` // 性别 Devices []struct { Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"devices"` // 终端类型 Ages []struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"ages"` // 年龄 } `json:"visit_uv_new"` // 新用户画像 VisitUv struct { Province []struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"province"` // 分布类型 City []struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"city"` // 省份 Genders []struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"genders"` // 城市 Platforms []struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"platforms"` // 性别 Devices []struct { Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"devices"` // 终端类型 Ages []struct { - Id int `json:"id"` + Id int64 `json:"id"` Name string `json:"name"` - Value int `json:"value"` + Value int64 `json:"value"` } `json:"ages"` // 年龄 } `json:"visit_uv"` // 活跃用户画像 } diff --git a/service/wechatopen/datacube.getweanalysisappidvisitdistribution.go b/service/wechatopen/datacube.getweanalysisappidvisitdistribution.go index aed9e9ef..6a055653 100644 --- a/service/wechatopen/datacube.getweanalysisappidvisitdistribution.go +++ b/service/wechatopen/datacube.getweanalysisappidvisitdistribution.go @@ -12,8 +12,8 @@ type DataCubeGetWeAnAlysIsAppidVisitDistributionResponse struct { List []struct { Index string `json:"index"` // 分布类型。枚举值为:access_source_session_cnt(访问来源分布)、access_staytime_info(访问时长分布)、access_depth_info(访问深度的分布 ) ItemList []struct { - Key int `json:"key"` // 场景 id,定义在各个 index 下不同,具体参见下方表格 - Value int `json:"value"` // 该场景 id 访问 pv + Key int64 `json:"key"` // 场景 id,定义在各个 index 下不同,具体参见下方表格 + Value int64 `json:"value"` // 该场景 id 访问 pv } `json:"item_list"` // 分布数据列表 } `json:"list"` // 数据列表 } diff --git a/service/wechatopen/datacube.getweanalysisappidvisitpage.go b/service/wechatopen/datacube.getweanalysisappidvisitpage.go index 3d2848f4..82031675 100644 --- a/service/wechatopen/datacube.getweanalysisappidvisitpage.go +++ b/service/wechatopen/datacube.getweanalysisappidvisitpage.go @@ -8,17 +8,17 @@ import ( ) type DataCubeGetWeAnAlySisAppidVisitPageResponse struct { - RefDate string `json:"ref_date"` + RefDate string `json:"ref_date"` // 日期 List []struct { - PagePath string `json:"page_path"` - PageVisitPv int `json:"page_visit_pv"` - PageVisitUv int `json:"page_visit_uv"` - PageStaytimePv float64 `json:"page_staytime_pv"` - EntrypagePv int `json:"entrypage_pv"` - ExitpagePv int `json:"exitpage_pv"` - PageSharePv int `json:"page_share_pv"` - PageShareUv int `json:"page_share_uv"` - } `json:"list"` + PagePath string `json:"page_path"` // 页面路径 + PageVisitPv int64 `json:"page_visit_pv"` // 访问次数 + PageVisitUv int64 `json:"page_visit_uv"` // 访问人数 + PageStaytimePv float64 `json:"page_staytime_pv"` // 次均停留时长 + EntrypagePv int64 `json:"entrypage_pv"` // 进入页次数 + ExitpagePv int64 `json:"exitpage_pv"` // 退出页次数 + PageSharePv int64 `json:"page_share_pv"` // 转发次数 + PageShareUv int64 `json:"page_share_uv"` // 转发人数 + } `json:"list"` // 数据列表 } type DataCubeGetWeAnAlySisAppidVisitPageResult struct { diff --git a/service/wechatopen/datacube.getweanalysisappidweeklyretaininfo.go b/service/wechatopen/datacube.getweanalysisappidweeklyretaininfo.go index 6fc29b9f..63faa57d 100644 --- a/service/wechatopen/datacube.getweanalysisappidweeklyretaininfo.go +++ b/service/wechatopen/datacube.getweanalysisappidweeklyretaininfo.go @@ -8,15 +8,15 @@ import ( ) type DataCubeGetWeAnAlySisAppidWeeklyRetainInfoResponse struct { - RefDate string `json:"ref_date"` + RefDate string `json:"ref_date"` // 日期 VisitUvNew []struct { - Key int `json:"key"` - Value int `json:"value"` - } `json:"visit_uv_new"` + Key int64 `json:"key"` + Value int64 `json:"value"` + } `json:"visit_uv_new"` // 新增用户留存 VisitUv []struct { - Key int `json:"key"` - Value int `json:"value"` - } `json:"visit_uv"` + Key int64 `json:"key"` + Value int64 `json:"value"` + } `json:"visit_uv"` // 活跃用户留存 } type DataCubeGetWeAnAlySisAppidWeeklyRetainInfoResult struct { diff --git a/service/wechatopen/datacube.getweanalysisappidweeklyvisittrend.go b/service/wechatopen/datacube.getweanalysisappidweeklyvisittrend.go index 67c55905..b8c9b244 100644 --- a/service/wechatopen/datacube.getweanalysisappidweeklyvisittrend.go +++ b/service/wechatopen/datacube.getweanalysisappidweeklyvisittrend.go @@ -9,15 +9,15 @@ import ( type DataCubeGetWeAnAlySisAppidWeeklyVisitTrendResponse struct { List []struct { - RefDate string `json:"ref_date"` - SessionCnt int `json:"session_cnt"` - VisitPv int `json:"visit_pv"` - VisitUv int `json:"visit_uv"` - VisitUvNew int `json:"visit_uv_new"` - StayTimeUv float64 `json:"stay_time_uv"` - StayTimeSession float64 `json:"stay_time_session"` - VisitDepth float64 `json:"visit_depth"` - } `json:"list"` + RefDate string `json:"ref_date"` // 时间 + SessionCnt int64 `json:"session_cnt"` // 打开次数(自然周内汇总) + VisitPv int64 `json:"visit_pv"` // 访问次数(自然周内汇总) + VisitUv int64 `json:"visit_uv"` // 访问人数(自然周内去重) + VisitUvNew int64 `json:"visit_uv_new"` // 新用户数(自然周内去重) + StayTimeUv float64 `json:"stay_time_uv"` // 人均停留时长 (浮点型,单位:秒) + StayTimeSession float64 `json:"stay_time_session"` // 次均停留时长 (浮点型,单位:秒) + VisitDepth float64 `json:"visit_depth"` // 平均访问深度 (浮点型) + } `json:"list"` // 数据列表 } type DataCubeGetWeAnAlySisAppidWeeklyVisitTrendResult struct { diff --git a/service/wechatpayopen/sign.go b/service/wechatpayopen/sign.go index 42ed4817..b369e688 100644 --- a/service/wechatpayopen/sign.go +++ b/service/wechatpayopen/sign.go @@ -9,10 +9,10 @@ import ( "crypto/sha256" "crypto/x509" "encoding/base64" - "encoding/json" "encoding/pem" "errors" "fmt" + "github.com/dtapps/go-library/utils/gojson" "github.com/dtapps/go-library/utils/gorandom" "net/url" "time" @@ -63,7 +63,7 @@ func (c *Client) authorization(method string, paramMap map[string]interface{}, r // 请求报文主体 var signBody string if len(paramMap) != 0 { - paramJsonBytes, err := json.Marshal(paramMap) + paramJsonBytes, err := gojson.Marshal(paramMap) if err != nil { return token, err } @@ -144,21 +144,3 @@ func (c *Client) getRsa(privateKey []byte) *rsa.PrivateKey { return key } - -// 通过私钥对字符串以 SHA256WithRSA 算法生成签名信息 -func (c *Client) signSHA256WithRSA(source string, privateKey *rsa.PrivateKey) (signature string, err error) { - if privateKey == nil { - return "", fmt.Errorf("private key should not be nil") - } - h := crypto.Hash.New(crypto.SHA256) - _, err = h.Write([]byte(source)) - if err != nil { - return "", nil - } - hashed := h.Sum(nil) - signatureByte, err := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, hashed) - if err != nil { - return "", err - } - return base64.StdEncoding.EncodeToString(signatureByte), nil -} diff --git a/service/wechatpayopen/sign.rsa.go b/service/wechatpayopen/sign.rsa.go new file mode 100644 index 00000000..4fdec0fb --- /dev/null +++ b/service/wechatpayopen/sign.rsa.go @@ -0,0 +1,27 @@ +package wechatpayopen + +import ( + "crypto" + "crypto/rand" + "crypto/rsa" + "encoding/base64" + "fmt" +) + +// 通过私钥对字符串以 SHA256WithRSA 算法生成签名信息 +func (c *Client) signSHA256WithRSA(source string, privateKey *rsa.PrivateKey) (signature string, err error) { + if privateKey == nil { + return "", fmt.Errorf("private key should not be nil") + } + h := crypto.Hash.New(crypto.SHA256) + _, err = h.Write([]byte(source)) + if err != nil { + return "", nil + } + hashed := h.Sum(nil) + signatureByte, err := rsa.SignPKCS1v15(rand.Reader, privateKey, crypto.SHA256, hashed) + if err != nil { + return "", err + } + return base64.StdEncoding.EncodeToString(signatureByte), nil +}