You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
wechatopen/cgi-bin.component.getprivac...

87 lines
4.3 KiB

2 years ago
package wechatopen
import (
2 years ago
"context"
2 years ago
"encoding/json"
"fmt"
"go.dtapp.net/gorequest"
"net/http"
)
type CgiBinComponentGetPrivacySettingResponse struct {
Errcode int `json:"errcode"` // 返回码
Errmsg string `json:"errmsg"` // 返回码信息
CodeExist int `json:"code_exist"` // 代码是否存在, 0 不存在, 1 存在 。如果最近没有通过commit接口上传代码则会出现 code_exist=0的情况。
PrivacyList []string `json:"privacy_list"` // 代码检测出来的用户信息类型privacy_key
SettingList []struct {
PrivacyKey string `json:"privacy_key"` // 用户信息类型的英文名称
PrivacyText string `json:"privacy_text"` // 该用户信息类型的用途
PrivacyLabel string `json:"privacy_label"` // 用户信息类型的中文名称
} `json:"setting_list"` // 要收集的用户信息配置
UpdateTime int `json:"update_time"` // 更新时间
OwnerSetting struct {
ContactPhone string `json:"contact_phone"` // 信息收集方(开发者)的邮箱
ContactEmail string `json:"contact_email"` // 信息收集方(开发者)的手机号
ContactQq string `json:"contact_qq"` // 信息收集方开发者的qq
ContactWeixin string `json:"contact_weixin"` // 信息收集方(开发者)的微信号
NoticeMethod string `json:"notice_method"` // 通知方式,指的是当开发者收集信息有变动时,通过该方式通知用户
StoreExpireTimestamp string `json:"store_expire_timestamp"` // 存储期限,指的是开发者收集用户信息存储多久
ExtFileMediaId string `json:"ext_file_media_id"` // 自定义 用户隐私保护指引文件的media_id
} `json:"owner_setting"` // 收集方(开发者)信息配置
PrivacyDesc struct {
PrivacyDescList []struct {
PrivacyKey string `json:"privacy_key"` // 用户信息类型的英文key
PrivacyDesc string `json:"privacy_desc"` // 用户信息类型的中文描述
} `json:"privacy_desc_list"` // 用户信息类型
} `json:"privacy_desc"` // 用户信息类型对应的中英文描述
SdkPrivacyInfoList []struct {
SdkName string `json:"sdk_name"` // sdk的名称
SdkBizName string `json:"sdk_biz_name"` // sdk提供方的主体名称
SdkList []struct {
PrivacyKey string `json:"privacy_key"` // sdk收集的信息描述
PrivacyText string `json:"privacy_text"` // sdk收集的信息用途说明
PrivacyLabel string `json:"privacy_label"`
} `json:"sdk_list"` // sdk收集的信息以及用途
} `json:"sdk_privacy_info_list"` // sdk
}
type CgiBinComponentGetPrivacySettingResult struct {
Result CgiBinComponentGetPrivacySettingResponse // 结果
Body []byte // 内容
Http gorequest.Response // 请求
}
2 years ago
func newCgiBinComponentGetPrivacySettingResult(result CgiBinComponentGetPrivacySettingResponse, body []byte, http gorequest.Response) *CgiBinComponentGetPrivacySettingResult {
return &CgiBinComponentGetPrivacySettingResult{Result: result, Body: body, Http: http}
2 years ago
}
// CgiBinComponentGetPrivacySetting 查询小程序用户隐私保护指引
// @privacyVer 1表示现网版本传1则该接口返回的内容是现网版本的2表示开发版传2则该接口返回的内容是开发版本的。默认是2。
// https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/privacy_config/get_privacy_setting.html
2 years ago
func (c *Client) CgiBinComponentGetPrivacySetting(ctx context.Context, privacyVer int) (*CgiBinComponentGetPrivacySettingResult, error) {
// 检查
err := c.checkComponentIsConfig()
if err != nil {
return nil, err
}
err = c.checkAuthorizerIsConfig()
if err != nil {
return nil, err
}
2 years ago
// 参数
2 years ago
params := gorequest.NewParams()
2 years ago
params["privacy_ver"] = privacyVer
// 请求
2 years ago
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/getprivacysetting?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
2 years ago
if err != nil {
return nil, err
}
2 years ago
// 定义
var response CgiBinComponentGetPrivacySettingResponse
err = json.Unmarshal(request.ResponseBody, &response)
2 years ago
if err != nil {
return nil, err
}
return newCgiBinComponentGetPrivacySettingResult(response, request.ResponseBody, request), nil
2 years ago
}