已更新更新时间:2025-07-17 14:42:09文档更新记录 >配置项检测工具收藏订阅更新我的文档设置接入检测(即可查看检测结果)若有未通过的接入检测项,接口将无法调通去登录返回文档当开发者已完成 后可以通过 native 凯发k8官方网娱乐官方的支付方式唤起支付宝 app。为了节约开发成本,商家在自有app内嵌h5页接入手机网站支付,由于手机网站支付的网络依赖比较严重,通常需要经过更多的验证, 这样会降低支付的成功率。为了能够帮助商家使用 native-h5 混合 app 以极低的接入成本 极大的 提升支付成功率,平台推出了手机网站支付转 native 凯发k8官方网娱乐官方的支付方式,商家下载使用 支付宝标准版 sdk 内置的功能完成手机网站支付。注意:若未安装支付宝app参考下图,点击下载支付宝app付款下载之后再进行支付。下面以淘宝为例对比手机网站支付和手机网站转 native 支付的流程。1 手机网站支付流程在手机端浏览器中访问淘宝凯发k8官方网娱乐官方主页 www.taobao.com,在页面挑选商品并进行付款,点击 立即支付 进入付款详情页面(h5 页面)。1.1 ios1.2 android2 手机网站转 native 支付流程 并运行 demo,将 demo app 安装到手机上即可体验该流程,并在 demo 中打开淘宝凯发k8官方网娱乐官方主页 www.taobao.com,挑选商品并进行付款。注意:请确保手机上安装了支付宝客户端。2.1 ios 点击 urlpay > openurl,输入 www.taobao.com 并点击 go,然后在淘宝凯发k8官方网娱乐官方主页选中商品并付款。2.2 android点击 网页支付转native 然后在淘宝凯发k8官方网娱乐官方主页选中商品并付款。3 对比总结手机网站支付与手机网站转 native 支付的主要区别为:●如果用户手机安装了支付宝客户端,手机网站转 native 凯发k8官方网娱乐官方的支付方式将跳转到支付宝客户端中进行订单支付,用户体验和支付成功率均优于手机网站凯发k8官方网娱乐官方的支付方式。除此之外,还能使用手机网站支付没有提供的指纹支付、手环支付、手表支付、免密支付等功能。 ●如果用户手机没有安装支付宝客户端,将在 sdk 提供的 web-view 中打开 h5 页面进行支付。即便如此,由于 sdk 与服务端的交互携带账号信息,仍比不携带任何账号信息的普通手机网站支付体验更好。4 如何实现手机网站转native支付要实现上述功能需接入支付宝提供的 sdk。接入过程十分简单,可以以上述 demo 为参考,该 demo 程序只有一个功能:创建一个 web-view,在 web-view 中拦截每个 url,然后调用 sdk 提供的接口检查该 url 是否是有效的支付宝订单支付 url,如果是则将该 url 传给 sdk 提供的支付接口进行支付。5 ios 接入说明5.1 配置步骤1:启动 ide(如 xcode),把 ios 包中的压缩文件中以下文件拷贝到项目文件夹下,并导入到项目工程中。在 build phases 选项卡的 link binary with libraries 中,增加以下依赖:其中,需要注意的是:●如果是 xcode 7.0 之后的版本,需要添加 libc .tbd、libz.tbd。●如果是 xcode 7.0 之前的版本,需要添加 libc .dylib、libz.dylib(如下图)。步骤2:在需要调用 alipaysdk 的文件中,增加头文件引用。步骤3:配置支付宝客户端返回 url 处理方法。外部存在支付宝客户端,支付宝客户端将处理结果通过 url 返回。如示例 alisdkdemo\apappdelegate.m 文件中,增加引用代码:在 @implementation appdelegate 中增加如下代码: 5.2 接口调用说明本 sdk 提供的所有接口均定义在 alipaysdk.h 中。sdk 中提供了若干接口,手机网站转 native 支付只用到其中一部分,本文未提到的接口无需关注。5.2.1 调用提供的接口app 支付最新版本 15.4.0 新增拦截 支付二合一接口(payinterceptorwithurl),该接口将原来的获取 h5 支付订单信息接口和支付接口进行了合并。接口的调用方式是先调用 defaultservice 获取 sdk 的实例,然后再调用单独提供的功能接口,以 payinterceptorwithurl 为例:5.2.2 实现手机网站转app支付1实现 uiwebviewdelegate 协议,拦截 h5 的 url。2调用新增拦截 支付二合一接口(payinterceptorwithurl...)进行 url 拦截及支付转化;具体查看下文 拦截 支付二合一接口。5.3 拦截 支付二合一接口本接口首先是个拦截器,拦截支付宝 h5 支付 url。其次是个凯发k8官方网娱乐官方的支付方式转化器,将手机网站凯发k8官方网娱乐官方的支付方式转化为 app 凯发k8官方网娱乐官方的支付方式。5.3.1 示例代码5.3.2 参数说明参数名称类型说明urlstrnsstring *手机网站支付的请求 url。schemestrnsstring *接入方 app 注册的 url scheme,供支付完成后跳回接入方 app。completionblockobjc(^completionblock)(nsdictionary *resultdic)支付结束之后的回调,其中 completionblock 定义如下:objctypedef void(^completionblock)(nsdictionary \*resultdic);5.3.3 同步拦截结果返回值说明返回值类型描述bool●如果 urlstr 是有效的支付宝 h5 支付 url,则说明拦截转化成功,返回 yes,商户容器无需再加载该 url。 ●如果是无效的,则返回 no,商户容器需要继续加载该 url。5.3.4 异步支付结果返回值说明支付结束后 sdk 将回调 completionblock,并将支付结果 resultdic(nsdictionary *类型)作为参数传入该 block。resultdic 中主要包含两个字段,如下所示:参数名称参数类型参数说明resultcodensstring *返回码,标识支付状态,含义如下:9000——订单支付成功8000——正在处理中4000——订单支付失败5000——重复请求6001——用户中途取消6002——网络连接出错returnurlnsstring *支付结束后应当跳转的 url 地址。5.3.5 接口使用方式调用本接口对支付宝支付 url 进行拦截和支付转化。当接口调用完成后,该接口会返回一个 bool 类型的同步拦截结果:●如果同步结果返回值为 yes,说明传入的 url 为支付宝支付 url,支付宝 sdk 已经成功拦截该 url,并转化为 app 凯发k8官方网娱乐官方的支付方式,商户容器无需再加载该 url。●如果返回值为 no,说明传入的 url 并非支付宝支付 url,商户容器需要继续加载该url。当支付结束后,会通过回调的方式返回异步支付结果:●如果返回的支付结果中的 resultcode 为 9000,则表示支付成功,接入方可以提示用户支付成功。●如果返回结果不是 9000,则无需做任何处理。当返回的 returnurl 不为空,建议接入方跳转到该 returnurl。 6 android接入说明6.1 sdk 接入以下内容可参考 alipay_demo 的实现。1在主项目的 build.gradle 中,添加以下内容: 注意:只有"mavencentral"的仓库可以同步到依赖。如果发现获取不到依赖库,请确认下获取的链接是否有问题。可以尝试将mavencentral() 放到所有依赖库的第一个来保证优先从这个仓库获取依赖。2在 app module 的 build.gradle 中,添加以下内容,将支付宝 sdk 作为项目依赖。至此,支付宝 sdk 开发资源导入完成。为正常完成良好的支付流程体验,支付宝 sdk 需要使用以下权限:开发者需要在 androidmanifest 里配置以上 3 个权限,支付宝 sdk 在运行时需要进行网络连接,并在必要的时候判断网络连接的状态(4g/wi-fi)等来进行支付体验的优化。6.2 接口调用说明sdk中提供了若干接口,手机网站转 native 支付只用到其中一部分,本文未提到的接口无需关注。6.2.1 调用提供的接口app 支付最新版本 15.4.0 新增拦截 支付二合一接口(payinterceptorwithurl),该接口将原来的获取 h5 支付订单信息接口和支付接口进行了合并。6.2.2 实现手机网站转native支付1在接入方 app 中拦截 h5 的 url。2调用新增拦截 支付二合一接口(payinterceptorwithurl...)进行 url 拦截及支付转化;具体可查看下方 拦截 支付二合一接口。6.3 拦截 支付二合一接口本接口首先是个拦截器,拦截支付宝 h5 支付 url;其次是个凯发k8官方网娱乐官方的支付方式转化器,将手机网站凯发k8官方网娱乐官方的支付方式转化为app凯发k8官方网娱乐官方的支付方式。6.3.1 示例代码6.3.2 参数说明参数名称参数类型参数说明h5payurlstring手机网站支付的请求 url。isshowpayloadingboolean是否出现 loading。callbackh5paycallback异步回调接口。6.3.3 同步拦截结果返回值说明返回值类型描述boolean●如果 h5payurl 是有效的支付宝 h5 支付 url,则说明拦截转化成功,返回 true,商户容器无需再加载该 url。●如果是无效的,则返回 false,商户容器需要继续加载该 url。6.3.4 异步支付结果返回值说明支付结束后 sdk 将回调 h5paycallback,并将支付结果 h5payresultmodel 作为参数传入该 callback。h5payresultmodel 中主要包含两个字段,如下所示:参数名称参数类型参数说明resultcodestring返回码,标识支付状态,含义如下:9000——订单支付成功8000——正在处理中4000——订单支付失败5000——重复请求6001——用户中途取消6002——网络连接出错returnurlstring支付结束后应当跳转的 url 地址。6.3.5 接口使用方式调用本接口对支付宝支付 url 进行拦截和支付转化。当接口调用完成后,该接口会返回一个 boolean 类型的同步拦截结果。●如果同步结果返回值为 true,说明传入的 url 为支付宝支付 url,支付宝 sdk 已经成功拦截该 url,并转化为 app 凯发k8官方网娱乐官方的支付方式,商户容器无需再加载该 url。●如果返回值为 false,说明传入的 url 并非支付宝支付 url,商户容器需要继续加载该 url。当支付结束后,会通过回调的方式返回异步支付结果。●如果返回的支付结果中的 resultcode 为 9000,则表示支付成功,接入方可以提示用户支付成功。●如果返回结果不是 9000,无需做任何处理。当返回的 returnurl 不为空,建议接入方跳转到该 returnurl。7 harmony 单框架 接入说明7.1 配置7.2 接口调用说明sdk 中提供了若干接口,手机网站转 native 支付只用到其中一部分,本文未提到的接口无需关注。 本接口首先是个拦截器,拦截支付宝 h5 支付 url;其次是个凯发k8官方网娱乐官方的支付方式转化器,将手机网站凯发k8官方网娱乐官方的支付方式转化为app凯发k8官方网娱乐官方的支付方式。7.2.1 示例代码7.2.2 参数说明参数名称类型说明h5payurlstring手机网站支付的请求 url。showpayloadingboolean是否出现 loading。callback(result: map)异步回调接口。7.2.3 同步拦截结果返回值说明返回值类型描述boolean●如果 h5payurl 是有效的支付宝 h5 支付 url,则说明拦截转化成功,返回 true,商户容器无需再加载该 url。●如果是无效的,则返回 false,商户容器需要继续加载该 url。7.2.4 异步支付结果返回值说明支付结束后 sdk 将回调 callback,并将支付结果 result 作为参数传入该 callback。result 中主要包含两个字段,如下所示:参数名称类型说明resultcodestring返回码,标识支付状态,含义如下: 9000——订单支付成功 8000——正在处理中 4000——订单支付失败 5000——重复请求 6001——用户中途取消 6002——网络连接出错returnurlstring支付结束后应当跳转的 url 地址。7.2.5 接口使用方式调用本接口对支付宝支付 url 进行拦截和支付转化。当接口调用完成后,该接口会返回一个 boolean 类型的同步拦截结果。●如果同步结果返回值为 true,说明传入的 url 为支付宝支付 url,支付宝 sdk 已经成功拦截该 url,并转化为 app 凯发k8官方网娱乐官方的支付方式,商户容器无需再加载该 url。●如果返回值为 false,说明传入的 url 并非支付宝支付 url,商户容器需要继续加载该 url。当支付结束后,会通过回调的方式返回异步支付结果。●如果返回的支付结果中的 resultcode 为 9000,则表示支付成功,接入方可以提示用户支付成功。●如果返回结果不是 9000,无需做任何处理。当返回的 returnurl 不为空,建议接入方跳转到该 returnurl。8 沙箱联调指南沙箱环境是开放平台提供给开发者调试接口的环境,详情可查看沙箱环境。请开发者在使用 sdk 时,在支付接口前调用如下方法用于切换沙箱环境与生产环境,如果不使用此方法,默认使用生产环境。方法调用位置如下图所示:使用支付宝沙箱版客户端测试:在 开放平台控制台 > 沙箱 > 。 注意:在生产环境,必须将此代码注释。在沙箱调通接口后,必须在生产环境进行测试与验收,所有返回码及业务逻辑以生产环境为准。