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

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package wechatopen
import (
"context"
"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 // 请求
}
func newCgiBinComponentGetPrivacySettingResult(result CgiBinComponentGetPrivacySettingResponse, body []byte, http gorequest.Response) *CgiBinComponentGetPrivacySettingResult {
return &CgiBinComponentGetPrivacySettingResult{Result: result, Body: body, Http: http}
}
// 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
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
}
// 参数
params := gorequest.NewParams()
params["privacy_ver"] = privacyVer
// 请求
request, err := c.request(ctx, fmt.Sprintf(apiUrl+"/cgi-bin/component/getprivacysetting?access_token=%s", c.GetAuthorizerAccessToken(ctx)), params, http.MethodPost)
if err != nil {
return nil, err
}
// 定义
var response CgiBinComponentGetPrivacySettingResponse
err = json.Unmarshal(request.ResponseBody, &response)
if err != nil {
return nil, err
}
return newCgiBinComponentGetPrivacySettingResult(response, request.ResponseBody, request), nil
}