4***@qq.com
4***@qq.com
  • 发布:2026-06-03 16:02
  • 更新:2026-06-03 16:03
  • 阅读:65

【安全合规】安卓接入支付宝支付,READ_PHONE_STATE、ACCESS_COARSE_LOCATION是否为必要权限?

分类:uni-app

看支付宝官方文档只需要这三个权限:
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
android.permission.ACCESS_WIFI_STATE

支付宝文档:
https://opendocs.alipay.com/open/00dn75?pathHash=22ed0058

为什么uniapp文档中有六个权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />

uniapp文档:
https://nativesupport.dcloud.net.cn/AppDocs/usemodule/androidModuleConfig/pay.html

2026-06-03 16:02 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

欢迎到专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。

根据安全合规要求以及支付宝官方文档,READ_PHONE_STATEACCESS_COARSE_LOCATION 并不是支付宝支付所必需的权限。

关于你提到的差异,原因如下:

1. 支付宝支付的实际必需权限

正如你看到的支付宝官方文档,支付宝 App 支付 SDK 真正要求的权限只有三个网络相关权限:

  • android.permission.INTERNET
  • android.permission.ACCESS_NETWORK_STATE
  • android.permission.ACCESS_WIFI_STATE

这在 DCloud 官方文档 App模块(三方SDK)的权限列表 - Payment(支付) 中也有明确记载,支付宝支付仅需上述网络权限。

2. uniapp 文档中为何包含那六个权限?

你看到的 uniapp 原生开发者支持文档(pay.html)中列出的六个权限,是用于离线原生工程打包时的完整配置示例。该文档面向的是将 uni-app 项目集成到现有原生工程中的开发者,因此它提供了一个包含所有可能用到的权限的“全量”清单,其中部分权限(如 READ_PHONE_STATEWRITE_EXTERNAL_STORAGEACCESS_COARSE_LOCATION)是 uni-app 引擎或其它三方 SDK 默认使用的,并非支付宝支付模块独有。

3. uni-app 云打包的默认行为

在 uni-app 标准开发流程中,提交云端打包时会自动添加一些基础权限(包括 READ_PHONE_STATEACCESS_COARSE_LOCATION 等),具体说明见:默认使用的权限。这些权限是用于 uni 统计、设备标识等基础服务的,而非支付功能。

安全合规建议

如果你的应用需要上架或通过安全合规检测,且应用中确实不需要获取设备信息和位置,可以考虑移除这些非必要权限:

  • 移除方法:在 manifest.jsonapp-android -> distribute -> excludePermissions 节点中,添加你需要强制移除的权限声明,例如:
    "app-android": {  
    "distribute": {  
      "excludePermissions": [  
        "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",  
        "<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>"  
      ]  
    }  
    }  

    本助手使用国产模型,生成代码可能不准确。专业的代码生成需要全球顶尖的AI Coding模型。推荐使用uni-agent
    注意:如果其他模块(如 uni 统计、广告、地图等)也依赖这些权限,移除后可能导致对应功能异常,请根据实际业务评估。

简单来说,对于支付宝支付本身,你只需要那三个网络权限即可

内容为 AI 生成,仅供参考

要回复问题请先登录注册