App() 中设置 。 内容格式为:“参数名=参数值&参数名=参数值…”。示例 值如下:
- 有页面参数(没有启动参数):
- 有页面参数,有启动参数:
示例代码如下:
目前 my.httpRequest 已不建议使用,建议更换为 my.request 接口。
my.request() 目前只支持 get、post 请求,其他的请求暂时不支持。
登录 蚂蚁金服开放平台, 按照以下步骤进行生活号关联小程序:
- 在 小程序管理 中,设置关联小程序;
- 在 自定义菜单 中,设置菜单类型为 小程序;
- 按照要求填写相关信息,并设置小程序指定页面的链接。
小程序只支持 https 域名配置。相比于 http,https 可以提供更加优质保密的信息,保证了用户数据的安全性,此外 https 同时也一定程度上保护了服务端,使用恶意攻击和伪装数据的成本大大提高。 因此小程序强制使用 https,还在使用 http 协议的开发者需要尽快对服务器进行升级。 为了方便开发者尽快进行 https 的配置,我们提供了免费的 SSL 证书,点此申请。
小程序不支持第三方接入,请使用小程序自带的 地图组件 和 地图 API ,该 API 基于高德地图。
使用 web-view 嵌套 H5 时,若遇到页面访问受限 / 跳转报错 / 无法跳转等问题,可参考如下解决方案:获取 H5 页面中所有的域名地址(含静态资源地址,例如图片、.js 文件地址等),全部加入域名白名单中。域名白名单配置路径:支付宝小程序配置后台 > 设置 > 开发设置 > H5 域名配置。
注意事项:
- 请不要使用 scheme 方式进行页面跳转。
- 跳转链接是支付宝钱包客户端某个端内 H5 页面,请不要使用该方式。
- 域名仅支持 https 开头的链接,格式支持英文大小写字母、数字、及“-”,不支持IP地址及端口号。
- 需下载校验文件,并放置于配置域名的根目录下。
- H5 页面不能为重定向页。
- 配置域名后,未重新设置体验版或者推送真机预览导致。
web-view H5 页面可以使用手动引入 (此链接仅支持在支付宝客户端内访问),再调用 my.navigateTo 接口即可。
web-view 的标题取决于 H5 的标题,如需修改,请直接修改 H5 的标题内容。但是标题无法隐藏。
支付宝 App 版本过低导致,升级至最新版本即可。
目前不支持个人使用,仅支持企业使用。
本地没有 js 文件,仅支持在支付宝客户端(小程序)内使用链接 H5 引入 ,不支持下载也不建议引用本地文件。
一个 web-view 里面不能有太多嵌套,过多嵌套会影响性能,所以一般不建议嵌套超过5层。
web-view 中没有该接口,可以重新请求数据从而更新页面。
不支持,可以从 web-view 跳转到小程序页面去获取。
不支持。可以通过 button 触发。
使用 web-view 与小程序的通信, 唤起小程序的 my.scan。
建议通过小程序与 web-view 交互的方式,由小程序获取手机号通过交互传给页面。
嵌套了 web-view 的页面都有这个进度条,无法去掉。
如果 H5 项目中没有调用 jsapi 而且也没有集团域名是可以实现的,但是不建议如此操作,建议开发原生小程序,小程序嵌套 H5 和独立 H5 体验都不如原生小程序。
不能用百分比进行高度设置,需要使用具体的高度值,建议结合 my.getSystemInfo 获取手机屏幕高度。
开发中的小程序可以测试支付接口,只需已添加功能(仅对企业小程序开放)并签约后,即可正常使用,需要使用真机进行测试。
支持,请参见 运动数据文档。
小程序可使用富文本组件 rich-text 进行渲染,建议安装并使用 mini-html-parser 来转换 HTML String。
my.scan 只能识别二维码的码值,无法识别小程序二维码的参数,详情请参见文档 my.scan。
添加服务器白名单后需要重新打包上传生成体验版。
小程序暂不支持图片转成 base64。
解决方案:
- 可以通过 success 回调中的 data 参数获取。
- 可以在服务端增加一个日志获取接口。如果上传失败,就请求到日志获取接口获取详细的失败日志。
该 API 是不允许跳转到选项卡页面的。若要跳转到 tab 页面,请使用 my.swithTab 方法。
支持。参数规则:路径与参数之间使用 分隔,参数键与参数值用 相连,不同参数必须用 分隔。示例:
当页面栈深度为 1 时,使用 my.redirectTo 跳转页面的左上角不会有返回按钮,建议通过 getCurrentPages 方法判断页面栈峰值。或者用户可以直接使用 my.reLaunch 进行跳转,使用 my.reLaunch 进行跳转时,不允许跳转到 tabbar 页面。
小程序规定最多不能超过 5 层页面栈,建议通过 getCurrentPages 方法判断页面栈峰值,超过后用重定向跳转页面。
- 跳转小程序内嵌式 H5 页面
可通过 web-view H5页面承载组件实现在小程序内打开 H5页面。(仅限企业账号小程序使用)
(小程序A、小程序B由同一主体账户创建)
- 支付宝客户端 10.1.10 及以上版本支持
(小程序A、小程序C由不同一主体账户创建)
- 支付宝客户端 10.1.25 及以上版本支持
- 有页面参数,有启动参数时:
- 详细参数说明请参见下文《H5跳转小程序实现方法参数解释》表格
H5 跳转小程序实现方法参数解释
不可以,在真机上分别预览两个小程序,就可以在真机上测试相互跳转。
目标小程序可在 App.onLaunch( )、App.onShow( ) 中获取到这份数据。extraData 可以添加多个参数,自定义参数都是从这里传入的。自定义参数中间使用 & 符号进行拼接。
只要在创建订单的时候传了异步通知参数 ,就会发送异步通知;关于异步通知的详细说明可以点击查看 异步通知 说明。
my.tradePay 无法在 IDE 模拟器中进行测试,只能在真机上测试,请以真机调试结果为准。
可能原因:
- 传入 my.tradePay 的 tradeNO 参数错误,导致服务端回传的 tradeNO 出错。
- 小程序支付无法在 IDE 模拟器中进行测试。
解决方案:
- 在服务端调用 alipay.trade.create (统一收单交易创建接口),获得支付宝交易号 tradeNO。
注意:在小程序场景内 alipay.trade.create 接口中的“buyer_id”为必填项,若未传入调式时会出现报错。推荐使用开放平台提供的 服务端 SDK ,并参考以下示例代码(以 Java 代码为例)进行编写。
- 将获得的 tradeNO 参数传入 my.tradePay 中(设置为固定值),并在真机上进行测试。
可能原因:
- 传入 my.tradePay 的 orderStr 参数错误,导致服务端回传的 orderStr 出错。
- 资金授权无法在 IDE 模拟器中进行测试。
解决方案:
- 请参考 资金授权 文档 接入指引 > 第五步:调用接口 > 线上资金预授权冻结,获取用于小程序支付的 orderStr 参数。
- 将获得的 orderStr 参数传入 my.tradePay 中(设置为固定值),并在真机上进行测试。
报错原因:OutOrderNo 和 OutRequestNo 重复请求。(OutOrderNo 和 OutRequestNo 参数详情请参见 线上资金授权冻结。)
解决方案:
- 确保 OutOrderNo 和 OutRequestNo 入参在商家系统中唯一 (只传入OutOrderNo 或只传入 OutRequestNo)。
- 检查参数是否按照文档要求设置,建议只传必传参数测试,避免其他参数干扰。
小程序不支持使用拼接授权链接进行授权,建议使用 my.getAuthCode 实现用户授权、用户登录等。
正常获取会员基础信息是需要弹窗两次进行授权确认的,一次是 my.getAuthCode 获取用户授权码的授权框, 一次是 my.getOpenUserInfo 中获取用户基础信息的授权框。
my.getAuthCode 使用静默授权方法(令 scopes 为 auth_base)即可实现只出现一个授权弹框。示例代码如下:
在 IDE 中使用 console.log,在 console 里打印即可。示例代码如下:
开发者在支付宝开放平台上读写用户信息,均需经过用户许可。支付宝开放平台的用户授权基于国际标准的 OAuth2.0 授权机制。基于此机制,使用 my.getAuthCode API 得到用户授权后,方可进行获取用户信息、给用户发放会员卡等操作。
为了创造更良好的支付宝小程序用户体验,在小程序的首屏引导用户授权是不被允许的。需要在用户充分了解小程序的业务内容后再引导用户授权,建议将小程序授权环节放在业务流程中。
不可以,userID 需要在服务器端调用 alipay.system.oauth.token 获取。
my.getOpenUserInfo API 用于获取支付宝会员基础信息,所以只能在真机上调试,无法在 IDE 中调试。
为提高小程序开发效率,“获取会员信息”功能包已升级为“获取会员基础信息” 功能包。自 2019 年5月25日 起,已不再支持添加“获取会员信息”功能包。已添加“获取会员信息”功能包的小程序,在使用“获取会员基础信息”功能之前,仍需添加“获取会员基础信息”功能包。
alipay.user.info.share 是“获取会员信息”功能包中使用的 API。“获取会员信息”功能包已于2019 年5月25日升级,在此日期之前未签约“获取会员信息”功能包的小程序无法再调用 alipay.user.info.share,请使用“获取会员基础信息”功能包。
不能在同一个弹框中同时获取会员手机号和头像、昵称。可分别获取会员手机号,和获取用户头像及昵称。详情请参见:
- 获取会员手机号
- 获取会员基础信息(获取头像、昵称、性别、所在地区等信息)
不可以。获取支付宝用户的 user_id 需要在服务器端调用 alipay.system.oauth.token 。
不可以。“获取会员基础信息”只能获取用户头像、昵称、性别、所在地区等信息。
正常获取会员基础信息需要弹窗两次进行授权确认:一次是 my.getAuthCode 获取用户授权码的授权框, 另一次是 my.getOpenUserInfo 中获取用户基础信息的授权框。
my.getAuthCode 使用静默授权方法(令 scopes 为 auth_base)即可实现只出现一个授权弹框。示例代码如下:
用户主动触发才能发起获取手机号请求,不能由 API 直接获取用户手机号,需使用 button 组件 的“点击”动作来触发操作。
操作流程:
- 将 button 组件 open-type 的值设置为 getAuthorize。
示例代码:
Button属性说明:
- 用户点击并同意授权后,可以通过 my.getPhoneNumber 获取到支付宝服务器返回的加密数据, 然后在第三方服务端结合签名算法和AES密钥进行解密获取手机号,方法详见 敏感信息加解密方法。
my.getPhoneNumber 获取的是支付宝服务器返回的加密数据。在第三方服务端结合签名算法和 AES 密钥进行解密可获取手机号,方法详见 敏感信息加解密方法。服务端解密后的明文示例如下:
请核实 getAuthCode 的 APPID 是否和服务端调用唤取 token 接口的 APPID 一致。
个人支付宝账号可以创建支付宝小程序,详情请参见 开发者入驻。
1. 注册与入驻企业和个人均可成为支付宝小程序开发者,详情请参见 开发者入驻。
2. 创建一个小程序
- 登录 蚂蚁金服开放平台,在 开发者中心 > 我的应用 > 小程序 中创建小程序即可。
-
填写小程序基础信息。请准确填写小程序的基础信息,基础信息不允许包含违禁词,应用信息修改规则如下:
- 上架前,应用信息均可修改,不限次数。
- 上架后,应用名/应用英文名将不允许修改; 应用简介、应用描述、应用类目这三个信息在新版本提审时每个自然月可修改 5 次,其他信息在新版本提审时可修改。
- 获取小程序 APPID 。小程序创建成功后,可在小程序详情页查看 APPID,然后即可进入小程序开发流程。
更多相关信息请参见 创建小程序。
3. 开发小程序下载小程序开发者工具(IDE),查看小程序开发文档与设计规范,使用丰富的快速示例、开放能力。相关链接:
- 小程序下载中心
- 开发文档
- 设计文档
- 快速示例文档
- 开放能力文档
4. 审核发布小程序提交审核,通过后可发布上架。相关链接:
- 小程序审核规范
- 小程序相关类目及所需资质
- 小程序提审、发布与修改
- 小程序驳回常见类型
5. 监测数据与小程序运营上架后的小程序可在丰富的使用场景中进行数据监测,并开展相关运营活动。相关链接:
- 小程序数据文档
- 小程序运营助手
- 小程序运营规范
- 小程序运营工具
支付宝小程序的开发过程相对简单,只需了解简单的 HTML、CSS、Javascript 语法即可轻松接入支付宝小程序前端开发。以下简单介绍支付宝小程序的语法规则。
- AXML:AXML 是小程序框架设计的一套标签语言,用于描述小程序页面的结构,与网页编程中的 HTML 语法类似。更多信息请参见 AXML 介绍。
- ACSS:ACSS 是一套样式语言,用于描述 AXML 的组件样式,决定 AXML 的组件的显示效果。为适应广大前端开发者,ACSS 同系统 CSS 规则完全一致,100% 可以用。同时为更适合开发小程序,对 CSS 进行了扩充。更多信息请参见 ACSS 语法参考。
- SJS:SJS(safe/subset javascript)是小程序一套自定义脚本语言,可以在 AXML 中使用其构建页面结构。SJS是 Javascript 语言的子集,与 Javascript 是不同的语言,其语法并不与 Javascript 一致,请勿将其等同于 Javascript。更多信息请参见 SJS 介绍。
一个账号下最多可以创建 10 个小程序,每个小程序都有唯一的 APPID;未提交过审核的小程序可以删除,删除的小程序不在计数范围。
小程序名称如果因为知识产权侵权被下架处罚后,名称即被释放,不会被保留或占用。
重新上传新版本的小程序,提交审核。审核通过后,把已上架的旧版本改为“待上架”,把新版本设置为“已上架”即可更新小程序版本。
- 小程序未上架
小程序未上架前,可点击小程序管理后台详情页左侧菜单 应用信息,在页面中点击右侧 编辑 按钮,可直接修改小程序的应用名称,修改次数不限制;修改后提交版本审核时,按修改后的信息进入审核流程。
- 小程序已上架
小程序审核通过后,无法直接修改名称信息,需要走特殊流程申请修改:拨打用户服务电话 95188(8:00-24:00) 或咨询在线客服,说明小程序修改名称的述求,审核通过后(一般审核时间为2个工作日),名称即修改成功。
若小程序审核未通过,可参见 小程序审核驳回常见类型 进行驳回原因排查,并重新提交审核。更多审核规范相关信息,可参见:
- 小程序相关类目及所需资质材料
- 小程序审核规范
- 小程序应用名称规范
小程序右上角胶囊菜单不可自定义成其他样式。
小程序内相关资源图片需要放在 image 文件夹下面,否则不会将相关图片打包进小程序内,将导致小程序运行时引入相对路径的图片失败。
在 page 方法中使用 this.data.参数名 的格式调用。
在 IDE 上运行小程序时,会在调试器中打印类似此类基础库信息: ,也可以调用 my.SDKVersion 获取基础库版本信息。
可以通过升级 IDE 版本,来实现基础库版本的升级;若不升级 IDE则无法进行基础库版本的升级。点击此处 查看最新 IDE 版本。
建议控制小程序文件包尺寸在 2M 之内。如果文件包太大,可以使用 分包加载 功能。