项目生成订单,需要用户通过小程序进行支付。
使用uni.requestPayment(),调用小程序中的付款功能。
<script> export default { data() { return { request:{ id:xxxxx, info:'xxxx' } } }, onLoad() { }, methods: { // 提交订单 subOrder() { this.post("api/order/createOrder", this.request).then(res => { if (res.code == 0) { // 得到订单的反参调用微信支付 let pay = JSON.parse(res.data.prepayId); uni.requestPayment({ timeStamp: pay.timeStamp, nonceStr: pay.nonceStr, package: pay.package, signType: pay.signType, paySign: pay.paySign, // 支付成功的回调 success(result) { console.log(result) if (result.errMsg == "requestPayment:ok") { uni.showToast({ icon: "success", title: "购买成功!" }) } }, // 支付失败回调 fail(err) { uni.showToast({ icon: "none", title: "支付失败" }) } }) } }); } } } </script>
参数名 | 类型 | 说明 |
---|---|---|
provider | String | 服务提供商,通过 uni.getProvider 获取。 |
orderInfo | String/Object | 订单数据 |
timeStamp | String | 时间戳 |
nonceStr | String | 随机字符串,长度为32个字符以下。 |
package | String | 统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=xx。 |
signType | String | 签名算法,暂支持 MD5。 |
paySign | String | 签名,具体签名方案参见 微信小程序支付文档 |
bannedChannels | Array | 需要隐藏的支付方式,详见 百度小程序支付文档 |
service | Number | 固定值:1(拉起小程序收银台)开发者如果不希望使用字节跳动小程序收银台,service设置为3/4时,可以直接拉起微信/支付宝进行支付:service=3: 微信API支付,不拉起小程序收银台;service=4: 支付宝API支付,不拉起小程序收银台。其中service=3、4,仅在1.35.0.1+基础库(头条743+)支持 |
_debug | Number | 仅限调试用 |
getOrderStatus | Function | 商户前端实现的查询支付订单状态方法(该方法需要返回个Promise对象)。 service=3、4时不需要传。 |
success | Function | 接口调用成功的回调 |
fail | Function | 接口调用失败的回调函数 |
complete | Function | 接口调用结束的回调函数(调用成功、失败都会执行) |