闪验SDK合规使用指南
<p><div><div class="doc_p">聚美闪验SDK内部集成的移动号码认证SDK收集信息名称里新增OAID。</div>
<div class="doc_p" style="color:red;">注意:聚美闪验SDK内置的移动号码认证SDK,自5.9.12版本起新增了OAID信息采集,如果您使用聚美闪验SDK 2.3.7.0及之后的版本,需要在隐私政策中移动号码认证SDK相关采集信息名称里新增OAID,以免造成自身APP产品出现违规行为。
</div>
<div class="doc_p"><strong>尊敬的开发者,您好!</strong> </div>
<div class="doc_p">自 2019 年 12 月 30 日工信部发布《App 违法违规收集使用个人信息行为认定方法》起,数据合法合规的采集及使用规范越来越严格。近日,工信部启动新一轮的 App 合规检测工作。为了保证您的 App 顺利通过检测,结合当前监管关注重点,聚美制作了 Android SDK 初始化数据采集合规方案。</div>
<div class="doc_p"><strong>温馨提示</strong></div>
<div class="doc_p"><span style="color:red;">请您务必确保已经接入/升级至满足监管新规的最新版本聚美闪验SDK</span>(<a href="<a href="https://www.showdoc.com.cn/p/2469ded901bce2483b2c02d525c7cfb8"">https://www.showdoc.com.cn/p/2469ded901bce2483b2c02d525c7cfb8"</a>; target="_self">点击进入最新版SDK</a>)。</div>
<div class="doc_p"><strong>请牢记!合规三步走:</strong></div>
<div class="doc_p"><strong>1、您需要确保 App 有《隐私政策》,并且在用户首次启动 App 时就弹出《隐私政策》取得用户同意。</strong></div>
<div class="doc_p">App 首先需制定一份《隐私政策》,并确保在产品界面中显著展示。《隐私政策》须单独成文,而不是作为用户协议、用户说明等文件中的一部分存在。
App 应在《隐私政策》中明示收集使用个人信息的目的、方式和范围,并确保《隐私政策》链接正常有效,易于访问和阅读。App 应在《隐私政策》中将收集个人信息的业务功能以及每个业务功能所收集的个人信息类型进行逐项列举,不应使用“等、例如 ” 等方式概括说明;同时,App 须对个人敏感信息类型进行显著标识(如字体加粗、标星号、下划线、斜体、颜色等)。如果通过嵌入第三方代码、插件等方式将个人信息传输至第三方服务器,应通过弹窗提示等方式明确告知用户。</div>
<div class="doc_p"><strong>2、您务必告知用户您选择 聚美闪验SDK 服务。</strong></div>
<div class="doc_p">请您在《隐私政策》中增加对聚美闪验SDK 名称、公司名称、处理个人信息种类及目的、采集方式、隐私政策链接等内容进行披露。
可以在您 App 的《隐私政策》中,以文字或列表的方式向公众披露聚美闪验SDK 的相关信息,可参考如下方式(仅供参考):</div>
<div class="doc_p"><strong>SDK 名称</strong>:聚美闪验 SDK
<strong>SDK 开发者</strong>:杭州安那其科技有限公司
<strong>SDK 包名</strong>:com.shlogin.sdk
<strong>SDK 用途</strong>:为APP 用户提供一键登录、号码验证、安全校验服务
<strong>SDK 信息处理类型</strong>:为了实现网关取号技术,聚美闪验SDK 需要获取本机号码、设备标识符(包括IDFV、OAID)、设备硬件信息(包括设备型号、设备硬件制造商)、操作系统信息(包括操作系统版本)、网络信息(包括网络类型、运营商名称、网络IP地址、网络状态、网络制式)、SIM卡信息(包括SIM卡状态、subId)、应用信息(包括BundleId、包名、包签名)。
<strong>数据处理方式</strong>:通过去标识化、加密传输及其他安全方式
<strong>隐私协议</strong>:<a href="<a href="https://www.showdoc.com.cn/p/2ea45e10d3cf8ffef8150ad919227fb2"">https://www.showdoc.com.cn/p/2ea45e10d3cf8ffef8150ad919227fb2"</a>; target="_self"><a href="https://www.showdoc.com.cn/p/2ea45e10d3cf8ffef8150ad919227fb2</a></div>">https://www.showdoc.com.cn/p/2ea45e10d3cf8ffef8150ad919227fb2</a></div></a>;
<div class="doc_p"><strong>第三方 SDK</strong></div>
<div class="doc_p">聚美闪验SDK同时集成了第三方SDK,使用本服务时需遵守相应协议,请在《隐私政策》中增加对第三方SDK的隐私政策说明,参考如下:</div>
<div class="doc_p"><strong>SDK 名称</strong> :号码认证SDK
<strong>SDK 开发者</strong>:中移互联网有限公司
<strong>SDK 包名</strong>:com.cmic.gen.sdk
<strong>收集信息名称</strong>:网络类型、网络地址(ip地址)、运营商类型、本机号码信息、SIM卡状态、手机设备类型、手机操作系统、硬件厂商、OAID。
<strong>目的及其用途</strong>:识别⽤户的⼿机号码快速登录/号码校验,问题查询、分析、风险控制
<strong>信息处理方式</strong>:SDK 自行采集
<strong>协议名称</strong>:《中国移动认证服务条款》
<strong>协议链接</strong>: <a href="<a href="https://wap.cmpassport.com/uni-access/contactCm.html"">https://wap.cmpassport.com/uni-access/contactCm.html"</a>; target="_blank"><a href="https://wap.cmpassport.com/uni-access/contactCm.html</a></div>">https://wap.cmpassport.com/uni-access/contactCm.html</a></div></a>;
<div class="doc_p"><strong>SDK 名称</strong> :联通认证SDK
<strong>SDK 开发者</strong>:联通在线信息科技有限公司
<strong>SDK 包名</strong>:com.unicom.online.account
<strong>收集信息名称</strong>:网络类型、网络地址、运营商类型、本机手机号、手机设备类型、手机操作系统、硬件厂商
<strong>目的及其用途</strong>:识别⽤户的⼿机号码快速登录/号码校验
<strong>信息处理方式</strong>:SDK 自行采集
<strong>协议名称</strong>:《中国联通服务与隐私协议条款》
<strong>协议链接</strong>:<a href="<a href="https://ms.zzx9.cn/html/oauth/protocol2.html"">https://ms.zzx9.cn/html/oauth/protocol2.html"</a>; target="_blank"><a href="https://ms.zzx9.cn/html/oauth/protocol2.html</a></div>">https://ms.zzx9.cn/html/oauth/protocol2.html</a></div></a>;
<div class="doc_p"><strong>SDK 名称</strong> :天翼账号认证SDK
<strong>SDK 开发者</strong>:天翼数字生活科技有限公司
<strong>SDK 包名</strong>:cn.com.chinatelecom.account.sdk
<strong>收集信息名称</strong>:注册手机号码、本机号码、网络连接类型、网络状态信息、网络地址、运营商类型、手机设备类型、手机设备厂商、手机操作系统类型及版本
<strong>目的及其用途</strong>:识别⽤户的⼿机号码快速登录/号码校验及业务风控
<strong>信息处理方式</strong>:SDK 自行采集
<strong>协议名称</strong>:《天翼服务及隐私协议》
<strong>协议链接</strong>:<a href="<a href="https://e.189.cn/sdk/agreement/detail.do?hidetop=true"">https://e.189.cn/sdk/agreement/detail.do?hidetop=true"</a>; target="_blank"><a href="https://e.189.cn/sdk/agreement/detail.do?hidetop=true</a></div>">https://e.189.cn/sdk/agreement/detail.do?hidetop=true</a></div></a>;
<div class="doc_p"><strong>申请权限及使用场景说明</strong></div>
<div class="doc_p">您可以参考如下表格详细了解聚美闪验SDK使用相关权限与各业务功能的关系及其申请时机,因相关权限的不申请将会对其对应的功能造成影响,您可以结合业务实际需要进行合理配置。</div>
<table><tbody><tr><th>平台</th><th>权限</th><th>使用场景</th><th>使用目的</th><th>申请时机</th></tr><tr><td rowspan="5">Android</td><td>android.permission.INTERNET(必选)</td><td>网络通信</td><td>允许应用程序联网,用于访问网关和认证服务器</td><td>调用sdk业务功能时申请</td></tr><tr><td>android.permission.ACCESS_WIFI_STATE(必选)</td><td>查看WiFi状态</td><td>获取WiFi状态,判断是开启WiFi等</td><td>调用功能接口的前置检查</td></tr><tr><td>android.permission.ACCESS_NETWORK_STATE(必选)</td><td>查看网络状态</td><td>获取网络状态,判断是否开启数据、WiFi等</td><td>调用功能接口的前置检查</td></tr><tr><td>android.permission.CHANGE_NETWORK_STATE(必选)</td><td>进行网络切换通信</td><td>允许程序改变网络连接状态,当用户未使用数据流量时,切换为数据流量,以获取用户手机号码</td><td>WiFi和蜂窝网络双开且需要使用功能接口时申请</td></tr><tr><td>android.permission.CHANGE_WIFI_STATE(可选)</td><td>进行网络切换通信</td><td>允许程序改变WiFi连接状态,当用户未使用数据流量时,切换为数据流量,以获取用户手机号码</td><td>WiFi和蜂窝网络双开且需要使用功能接口时申请</td></tr><tr><td rowspan="1">IOS</td><td>蜂窝网络权限(必选)</td><td>获取用户手机号</td><td>用于一键获取您的手机号码</td><td>调用网关取号功能时申请</td></tr><tr><td rowspan="3"> Harmony</td><td>ohos.permission.INTERNET(必选)</td><td>网络通信</td><td>允许应用程序联网,用于访问网关和认证服务器</td><td>调用sdk业务功能时申请</td></tr><tr><td>ohos.permission.GET_NETWORK_INFO(必选)</td><td>查看网络状态</td><td>获取网络状态,判断是否开启数据、WiFi等</td><td>调用功能接口的前置检查</td></tr><tr><td>ohos.permission.SET_NETWORK_INFO(必选)</td><td>进行网络切换通信</td><td>允许程序改变网络连接状态,当用户未使用数据流量时,切换为数据流量,以获取用户手机号码</td><td>Wi-Fi和蜂窝网络双开且需要使用功能接口时申请</td></tr></tbody></table>
<div class="doc_p"><strong>3、SDK初始化及各项业务功能接口合规调用时机</strong></div>
<div class="doc_p">您应确保在 App 首次运行时通过明显方式提示终端用户阅读您的《隐私政策》,并取得终端用户的合法授权后,再初始化聚美闪验SDK及调用SDK其他方法。如果终端用户不同意您的隐私政策,则不能初始化SDK,也无法使用相应 SDK 对应功能。</div>
<div class="doc_p">Android初始化</div>
<pre><span>public</span><span> </span><span class="token token" style="color: rgb(204, 153, 205);">void</span><span> </span><span class="token token" style="color: rgb(240, 141, 73);">init</span><span class="token token" style="color: rgb(204, 204, 204);">(</span><span class="token token maybe-class-name">Context</span><span> context</span><span class="token token" style="color: rgb(204, 204, 204);">,</span><span> </span><span class="token token known-class-name" style="color: rgb(248, 197, 85);">String</span><span> appId</span><span class="token token" style="color: rgb(204, 204, 204);">,</span><span> </span><span class="token token maybe-class-name">InitListener</span><span> initListener</span><span class="token token" style="color: rgb(204, 204, 204);">)</span></pre></p>
<pre><code>&lt;div&gt;iOS初始化&lt;/div&gt;
&lt;pre&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(103, 205, 204);&quot;&gt;+&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 204, 204);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 153, 205);&quot;&gt;void&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 204, 204);&quot;&gt;)&lt;/span&gt;&lt;span&gt;initWithAppId&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(103, 205, 204);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 204, 204);&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token token maybe-class-name&quot;&gt;NSString&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(103, 205, 204);&quot;&gt;*&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 204, 204);&quot;&gt;)&lt;/span&gt;&lt;span&gt;appId complete&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(103, 205, 204);&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 204, 204);&quot;&gt;(&lt;/span&gt;&lt;span&gt;nullable &lt;/span&gt;&lt;span class=&quot;token token maybe-class-name&quot;&gt;CLComplete&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 204, 204);&quot;&gt;)&lt;/span&gt;&lt;span&gt;complete&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 204, 204);&quot;&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;div class=&quot;doc_p&quot;&gt;HarmonyOS初始化&lt;/div&gt;
&lt;pre&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 153, 205);&quot;&gt;static&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 153, 205);&quot;&gt;async&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(240, 141, 73);&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 204, 204);&quot;&gt;(&lt;/span&gt;&lt;span&gt;context&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(103, 205, 204);&quot;&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class=&quot;token token maybe-class-name&quot;&gt;Context&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 204, 204);&quot;&gt;,&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class=&quot;token token literal-property&quot; style=&quot;color: rgb(248, 197, 85);&quot;&gt;appId&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(103, 205, 204);&quot;&gt;:&lt;/span&gt;&lt;span&gt; string&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(204, 204, 204);&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(103, 205, 204);&quot;&gt;:&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span class=&quot;token token known-class-name&quot; style=&quot;color: rgb(248, 197, 85);&quot;&gt;Promise&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(103, 205, 204);&quot;&gt;&lt;&lt;/span&gt;&lt;span class=&quot;token token maybe-class-name&quot;&gt;CLResult&lt;/span&gt;&lt;span class=&quot;token token&quot; style=&quot;color: rgb(103, 205, 204);&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;div class=&quot;doc_p&quot;&gt;如果终端用户不同意您的隐私政策,不得调用其它任何聚美闪验 SDK 接口,也无法使用相应 SDK 对应功能。&lt;/div&gt;
&lt;div class=&quot;doc_p&quot;&gt;一旦 App 获取到《隐私政策》的用户授权,后续的 App 冷启动,开发者应该保证调用初始化方法。取号方法可以按需调用。&lt;/div&gt;
&lt;div class=&quot;doc_p&quot;&gt;&lt;strong&gt;可选采集信息的配置说明&lt;/strong&gt;&lt;/div&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;&lt;strong&gt;采集信息类型&lt;/strong&gt;&lt;/th&gt;&lt;th&gt;采集信息目的&lt;/th&gt;&lt;th&gt;配置方式&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;网络IP地址&lt;/td&gt;&lt;td&gt;用于日志服务定位失败原因&lt;/td&gt;&lt;td&gt;OneKeyLoginManager.getInstance().getIEnable(false);&lt;br&gt;true:获取;false:不获取;默认:true。 &lt;br&gt;注意:此方法仅能关闭聚美闪验SDK日志上报获取的IP地址,无法关闭聚美闪验SDK内置的运营商SDK获取的IP,注意信息披露。&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;OAID&lt;/td&gt;&lt;td&gt;用于生成脱敏的终端用户设备唯一性标识,用于日志服务及安全风险防范&lt;/td&gt;&lt;td&gt;OneKeyLoginManager.getInstance().getOaidEnable(false); &lt;br&gt;true:获取;false:不获取;默认:true。 &lt;br&gt;注意:此方法仅能关闭聚美闪验SDK日志上报获取的OAID,无法关闭聚美闪验SDK内置的中移互联网号码认证SDK获取的OAID,注意信息披露。&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;
&lt;div class=&quot;doc_p&quot;&gt;&lt;strong&gt;合规文件指引&lt;/strong&gt;&lt;/div&gt;
&lt;div class=&quot;doc_p&quot;&gt;为了更及时高效地落实合规要求,我们建议各位开发者充分了解现有以及陆续将发布的有关个人信息保护的法律、法规、政策、标准等,以下资料供您参考:&lt;/div&gt;
&lt;div&gt;&lt;a href=&quot;http://c.gb688.cn/bzgk/gb/showGb?type=online&amp;hcno=4568F276E0F8346EB0FBA097AA0CE05E&quot; target=&quot;_blank&quot;&gt;《GB/T 35273-2020 信息安全技术 个人信息安全规范》&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://www.cac.gov.cn/2019-12/27/c_1578986455686625.htm&quot; target=&quot;_blank&quot;&gt;《App 违法违规收集使用个人信息行为认定方法》&lt;/a&gt;&lt;/div&gt;</code></pre>
<p></div></p>