diff --git a/App.vue b/App.vue index 94e18c9..f1bb974 100644 --- a/App.vue +++ b/App.vue @@ -24,6 +24,17 @@ // 获取商城基础信息 this.getStoreInfo() }, + onShow(options) { + console.log('app onShow', options); + let extraData = options.referrerInfo.extraData; + if (extraData) { + // wx.showToast({ + // title: params.errStr, + // icon: 'none', + // }); + uni.$emit('appShow', extraData); + } + }, methods: { diff --git a/api/cashier/index.js b/api/cashier/index.js index 0710a62..13904eb 100644 --- a/api/cashier/index.js +++ b/api/cashier/index.js @@ -5,6 +5,7 @@ const api = { orderInfo: 'cashier/orderInfo', orderPay: 'cashier/orderPay', tradeQuery: 'cashier/tradeQuery', + unify: 'goods/unify', } /** @@ -33,3 +34,11 @@ export function orderPay(orderId, data) { export function tradeQuery(param) { return request.get(api.tradeQuery, param) } + +/** + * 查询第三方支付信息 + * @param {Object} param + */ +export function unify(param) { + return request.get(api.unify, param) +} diff --git a/pages/checkout/cashier/index.vue b/pages/checkout/cashier/index.vue index b536735..5e987d5 100644 --- a/pages/checkout/cashier/index.vue +++ b/pages/checkout/cashier/index.vue @@ -135,11 +135,19 @@ // 记录订单ID this.orderId = Number(orderId) // 获取收银台信息 - this.getCashierInfo() + this.getCashierInfo(); + uni.$on('appShow', this.solveShowMsg); }, methods: { - + solveShowMsg(msgData) { + console.log(msgData); + if (msgData.errCode === '0000') { + this.onShowSuccess({ message: msgData.errStr }); + } else { + this.onPayFail({ message: msgData.errStr }); + } + }, // 获取收银台信息 getCashierInfo() { const app = this @@ -182,10 +190,10 @@ // 选择支付方式 handleSelectPayType(index) { - if (this.methods[index].method == 'huifu') { - this.$toast('抱歉,此支付方式暂未完善') - return - } + // if (this.methods[index].method == 'huifu') { + // this.$toast('抱歉,此支付方式暂未完善') + // return + // } this.curPaymentItem = this.methods[index] }, @@ -230,13 +238,29 @@ // 按钮禁用 if (app.disabled) return app.disabled = true - // 提交到后端API + // 提交到后端API CashierApi.orderPay(app.orderId, { method: app.curPaymentItem.method, client: app.platform, extra: app.getExtraAsUnify(app.curPaymentItem.method) }) - .then(result => app.onSubmitCallback(result)) + .then(result => { + console.log(result); + if (app.curPaymentItem.method === 'huifu') { + const { miniPayRequest } = result.data.payment; + let appPayRequest = ''; + appPayRequest = encodeURIComponent(JSON.stringify({ + sign: miniPayRequest.sign, + prepayid: miniPayRequest.prepayid, + })); + uni.navigateToMiniProgram({ + appId: miniPayRequest.miniuser, + path: `${miniPayRequest.minipath}?appPayRequest=${appPayRequest}`, + }); + } else { + app.onSubmitCallback(result) + } + }) .finally(err => setTimeout(() => app.disabled = false, 10)) },