#H5 平台
- 普通浏览器平台的支付,仍然是常规web做法。uni-app未封装。
- 在普通浏览器里也可以调起微信进行支付,这个在微信叫做H5支付,此功能未开放给普通开发者,需向微信单独申请,详见
- 微信内嵌浏览器运行H5版时,可通过js sdk实现微信支付,需要引入一个单独的js
App平台支付流程
流程:支付平台功能申请 -> manifest.json
里配置支付参数 -> uni-app
里调用 API 进行支付
App支付
支付宝App支付
#申请流程
登录支付宝账号,创建应用接入支付宝App支付能力,包括以下步骤:
- 创建应用(获取appid)
- 开通App支付功能
- 配置密钥(获取公钥、私钥)
微信App支付
#申请流程
- 到 微信开放平台 申请移动应用并开通支付功能,申请应用后可以获取 AppID 和 AppSecret 值
- 应用接入 微信商户平台,选择 App 支付
- 开通支付功能后可获取支付业务服务器配置数据:PARTNER(财付通商户号)、PARTNER_KEY(财付通密钥)、PAYSIGNKEY(支付签名密钥)
- 需要将从微信开放平台申请的appid,填回到 manifest-App SDK配置-支付-微信支付 中。打包后生效。
苹果应用内支付
#申请流程
使用苹果开发者账号登录 [App Store Connect](https://appstoreconnect.apple.com),在应用的功能选项卡页面,添加 App 内购项目。注意:
- 内购项目的各信息需要填写完整,然后保存,此时内购项目的状态应该是准备提交,当提交应用通过审核后,状态则变为已批准
- 测试时,建议使用测试证书打一个自定义的 iOS 基座进行测试
- 在应用 TestFight 的选项卡添加 App Store Connect 用户,测试支付时可以使用此用户帐号进行测试
复制代码
#支付流程
获取支付通道 (uni.getProvider)
通过支付通道获取产品列表 (iapChannel.requestProduct)
检查是否存在未关闭的订单 (iapChannel.restoreCompletedTransactions, 可选在合适的时机检查)
请求支付,传递产品信息 (uni.requestPayment)
客户端接收苹果返回的支付票据发送到服务器,在服务器请求苹果服务器验证支付是否有效
服务器验证票据有效后在客户端关闭订单 (iapChannel.finishTransaction)
HBuilder 3.5.1 之前因自动关闭订单导致某些情况下丢单的问题
HBuilder 3.5.1 + 增加了手动关闭订单参数
manualFinishTransaction
, 在合适的时机调用iapChannel.finishTransaction
关闭订单HBuilder 3.5.1+ 开始支持通过
uni.getProvider
获取IAP支付通道的方法