新零售支付全家桶


编写小程序付款代码

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

平台差异说明

App H5 微信小程序 支付宝小程序 百度小程序 字节跳动小程序 QQ小程序
说明

OBJECT 参数说明

参数名 类型 必填 说明 平台差异说明
provider String 服务提供商,通过 uni.getProvider 获取。
orderInfo String/Object 订单数据,注意事项 App、支付宝小程序、百度小程序、字节跳动小程序
timeStamp String 微信小程序必填 时间戳从1970年1月1日至今的秒数,即当前的时间。 微信小程序
nonceStr String 微信小程序必填 随机字符串,长度为32个字符以下。 微信小程序
package String 微信小程序必填 统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=xx。 微信小程序
signType String 微信小程序必填 签名算法,暂支持 MD5。 微信小程序
paySign String 微信小程序必填 签名,具体签名方案参见 微信小程序支付文档 微信小程序
bannedChannels Array<String> 需要隐藏的支付方式,详见 百度小程序支付文档 百度小程序
service Number 字节跳动小程序必填 固定值:1(拉起小程序收银台)开发者如果不希望使用字节跳动小程序收银台,service设置为3/4时,可以直接拉起微信/支付宝进行支付:service=3: 微信API支付,不拉起小程序收银台;service=4: 支付宝API支付,不拉起小程序收银台。其中service=3、4,仅在1.35.0.1+基础库(头条743+)支持 字节跳动小程序
_debug Number 仅限调试用,上线前去掉该参数。_debug=1时,微信支付期间可以看到中间报错信息,方便调试 字节跳动小程序
getOrderStatus Function 字节跳动小程序必填 商户前端实现的查询支付订单状态方法(该方法需要返回个Promise对象)。 service=3、4时不需要传。 字节跳动小程序
success Function 接口调用成功的回调
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)

编写order.vue页面代码

uni.requestPayment({
    provider: &quot;alipay&quot;,
    orderInfo: prepayId,
    success: function(resp) {
        if (resp.resultCode == 9000) {
            uni.showToast({
                title: &quot;支付成功&quot;
            })
        }
    }
})

页面列表

ITEM_HTML