codecamp

支付宝小程序API 跳转支付宝应用或页面

my.ap.navigateToAlipayPage

版本需求:基础库 1.10.0 或更高版本;支付宝客户端 10.1.32 或更高版本 ,若支付宝客户端版本较低,建议做 兼容处理

小程序中跳转到支付宝官方业务或运营活动页面。

小程序之间相互跳转,请使用专有接口:my.navigateToMiniProgram

注意:此 API 暂仅支持企业支付宝账户使用。

入参

Object 类型,属性如下:

属性 类型 必填 描述 备注
appCode String 是(和 path 二选一) 要跳转的支付宝官方业务,例如付款码,appCode: 'payCode',详见下方 appCode 说明。 跳转支付宝扫一扫、收到的红包页面、爱攒油页面、小程序快报生活号、蚂蚁森林、蚂蚁庄园、某只股票的详情页,请使用 appCode 属性。支付宝客户端 10.1.62 版本开始支持。个人小程序暂不支持跳转付款码页面。
path String 是(和appCode 二选一) 要跳转的支付宝业务、运营活动 scheme 或 url,如果 url 中带有参数,请务必先将整个 url 做 encode 处理。 跳转除 appCode 参数涵盖的页面,请使用 path 属性。可跳转域名以 https://render.alipay.com/p 开头的支付宝业务、运营页面。
appParams Object appCode 配套参数,需要和 appCode 搭配使用。目前已开放的跳转页面,均无需配置 appParams 参数,appParams 为 {} 即可。(见示例代码 2) 支付宝客户端 10.1.62 版本开始支持。

appCode 参数说明

入参为 Object 类型,属性如下:

appCode appParams 描述
alipayScan {} 打开支付宝扫一扫。
redPacket {} 打开收到的红包页面。
collectOil {} 打开爱攒油页面。
tinyAppSHH {} 打开小程序快报生活号。
antForest autoShowProps:是否打开背包,可空。 打开蚂蚁森林。
antFarm {} 打开蚂蚁庄园。
stockDetail stockType:股票类型,ES-个股,MRI-指数;market:所在市场,SH-沪市,SZ-深,A\O\N\USI - 美股市场,HK-港股市场;symbol:股票代码;name:股票名称,需要encode。 打开某只股票的详情页。
payCode {} 打开支付宝付款码(注意:个人小程序暂不支持跳转付款码页面。)

success 回调函数

入参为 Object 类型,属性如下:

属性 类型 描述
success Boolean 跳转成功。

fail 回调函数

入参为 Object 类型,属性如下:

属性 类型 描述
error String 错误码。
errorMessage String 错误信息。

示例代码

  1. 使用 appCode 属性:

    my.ap.navigateToAlipayPage({
    appCode:'tinyAppSHH',
    appParams: {},
    success:(res) => {
        my.alert({content:'成功:'+JSON.stringify(res)});
    },
    fail:(res) => {
        my.alert({content:'失败:'+JSON.stringify(res)});
    }
}); 
// 打开支付宝扫一扫
my.ap.navigateToAlipayPage({
    appCode:'alipayScan',
    success:(res) => {
        my.alert({content:'成功:'+JSON.stringify(res)});
    },
    fail:(res) => {
        my.alert({content:'失败:'+JSON.stringify(res)});
    }
});
// 打开蚂蚁森林
my.ap.navigateToAlipayPage({
    appCode:'antForest',
    appParams: {
        autoShowProps:1 //可选参数,等1时,默认打开开启森林背包
    },
  success:(res) => {
        my.alert({content:'成功:'+JSON.stringify(res)});
    },
    fail:(res) => {
        my.alert({content:'失败:'+JSON.stringify(res)});
    }
});// 打开股票详情
my.ap.navigateToAlipayPage({
   'appCode':"stockDetail",
   'appParams':{
        'stockType':"ES", //股票类型,ES-个股,MRI-指数
        'market':"N", //所在市场,SH-沪市,SZ-深,A\O\N\USI - 美股市场,HK-港股市场
        'symbol':"BABA", //股票代码
        'name':"阿里巴巴" //股票名称
    },
    success:(res) => {
        my.alert({content:'成功:'+JSON.stringify(res)});
    },
    fail:(res) => {
        my.alert({content:'失败:'+JSON.stringify(res)});
    }
});
  1. 使用 path 属性,通过 scheme 跳转:

  • scheme 可以理解为一种特殊的URI,格式与 URI 相同。
  • 在 scheme 中配置的启动参数需要与 appId 同级,如果启动参数的值包含特殊字符,必须注意需要经过 encode 后再传递。

my.ap.navigateToAlipayPage({
    // 例如跳转到共享单车页面,其 scheme 格式为:
    // alipays://platformapi/startapp?appId=60000155&chInfo=ch_${appid},${appid} 替换为自己的16位 appid,例如:
    path:'alipays://platformapi/startapp?appId=60000155&chInfo=ch_${appid}',
    success:(res) => {
        my.alert({content:'系统信息' + JSON.stringify(res)});
    },
    fail:(error) => {
        my.alert({content:'系统信息' + JSON.stringify(error)});        
    }
})

错误码

错误码 描述 解决方案
2 参数错误,打开失败。 检查 H5 页面链接地址 scheme 或 URL 是否有误。检查 appCode 入参是否有空格、是否填写有误。path 和 appCode 二选一,必填。可跳转域名以 https://render.alipay.com/p 开头的支付宝业务、运营页面(生活号文章链接等)。部分支付宝运营、业务页面目前暂不开放跳转
4 无权限调(N22104)。 个人小程序应用没有开放 my.ap.navigateToAlipayPage 能力。

常见问题 FAQ

使用 my.ap.navigateToAlipayPage 是否可以跳转基金页面?

my.ap.navigateToAlipayPage 暂不支持跳转基金页面。

使用 my.ap.navigateToAlipayPage 打开 H5 页面为何提示“参数错误,打开失败”?

可能原因 解决方案
H5 页面链接地址有误。 修改错误 H5 页面链接。
部分支付宝运营、业务页面目前暂不开放跳转。 -

使用 my.ap.navigateToAlipayPage 跳转生活号文章有一个过渡空白过程,是否正常?

是正常的,属于正常加载流程。

香港支付宝小程序支持"跳转支付宝应用或页面 " my.ap.navigateToAlipayPage 吗?

针对国际业务的特殊性,支付宝有专门的团队支持,香港版小程序咨询请点击以下链接进行咨询:https://global.alipay.com/open/faq.htm

其他有关跳转问题的解答,请参见 小程序跳转 FAQ

支付宝小程序API web-view组件控制
支付宝小程序API 升级支付宝最新版本
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }