# 设置小程序用户隐私保护指引
接口应在服务器端调用,不可在前端(小程序、网页、APP等)直接调用,具体可参考接口调用指南
接口英文名:setPrivacySetting
本接口用于配置第三方代开发小程序的用户隐私保护指引。可根据小程序实际情况进行完善。小程序发布后即向c端用户展示。
配置小程序用户隐私保护指引查看介绍
使用过程中如遇到问题,可在开放平台服务商专区发贴交流
# 1. 调用方式
# HTTPS 调用
POST https://api.weixin.qq.com/cgi-bin/component/setprivacysetting?access_token=ACCESS_TOKEN
# 云调用
- 本接口不支持云调用
# 第三方调用
本接口支持第三方平台代商家调用。
该接口所属的权限集 id 为:18
服务商获得其中之一权限集授权后,可通过使用 authorizer_access_token 代商家进行调用,具体可查看 第三方调用 说明文档。
# 2. 请求参数
# 查询参数 Query String parameters
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| access_token | string | 是 | 接口调用凭证,可使用 authorizer_access_token |
# 请求体 Request Payload
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| privacy_ver | number | 否 | 用户隐私保护指引的版本,1表示现网版本;2表示开发版。默认是2开发版。 |
| setting_list | objarray | 否 | 要收集的用户信息配置,可选择的用户信息类型参考下方详情。当privacy_ver传2或者不传时,setting_list是必填;当privacy_ver传1时,该参数不可传,否则会报错 |
| owner_setting | object | 是 | 收集方(开发者)信息配置 |
| sdk_privacy_info_list | objarray | 否 | 该小程序中引用了第三方sdk的信息说明 |
# Body.setting_list(Array) Object Payload
要收集的用户信息配置,可选择的用户信息类型参考下方详情。当privacy_ver传2或者不传时,setting_list是必填;当privacy_ver传1时,该参数不可传,否则会报错
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| privacy_key | string | 是 | 官方的可选值参考下方说明;该字段也支持自定义。同适用于sdk收集的信息描述。 |
| privacy_text | string | 是 | 请填写收集该信息的用途。例如privacy_key=Location(位置信息),那么privacy_text则填写收集位置信息的用途。无需再带上“为了”或者“用于”这些字眼,小程序端的显示格式是为了xxx,因此开发者只需要直接填写用途即可。同适用于sdk收集的信息用途描述。 |
# Body.owner_setting Object Payload
收集方(开发者)信息配置
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| contact_phone | string | 否 | 信息收集方(开发者)的手机号,4种联系方式至少要填一种 |
| contact_email | string | 否 | 信息收集方(开发者)的邮箱地址,4种联系方式至少要填一种 |
| contact_qq | string | 否 | 信息收集方(开发者)的qq号,4种联系方式至少要填一种 |
| contact_weixin | string | 否 | 信息收集方(开发者)的微信号,4种联系方式至少要填一种 |
| store_expire_timestamp | string | 否 | 存储期限,指的是开发者收集用户信息存储多久。如果不填则展示为【开发者承诺,除法律法规另有规定,开发者对你的信息保存期限应当为实现处理目的所必要的最短时间】,如果填请填数字+天,例如“30天”,否则会出现87072的报错。 |
| ext_file_media_id | string | 否 | 如果开发者不使用微信提供的标准化用户隐私保护指引模板,也可以上传自定义的用户隐私保护指引,通过uploadPrivacySetting接口上传后可获取media_id |
| notice_method | string | 是 | 通知方式,指的是当开发者收集信息有变动时,通过该方式通知用户。这里服务商需要按照实际情况填写,例如通过弹窗或者公告或者其他方式。 |
| store_region | number | 否 | 存储地区;境外主体小程序需要补充「用户隐私保护指引」中「存储地区」的相关信息,否则小程序审核会被驳回。 |
# Body.sdk_privacy_info_list(Array) Object Payload
该小程序中引用了第三方sdk的信息说明
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| sdk_name | string | 是 | sdk的名称 |
| sdk_biz_name | string | 是 | sdk提供方的主体名称 |
| sdk_list | objarray | 是 | sdk收集的信息以及用途 |
# Body.sdk_privacy_info_list(Array).sdk_listObject Payload
Object Payloadsdk收集的信息以及用途
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| privacy_key | string | 是 | 官方的可选值参考下方说明;该字段也支持自定义。同适用于sdk收集的信息描述。 |
| privacy_text | string | 是 | 请填写收集该信息的用途。例如privacy_key=Location(位置信息),那么privacy_text则填写收集位置信息的用途。无需再带上“为了”或者“用于”这些字眼,小程序端的显示格式是为了xxx,因此开发者只需要直接填写用途即可。同适用于sdk收集的信息用途描述。 |
# 3. 返回参数
# 返回体 Response Payload
| 参数名 | 类型 | 说明 |
|---|---|---|
| errcode | number | 返回码 |
| errmsg | string | 错误信息 |
# 4. 注意事项
1、通过该接口配置用户隐私保护指引后,对于线上版本的小程序生效,则需重新提交代码审核,审核通过且需要重新发布上线后才会在小程序端生效;而对于开发版或者体验版的小程序,则设置后,即可根据设置的隐私协议内容直接调用对应的接口,且展示的隐私协议内容与在开发版或者体验版设置的内容一致(即与线上版的不一致,线上版的如果要生效得提交代码审核,审核通过且需要重新发布上线后才会在小程序端生效)
2、通过该接口配置用户隐私保护指引后,可通过查询最新一次提交的审核状态接口查询审核的状态,如果是驳回了则可以查看驳回原因。
3、传参时注意不要 json_encode 中文变成了unicode编码,否则在小程序端会展示成乱码。建议set成功之后,调get接口看下设置的中文是否正常被显示。
4、境外主体小程序需要补充「用户隐私保护指引」中「存储地区」的相关信息,否则小程序审核会被驳回。
# 其他说明
# 参数补充说明
1、开发版指的是通过setprivacysetting接口已经配置的用户隐私保护指引内容,但是还没发布到现网,还没正式生效的版本。
2、现网版本指的是已经在小程序现网版本已经生效的用户隐私保护指引内容。
3、如果小程序已有一个现网版,可以通过该接口(privacy_ver=1)直接修改owner_setting里除了ext_file_media_id之外的信息,修改后即可生效。
4、如果需要修改其他信息,则只能修改开发版(privacy_ver=2),然后提交代码审核,审核通过之后发布生效。
5、当该小程序还没有现网版的隐私保护指引时却传了privacy_ver=1,则会出现 86074 报错
# 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 | 选择的位置信息 |
| Accelerometer | 加速传感器 |
| Compass | 磁场传感器 |
| DeviceMotion | 方向传感器 |
| Gyroscope | 陀螺仪传感器 |
| Clipboard | 剪切板 |
# store_region 可选值
| 值 | 含义 |
|---|---|
| 1000 | 阿拉伯联合酋长国 |
| 1000 | 阿拉伯联合酋长国 |
| 1001 | 安提瓜和巴布达 |
| 1002 | 安哥拉 |
| 1003 | 阿根廷 |
| 1004 | 奥地利 |
| 1005 | 澳大利亚 |
| 1006 | 阿鲁巴 |
| 1007 | 巴巴多斯 |
| 1008 | 百慕大 |
| 1009 | 文莱 |
| 1010 | 巴西 |
| 1011 | 巴哈马 |
| 1012 | 不丹 |
| 1013 | 博茨瓦纳 |
| 1014 | 加拿大 |
| 1015 | 刚果民主共和国 |
| 1016 | 瑞士 |
| 1017 | 中国大陆 |
| 1018 | 德国 |
| 1019 | 多米尼加共和国 |
| 1020 | 西班牙 |
| 1021 | 斐济 |
| 1022 | 法国 |
| 1023 | 英国 |
| 1024 | 格林纳达 |
| 1025 | 格鲁吉亚 |
| 1026 | 格恩西岛 |
| 1027 | 直布罗陀 |
| 1028 | 格陵兰 |
| 1029 | 冈比亚 |
| 1030 | 关岛 |
| 1031 | 中国香港 |
| 1032 | 海地 |
| 1033 | 匈牙利 |
| 1034 | 印度尼西亚 |
| 1035 | 爱尔兰 |
| 1036 | 印度 |
| 1037 | 伊拉克 |
| 1038 | 伊朗 |
| 1039 | 冰岛 |
| 1040 | 意大利 |
| 1041 | 泽西岛 |
| 1042 | 日本 |
| 1043 | 柬埔寨 |
| 1044 | 圣基茨和尼维斯 |
| 1045 | 韩国 |
| 1046 | 科威特 |
| 1047 | 开曼群岛 |
| 1048 | 列支敦士登 |
| 1049 | 利比亚 |
| 1050 | 摩纳哥 |
| 1051 | 摩尔多瓦 |
| 1052 | 马绍尔群岛 |
| 1053 | 马其顿 |
| 1054 | 中国澳门 |
| 1055 | 北马里亚纳群岛 |
| 1056 | 毛里求斯 |
| 1057 | 马尔代夫 |
| 1058 | 墨西哥 |
| 1059 | 马来西亚 |
| 1060 | 莫桑比克 |
| 1061 | 新喀里多尼亚 |
| 1062 | 荷兰 |
| 1063 | 新西兰 |
| 1064 | 巴拿马 |
| 1065 | 菲律宾 |
| 1066 | 波多黎各 |
| 1067 | 葡萄牙 |
| 1068 | 帕劳 |
| 1069 | 留尼汪 |
| 1070 | 俄罗斯 |
| 1071 | 沙特阿拉伯 |
| 1072 | 塞舌尔 |
| 1073 | 瑞典 |
| 1074 | 新加坡 |
| 1075 | 圣马力诺 |
| 1076 | 斯威士兰 |
| 1077 | 泰国 |
| 1078 | 土耳其 |
| 1079 | 特立尼达和多巴哥 |
| 1080 | 中国台湾 |
| 1081 | 乌克兰 |
| 1082 | 美国 |
| 1083 | 委内瑞拉 |
| 1084 | 越南 |
| 1085 | 萨摩亚 |
| 1086 | 南非 |
| 1087 | 安道尔 |
| 1088 | 阿尔巴尼亚 |
| 1089 | 亚美尼亚 |
| 1090 | 阿塞拜疆 |
| 1091 | 孟加拉国 |
| 1092 | 比利时 |
| 1093 | 保加利亚 |
| 1094 | 巴林 |
| 1095 | 布隆迪 |
| 1096 | 贝宁 |
| 1097 | 玻利维亚 |
| 1098 | 中非共和国 |
| 1099 | 智利 |
| 1100 | 喀麦隆 |
| 1101 | 哥伦比亚 |
| 1102 | 哥斯达黎加 |
| 1103 | 塞尔维亚 |
| 1104 | 古巴 |
| 1105 | 捷克共和国 |
| 1106 | 吉布提 |
| 1107 | 丹麦 |
| 1108 | 阿尔及利亚 |
| 1109 | 厄瓜多尔 |
| 1110 | 埃及 |
| 1111 | 厄立特里亚 |
| 1112 | 埃塞俄比亚 |
| 1113 | 芬兰 |
| 1114 | 加纳 |
| 1115 | 希腊 |
| 1116 | 危地马拉 |
| 1117 | 洪都拉斯 |
| 1118 | 克罗地亚 |
| 1119 | 以色列 |
| 1120 | 牙买加 |
| 1121 | 约旦 |
| 1122 | 肯尼亚 |
| 1123 | 吉尔吉斯斯坦 |
| 1124 | 基里巴斯 |
| 1125 | 朝鲜 |
| 1126 | 哈萨克斯坦 |
| 1127 | 老挝 |
| 1128 | 黎巴嫩 |
| 1129 | 斯里兰卡 |
| 1130 | 利比里亚 |
| 1131 | 莱索托 |
| 1132 | 卢森堡 |
| 1133 | 拉脱维亚 |
| 1134 | 摩洛哥 |
| 1135 | 马达加斯加 |
| 1136 | 缅甸 |
| 1137 | 蒙古 |
| 1138 | 毛里塔尼亚 |
| 1139 | 马拉维 |
| 1140 | 纳米比亚 |
| 1141 | 尼日利亚 |
| 1142 | 尼加拉瓜 |
| 1143 | 挪威 |
| 1144 | 尼泊尔 |
| 1145 | 阿曼 |
| 1146 | 秘鲁 |
| 1147 | 巴布亚新几内亚 |
| 1148 | 巴基斯坦 |
| 1149 | 波兰 |
| 1150 | 卡塔尔 |
| 1151 | 罗马尼亚 |
| 1152 | 卢旺达 |
| 1153 | 所罗门群岛 |
| 1154 | 苏丹 |
| 1155 | 斯洛文尼亚 |
| 1156 | 斯洛伐克 |
| 1157 | 塞拉利昂 |
| 1158 | 塞内加尔 |
| 1159 | 苏里南 |
| 1160 | 塔吉克斯坦 |
| 1161 | 汤加 |
| 1162 | 坦桑尼亚 |
| 1163 | 乌干达 |
| 1164 | 乌拉圭 |
| 1165 | 乌兹别克斯坦 |
| 1166 | 瓦努阿图 |
| 1167 | 也门 |
| 1168 | 赞比亚 |
| 2000 | 阿富汗 |
| 2001 | 奥兰群岛 |
| 2002 | 美属萨摩亚 |
| 2003 | 安圭拉 |
| 2004 | 南极洲 |
| 2005 | 白俄罗斯 |
| 2006 | 伯利兹 |
| 2007 | 波黑 |
| 2008 | 布维岛 |
| 2009 | 英属印度洋领地 |
| 2010 | 布基纳法索 |
| 2011 | 佛得角 |
| 2012 | 乍得 |
| 2013 | 圣诞岛 |
| 2014 | 科科斯(基林)群岛 |
| 2015 | 科摩罗 |
| 2016 | 刚果(布) |
| 2017 | 库克群岛 |
| 2018 | 科特迪瓦 |
| 2019 | 多米尼克 |
| 2020 | 萨尔瓦多 |
| 2021 | 赤道几内亚 |
| 2022 | 福克兰群岛(马尔维纳斯) |
| 2023 | 法罗群岛 |
| 2024 | 法属圭亚那 |
| 2025 | 法属波利尼西亚 |
| 2026 | 法属南部领地 |
| 2027 | 加蓬 |
| 2028 | 瓜德罗普 |
| 2029 | 几内亚 |
| 2030 | 几内亚比绍 |
| 2031 | 圭亚那 |
| 2032 | 赫德岛和麦克唐纳岛 |
| 2033 | 梵蒂冈 |
| 2034 | 英国属地曼岛 |
| 2035 | 马里 |
| 2036 | 马提尼克 |
| 2037 | 马约特 |
| 2038 | 密克罗尼西亚联邦 |
| 2039 | 黑山 |
| 2040 | 蒙特塞拉特 |
| 2041 | 瑙鲁 |
| 2042 | 荷属安的列斯 |
| 2043 | 尼日尔 |
| 2044 | 纽埃 |
| 2045 | 诺福克岛 |
| 2046 | 巴勒斯坦 |
| 2047 | 巴拉圭 |
| 2048 | 皮特凯恩 |
| 2049 | 圣赫勒拿 |
| 2050 | 圣卢西亚 |
| 2051 | 圣皮埃尔和密克隆 |
| 2052 | 圣文森特和格林纳丁斯 |
| 2053 | 圣多美和普林西比 |
| 2054 | 索马里 |
| 2055 | 南乔治亚岛和南桑德韦奇岛 |
| 2056 | 斯瓦尔巴岛和扬马延岛 |
| 2057 | 叙利亚 |
| 2058 | 东帝汶 |
| 2059 | 多哥 |
| 2060 | 托克劳 |
| 2061 | 突尼斯 |
| 2062 | 土库曼斯坦 |
| 2063 | 特克斯和凯科斯群岛 |
| 2064 | 图瓦卢 |
| 2065 | 美国本土外小岛屿 |
| 2066 | 英属维尔京群岛 |
| 2067 | 美属维尔京群岛 |
| 2068 | 瓦利斯和富图纳 |
| 2069 | 西撒哈拉 |
| 2070 | 津巴布韦 |
| 2071 | 马耳他 |
| 2072 | 塞浦路斯 |
| 2073 | 爱沙尼亚 |
| 2074 | 立陶宛 |
# 5. 代码示例
请求示例
{
"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": 0,
"errmsg": "ok"
}
# 6. 错误码
以下是本接口的错误码列表,其他错误码可参考 通用错误码;调用接口遇到报错,可使用官方提供的 API 诊断工具 辅助定位和分析问题。
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| 0 | ok | ok |
| 86069 | owner_setting必填字段字段缺失 | |
| 86070 | notice_method必填字段字段缺失 | |
| 86072 | store_expire_timestamp参数无效。如果是编码格式不对,也会报这个错 | |
| 86073 | ext_file_media_id参数无效 | |
| 86074 | 现网隐私协议不存在 | |
| 86075 | 现网隐私协议的ext_file_media_id禁止修改 |
# 7. 适用范围
本接口支持「第三方平台」账号类型代调用,权限集请参考「调用方式」部分。其他账号类型如无特殊说明,均不可调用。