/** * @description 微信公众号支付准备 * @data 微信支付请求成功之后返回的支付参数 * @payParams {object} 微信支付需要的参数 * */ function onBridgeReady(data, payParams) { // alert('onBridgeReady:==========') window.WeixinJSBridge.invoke('getBrandWCPayRequest', { appId: data.appId, // 公众号名称,由商户传入 timeStamp: data.timeStamp, // 时间戳,自1970年以来的秒数 nonceStr: data.nonceStr, // 随机串 package: data.package, signType: data.signType, // 微信签名方式: paySign: data.paySign // 微信签名 }, function (res) { console.log(res); // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。 if (res.err_msg === 'get_brand_wcpay_request:ok') { // 支付成功页面 if (payParams.type === 'SHYY') { toastMsg('correct', '支付成功'); setTimeout(() => { router.push('/home'); }, 500); } else { // console.log('-----测试----支付成功----') router.push({ path: '/success', query: { orderId: payParams.orderId, totalFee: payParams.totalFee } }); } } else if (res.err_msg === 'get_brand_wcpay_request:fail') { return alert(res.err_desc); } else { // 跳转订单详情 toastMsg('warn', '支付取消'); } }); } /** * 支付宝支付 */ function alipay(res) { console.log('调起支付alipay',res ); uni.requestPayment({ provider: 'alipay', orderInfo: { "dealId": res.dealId, "appKey": res.appKey, "totalAmount": res.totalAmount, "tpOrderId": res.tpOrderId, "dealTitle": res.dealTitle, "rsaSign": res.rsaSign, "bizInfo": res.bizInfo }, //订单数据 success: function(res) { console.log('success:' + JSON.stringify(res)); }, fail: function(err) { console.log('fail:' + JSON.stringify(err)); } }); } /** * 微信小程序支付 */ function wxpay(ret, orderid) { console.log('调起支付wxpay', ret); let res = ret; let status = false; uni.requestPayment({ timeStamp: res.timeStamp, nonceStr: res.nonceStr, package: res.package, signType: res.signType, paySign: res.paySign, appId: res.appId, success: function (res) { console.log('success:' + JSON.stringify(res), res); uni.showToast({ title: '支付成功!' }); }, fail: function (err) { console.log('fail:' + JSON.stringify(err)); } }); } /** * 数组去重 */ function arrayUnique2(arr, name) { var hash = {}; return arr.reduce(function (item, next) { hash[next[name]] ? '' : hash[next[name]] = true && item.push(next); return item; }, []); } export { onBridgeReady, alipay, wxpay, arrayUnique2 };