Commit efbb5eb44a715bdd251c15105a5c9d88b2424de1
1 parent
e95f4538
Exists in
dev
微信h5支付功能
Showing
1 changed file
with
55 additions
and
12 deletions
Show diff stats
frontend/app-user/pages/home/placeOrder.vue
@@ -133,6 +133,8 @@ export default { | @@ -133,6 +133,8 @@ export default { | ||
133 | ddlx: "配送", | 133 | ddlx: "配送", |
134 | sfhy: "是", | 134 | sfhy: "是", |
135 | xqList: [], | 135 | xqList: [], |
136 | + zflx: "", | ||
137 | + openId: null | ||
136 | }, | 138 | }, |
137 | adsObj: { | 139 | adsObj: { |
138 | name: "", | 140 | name: "", |
@@ -255,13 +257,32 @@ export default { | @@ -255,13 +257,32 @@ export default { | ||
255 | // uni.navigateTo({ | 257 | // uni.navigateTo({ |
256 | // url:"/pages/home/orderSuccessful" | 258 | // url:"/pages/home/orderSuccessful" |
257 | // }) | 259 | // }) |
258 | - const result = await this.$api.memberApi.savewDd({...this.orderBody, zffs: '微信', zflx: 'JSAPI'}); | 260 | + console.log('支付---------》') |
261 | + let rData = {}; | ||
262 | + // 判断环境 | ||
263 | + // #ifdef H5 | ||
264 | + this.orderBody.zffs = '微信'; | ||
265 | + this.orderBody.zflx = 'JSAPI'; | ||
266 | + this.orderBody.openId = uni.getStorageSync('openId'); | ||
267 | + console.log('H5环境---------》') | ||
268 | + console.log('H5环境rData---------》', this.orderBody) | ||
269 | + // #endif | ||
270 | + | ||
271 | + // #ifdef APP-PLUS | ||
272 | + this.orderBody.zffs = '微信'; | ||
273 | + this.orderBody.zflx = 'APP'; | ||
274 | + console.log('app环境rData---------》', this.orderBody) | ||
275 | + uni.$u.toast('APP暂不支持在线下单,请前往微信公众号进行在线下单。'); | ||
276 | + return false | ||
277 | + // #endif | ||
278 | + console.log('orderBody---------》', this.orderBody) | ||
279 | + const result = await this.$api.memberApi.savewDd(this.orderBody); | ||
259 | let { | 280 | let { |
260 | code, | 281 | code, |
261 | value | 282 | value |
262 | } = result; | 283 | } = result; |
263 | if (code === 200) { | 284 | if (code === 200) { |
264 | - console.log('value--->',value); | 285 | + console.log('value--->', value); |
265 | //在这里唤起支付 | 286 | //在这里唤起支付 |
266 | this.handlePayment(value); // 处理支付逻辑 | 287 | this.handlePayment(value); // 处理支付逻辑 |
267 | } | 288 | } |
@@ -279,34 +300,56 @@ export default { | @@ -279,34 +300,56 @@ export default { | ||
279 | signType: paymentData.payment.signType, | 300 | signType: paymentData.payment.signType, |
280 | paySign: paymentData.payment.paySign | 301 | paySign: paymentData.payment.paySign |
281 | }; | 302 | }; |
282 | - // 调用微信支付 | ||
283 | - this.initWechatPay(paymentParams,paymentData); | 303 | + |
304 | + // 判断环境 | ||
305 | + // #ifdef H5 | ||
306 | + this.handleH5Payment(paymentParams, paymentData); | ||
307 | + // #endif | ||
308 | + | ||
309 | + // #ifdef APP-NVUE | ||
310 | + this.handleAppPayment(paymentParams, paymentData); | ||
311 | + // #endif | ||
312 | + }, | ||
313 | + //app端支付 | ||
314 | + handleAppPayment(paymentParams, paymentData) { | ||
315 | + // 假设APP提供了名为`invokeWechatPay`的方法来处理支付 | ||
316 | + uni.invoke('invokeWechatPay', paymentParams, (res) => { | ||
317 | + if (res.err_msg === 'success') { | ||
318 | + console.log('支付成功', paymentParams); | ||
319 | + uni.navigateTo({ | ||
320 | + url: "/pages/home/orderSuccessful?datas=" + JSON.stringify({ddid: paymentData.ddid}) | ||
321 | + }); | ||
322 | + } else { | ||
323 | + console.error('支付失败', res.err_msg); | ||
324 | + } | ||
325 | + }); | ||
284 | }, | 326 | }, |
285 | - initWechatPay(paymentParams,paymentData) { | 327 | + //h5端支付 |
328 | + handleH5Payment(paymentParams, paymentData) { | ||
286 | if (typeof WeixinJSBridge == "undefined") { | 329 | if (typeof WeixinJSBridge == "undefined") { |
287 | if (document.addEventListener) { | 330 | if (document.addEventListener) { |
288 | document.addEventListener('WeixinJSBridgeReady', () => { | 331 | document.addEventListener('WeixinJSBridgeReady', () => { |
289 | - this.onBridgeReady(paymentParams,paymentData); | 332 | + this.onBridgeReady(paymentParams, paymentData); |
290 | }, false); | 333 | }, false); |
291 | } else if (document.attachEvent) { | 334 | } else if (document.attachEvent) { |
292 | - document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady(paymentParams,paymentData)); | ||
293 | - document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady(paymentParams,paymentData)); | 335 | + document.attachEvent('WeixinJSBridgeReady', this.onBridgeReady(paymentParams, paymentData)); |
336 | + document.attachEvent('onWeixinJSBridgeReady', this.onBridgeReady(paymentParams, paymentData)); | ||
294 | } | 337 | } |
295 | } else { | 338 | } else { |
296 | - this.onBridgeReady(paymentParams,paymentData); | 339 | + this.onBridgeReady(paymentParams, paymentData); |
297 | } | 340 | } |
298 | }, | 341 | }, |
299 | - onBridgeReady(paymentParams,paymentData) { | 342 | + onBridgeReady(paymentParams, paymentData) { |
300 | WeixinJSBridge.invoke( | 343 | WeixinJSBridge.invoke( |
301 | 'getBrandWCPayRequest', | 344 | 'getBrandWCPayRequest', |
302 | paymentParams, | 345 | paymentParams, |
303 | res => { | 346 | res => { |
304 | if (res.err_msg == "get_brand_wcpay_request:ok") { | 347 | if (res.err_msg == "get_brand_wcpay_request:ok") { |
305 | // 支付成功 | 348 | // 支付成功 |
306 | - console.log('支付成功',paymentParams); | 349 | + console.log('支付成功', paymentParams); |
307 | // 可以跳转到支付成功的页面 | 350 | // 可以跳转到支付成功的页面 |
308 | uni.navigateTo({ | 351 | uni.navigateTo({ |
309 | - url: "/pages/home/orderSuccessful?datas=" + JSON.stringify({ddid:paymentData.ddid}) | 352 | + url: "/pages/home/orderSuccessful?datas=" + JSON.stringify({ddid: paymentData.ddid}) |
310 | }); | 353 | }); |
311 | } else { | 354 | } else { |
312 | // 支付失败 | 355 | // 支付失败 |