已更新更新时间:2024-10-17 11:15:44文档更新记录 >配置项检测工具收藏订阅更新我的文档设置接入检测(即可查看检测结果)若有未通过的接入检测项,接口将无法调通去登录返回文档1 从旧的 aar 依赖更新为 maven 依赖支付宝 sdk 从 15.8.09 开始,依赖方式变为 maven,替代之前的 aar 打包依赖,sdk 支付接口部分不变。如果已经在应用中接入了之前的 alipaysdk-xxx.aar 包,请先按照以下步骤,移除旧的 aar 配置:1在项目中 app module(而非整个项目)的 build.gradle 文件中,移除对支付宝 sdk aar 包的依赖,示例代码:json复制代码912345dependencies { ... ...删除下方的依赖项 compile files('libs/alipaysdk-15.8.08.220323151201.aar') ... ... }2从 libs 目录 删除旧的 alipaysdk-xxx.aar 文件,如: 之后请按照以下的章节,为项目导入支付宝 sdk 依赖。2 导入支付宝 sdk以下内容可参考 alipay_demo 的实现。1在主项目的 build.gradle 中,添加以下内容: 注意:只有"mavencentral"的仓库可以同步到依赖。如果发现获取不到依赖库,请确认下获取的链接是否有问题。可以尝试将mavencentral() 放到所有依赖库的第一个来保证优先从这个仓库获取依赖。json复制代码91234567allprojects { repositories { // 添加下方的内容 mavencentral() // ... jcenter() 等其它仓库 }}2在 app module 的 build.gradle 中,添加以下内容,将支付宝 sdk 作为项目依赖。912345dependencies { // 添加下方的内容 api 'com.alipay.sdk:alipaysdk-android: @aar' // ... 其它依赖项}至此,支付宝 sdk 开发资源导入完成。3 运行权限为正常完成良好的支付流程体验,支付宝 sdk 需要使用以下权限:9123android.permission.internetandroid.permission.access_network_stateandroid.permission.access_wifi_state开发者需要在 androidmanifest 里配置以上 3 个权限,支付宝 sdk 在运行时需要进行网络连接,并在必要的时候判断网络连接的状态(4g/wi-fi)等来进行支付体验的优化。4 支付接口调用需要在新线程中调用支付接口(可参考 alipay_demo 实现)。paytask 对象主要为商家提供订单支付、查询功能,及获取当前开发包版本号。获取 paytask 支付对象调用支付(支付行为需要在独立的非 ui 线程中执行)。4.1 示例代码参数名称参数说明string orderinfoapp 支付请求参数字符串,主要包含商家的订单信息,key=value 形式,以 & 连接。boolean isshowpayloading用户在商家 app 内部点击付款,是否需要一个 loading 做为在支付宝客户端唤起之前的过渡,这个值设置为 true,将会在调用 pay 接口的时候直接唤起一个 loading,直到唤起 h5 支付页面或者唤起外部的支付宝客户端付款页面 loading 才消失。建议将该值设置为 true,优化点击付款到支付唤起支付页面的过渡过程。orderinfo 示例如下,参数说明可查看 请求参数说明,orderinfo 的获取必须来源于服务端:返回值: 本方法调用的返回结果,参数说明可查看 同步返回参数说明。5 支付结果获取和处理调用 pay 方法支付后,将通过2种途径获得支付结果:5.1 同步返回商家应用客户端通过当前调用支付的 activity 的 handler 对象,通过它的回调函数获取支付结果。(可参考 alipay_demo 实现) 5.1.1 示例代码客户端返回回调信息详见 同步通知说明 。5.2 异步通知 商家需要提供一个 http 协议的接口,包含在请求支付的入参中,其 key 对应 notify_url。支付宝服务器在支付完成后,会以 post 方式调用 notify_url 传输数据。6 获取当前开发包版本号调用 paytask 对象的 getversion() 方法查询。6.1 示例代码7 联调问题排查联调过程中的问题可查看 常见联调问题。