新零售支付全家桶


用户付款代码实现

uni.requestPayment(OBJECT)

uni.requestPayment是一个统一各平台的客户端支付API,不管是在某家小程序还是在App中,客户端均使用本API调用。

本API运行在各端时,会自动转换为各端的原生支付调用API。

虽然客户端API统一了,但各平台的支付申请开通、配置回填、服务器开发,仍然需要看各个平台本身的支付文档。

比如微信有App支付、小程序支付、H5支付等不同的申请入口和使用流程,对应到uni-app,在App端要申请和使用微信的App支付,而小程序端则申请和使用微信的小程序支付。

平台差异说明

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 接口调用结束的回调函数(调用成功、失败都会执行)

代码案例

// 仅作为示例,非真实参数信息。
uni.requestPayment({
    provider: 'wxpay',
    timeStamp: String(Date.now()),
    nonceStr: 'A1B2C3D4E5',
    package: 'prepay_id=wx20180101abcdefg',
    signType: 'MD5',
    paySign: '',
    success: function (res) {
        console.log('success:' + JSON.stringify(res));
    },
    fail: function (err) {
        console.log('fail:' + JSON.stringify(err));
    }
});

编写order.vue

uni.requestPayment({
    &quot;timeStamp&quot;: timeStamp,
    &quot;nonceStr&quot;: nonceStr,
    &quot;package&quot;: pk,
    &quot;signType&quot;: &quot;MD5&quot;,
    &quot;paySign&quot;: paySign,
    success: function() {
        uni.showToast({
            title: &quot;支付成功&quot;
        })
    },
    fail: function() {
        uni.showToast({
            title: &quot;支付失败&quot;
        })
    }
})

页面列表

ITEM_HTML