# 配置小程序用户隐私保护指引
本接口用于配置第三方代开发小程序的用户隐私保护指引。可根据小程序实际情况进行完善。小程序发布后即向c端用户展示。
使用过程中如遇到问题,可在开放平台服务商专区发帖交流。
# 注意事项
1、配置后,需重新提交代码审核,审核通过且需要重新发布上线后才会在小程序端生效。
2、配置后,可通过查询最新一次提交的审核状态接口查询审核的状态,如果是驳回了则可以查看驳回原因。
# 请求地址
POST https://api.weixin.qq.com/cgi-bin/component/setprivacysetting?access_token=ACCESS_TOKEN
# 请求参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| access_token | string | 是 | 第三方平台接口调用令牌authorizer_access_token |
| privacy_ver | int | 否 | 用户隐私保护指引的版本,1表示现网版本;2表示开发版。默认是2开发版。 |
| owner_setting | object | 是 | 收集方(开发者)信息配置 |
| setting_list | arrary object | 否 | 要收集的用户信息配置,可选择的用户信息类型参考下方详情。当privacy_ver传2或者不传时,setting_list是必填;当privacy_ver传1时,该参数不可传,否则会报错 |
说明:
1、开发版指的是通过setprivacysetting接口已经配置的用户隐私保护指引内容,但是还没发布到现网,还没正式生效的版本。
2、现网版本指的是已经在小程序现网版本已经生效的用户隐私保护指引内容。
3、如果小程序已有一个现网版,可以通过该接口(privacy_ver=1)直接修改owner_setting里除了ext_file_media_id之外的信息,修改后即可生效。
4、如果需要修改其他信息,则只能修改开发版(privacy_ver=2),然后提交代码审核,审核通过之后发布生效。
5、当该小程序还没有现网版的隐私保护指引时却传了privacy_ver=1,则会出现 86074 报错
# owner_setting 结构体
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| contact_email | string | 否 | 信息收集方(开发者)的邮箱地址,4种联系方式至少要填一种 |
| contact_phone | string | 否 | 信息收集方(开发者)的手机号,4种联系方式至少要填一种 |
| contact_qq | string | 否 | 信息收集方(开发者)的qq号,4种联系方式至少要填一种 |
| contact_weixin | string | 否 | 信息收集方(开发者)的微信号,4种联系方式至少要填一种 |
| ext_file_media_id | string | 否 | 如果开发者不使用微信提供的标准化用户隐私保护指引模板,也可以上传自定义的用户隐私保护指引,通过上传接口上传后可获取media_id |
| notice_method | string | 是 | 通知方式,指的是当开发者收集信息有变动时,通过该方式通知用户。这里服务商需要按照实际情况填写,例如通过弹窗或者公告或者其他方式。 |
| store_expire_timestamp | string | 否 | 存储期限,指的是开发者收集用户信息存储多久。如果不填则展示为【开发者承诺,除法律法规另有规定,开发者对你的信息保存期限应当为实现处理目的所必要的最短时间】,如果填请填数字+天,例如“30天”,否则会出现87072的报错。 |
注意,传参时注意不要json_encode中文变成了unicode编码,否则在小程序端会展示成乱码。建议set成功之后,调get接口看下设置的中文是否正常被显示。
# setting_list 结构体
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| privacy_key | string | 是 | 官方的可选值参考下方说明;该字段也支持自定义 |
| privacy_text | string | 是 | 请填写收集该信息的用途。例如privacy_key=Location(位置信息),那么privacy_text则填写收集位置信息的用途。无需再带上“为了”或者“用于”这些字眼,小程序端的显示格式是为了xxx,因此开发者只需要直接填写用途即可。 |
# sdk_privacy_info_list结构体
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| sdk_name | string | 否 | sdk的名称 |
| sdk_biz_name | string | 否 | sdk提供方的主体名称 |
| sdk_list | arrary object | 否 | sdk收集的信息以及用途 |
# sdk_list结构体
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| privacy_key | string | 是 | sdk收集的信息描述 |
| privacy_text | string | 是 | sdk收集的信息用途说明 |
# privacy_key 可选值如下
- 该列表后续可能会有新增,可通过查询小程序用户隐私保护指引接口获取最新的信息。
- 以下列表的中文描述可能会有所调整,以查询小程序用户隐私保护指引接口获取的为准。
| privacy_key | privacy_desc |
|---|---|
| UserInfo | 用户信息(微信昵称、头像) |
| Location | 位置信息 |
| Address | 地址 |
| Invoice | 发票信息 |
| RunData | 微信运动数据 |
| Record | 麦克风 |
| Album | 选中的照片或视频信息 |
| Camera | 摄像头 |
| PhoneNumber | 手机号码 |
| Contact | 通讯录(仅写入)权限 |
| DeviceInfo | 设备信息 |
| EXIDNumber | 身份证号码 |
| EXOrderInfo | 订单信息 |
| EXUserPublishContent | 发布内容 |
| EXUserFollowAcct | 所关注账号 |
| EXUserOpLog | 操作日志 |
| AlbumWriteOnly | 相册(仅写入)权限 |
| LicensePlate | 车牌号 |
| BlueTooth | 蓝牙 |
| CalendarWriteOnly | 日历(仅写入)权限 |
| 邮箱 | |
| MessageFile | 选中的文件 |
| ChooseLocation | 选择的位置信息 |
请求示例:
{
"owner_setting" : {
"contact_email" : "contact_email",
"contact_phone" : "contact_email",
"contact_qq" : "contact_qq",
"contact_weixin" : "contact_weixin",
"ext_file_media_id" : "2113706500236918784",
"notice_method" : "notice_method",
"store_expire_timestamp" : "store_expire_timestamp"
},
"setting_list" : [
{
"privacy_key" : "privacy_key",
"privacy_text" : "privacy_text"
},
{
"privacy_key" : "privacy_key",
"privacy_text" : "privacy_text"
}
],
"sdk_privacy_info_list":[
{
"sdk_name":"测试sdk",
"sdk_biz_name":"小麦有限公司",
"sdk_list":[
{
"privacy_key":"头像信息",
"privacy_text":"用来展示你的美貌"
}
]
}
],
"privacy_ver":2,
}
# 返回参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| errcode | Number | 返回码 |
| errmsg | String | 错误信息 |
返回结果示例:
{"errcode":0,
"errmsg":"ok"
}
# 返回码说明
| 返回码 | errmsg |
|---|---|
| 0 | ok |
| 86069 | owner_setting必填字段字段缺失 |
| 86070 | notice_method必填字段字段缺失 |
| 86072 | store_expire_timestamp参数无效。如果是编码格式不对,也会报这个错 |
| 86073 | ext_file_media_id参数无效 |
| 86074 | 现网隐私协议不存在 |
| 86075 | 现网隐私协议的ext_file_media_id禁止修改 |
| 其他错误码 | 请查看全局错误码 |