支付
uni.requestPayment(OBJECT)
前提说明
uni.requestPayment是一个统一各平台的客户端支付API,不管是在某家小程序还是在App中,客户端均使用本API调用支付。
本API运行在各端时,会自动转换为各端的原生支付调用API。
注意支付不仅仅需要客户端的开发,还需要服务端开发。虽然客户端API统一了,但各平台的支付申请开通、配置回填仍然需要看各个平台本身的支付文档。
比如微信有App支付、小程序支付、H5支付等不同的申请入口和使用流程,对应到uni-app,在App端要申请微信的App支付,而小程序端则申请微信的小程序支付。
如果服务端使用uniCloud,那么官方提供了uniPay云端统一支付服务,把App、微信小程序、支付宝小程序里的服务端支付开发进行了统一的封装。
前端统一的uni.requestPayment和云端统一的uniPay搭配,可以极大提升支付业务的开发效率,强烈推荐给开发者使用。uniPay的文档另见:https://uniapp.dcloud.io/uniCloud/unipay
参数了解
- provider 服务提供商,通过 uni.getProvider 获取。
- orderInfo 订单数据,注意事项
- timeStamp 时间戳从1970年1月1日至今的秒数,即当前的时间。
- nonceStr 随机字符串,长度为32个字符以下。
- package 统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=xx。
- signType 签名算法,应与后台下单时的值一致
- paySign 签名,具体签名方案参见 微信小程序支付文档
- bannedChannels 需要隐藏的支付方式,详见 百度小程序支付文档
- service 固定值:5(拉起小程序收银台)开发者如果不希望使用字节跳动小程序收银台,service设置为3/4时,可以直接拉起微信/支付宝进行支付:service=3: 微信API支付,不拉起小程序收银台;service=4: 支付宝API支付,不拉起小程序收银台。
- getOrderStatus 商户前端实现的查询支付订单状态方法(该方法需要返回个Promise对象)。service=3、4时不需要传。
- success 接口调用成功的回调
- fail 接口调用失败的回调函数
- complete 接口调用结束的回调函数(调用成功、失败都会执行)
微信支付
- 到 微信开放平台 申请移动应用并开通支付功能,申请应用后可以获取 AppID 和 AppSecret 值
- 应用接入 微信商户平台,选择 App 支付
- 开通支付功能后可获取支付业务服务器配置数据:PARTNER&#