143 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			143 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
|  | /* | ||
|  |  * 支付 | ||
|  |  */ | ||
|  | export const pay = (result, self, success, fail) => { | ||
|  | 	if (result.code === -10) { | ||
|  | 		self.showError(result.msg); | ||
|  | 		return false; | ||
|  | 	} | ||
|  | 	// #ifdef  APP-PLUS
 | ||
|  | 	//微信支付
 | ||
|  | 	wxAppPay(result, self, success, fail); | ||
|  | 	// #endif
 | ||
|  | 	return | ||
|  | 	// 发起微信支付
 | ||
|  | 	if (result.data.pay_type == 20) { | ||
|  | 		//小程序支付
 | ||
|  | 		// #ifdef  MP-WEIXIN	
 | ||
|  | 		uni.requestPayment({ | ||
|  | 			provider: 'wxpay', | ||
|  | 			timeStamp: result.data.payment.timeStamp, | ||
|  | 			nonceStr: result.data.payment.nonceStr, | ||
|  | 			package: 'prepay_id=' + result.data.payment.prepay_id, | ||
|  | 			signType: 'MD5', | ||
|  | 			paySign: result.data.payment.paySign, | ||
|  | 			success: res => { | ||
|  | 				paySuccess(result, self, success); | ||
|  | 			}, | ||
|  | 			fail: res => { | ||
|  | 				self.showError('订单未支付成功', () => { | ||
|  | 					payError(result, fail, self); | ||
|  | 				}); | ||
|  | 			}, | ||
|  | 		}); | ||
|  | 		// #endif
 | ||
|  | 		//公众号支付
 | ||
|  | 		// #ifdef  H5
 | ||
|  | 		if (self.isWeixin()) { | ||
|  | 			WeixinJSBridge.invoke('getBrandWCPayRequest', JSON.parse(result.data.payment), | ||
|  | 				function(res) { | ||
|  | 					if (res.err_msg == "get_brand_wcpay_request:ok") { | ||
|  | 						paySuccess(result, self, success); | ||
|  | 					} else if (res.err_msg == "get_brand_wcpay_request:cancel") { | ||
|  | 						self.showSuccess('支付取消', () => { | ||
|  | 							payError(result, fail, self); | ||
|  | 						}); | ||
|  | 					} else { | ||
|  | 						self.showError('订单未支付成功', () => { | ||
|  | 							payError(result, fail, self); | ||
|  | 						}); | ||
|  | 					} | ||
|  | 				} | ||
|  | 			); | ||
|  | 		} else { | ||
|  | 			//h5支付
 | ||
|  | 			self.gotoPage('/pages/order/pay-h5/pay-h5?order_id=' + result.data.order_id + '&order_type=' + result | ||
|  | 				.data.order_type); | ||
|  | 			return; | ||
|  | 		} | ||
|  | 		// #endif
 | ||
|  | 		// #ifdef  APP-PLUS
 | ||
|  | 		//微信支付
 | ||
|  | 		wxAppPay(result, self, success, fail); | ||
|  | 		// #endif
 | ||
|  | 	} | ||
|  | 	// 余额支付
 | ||
|  | 	if (result.data.pay_type == 10) { | ||
|  | 		paySuccess(result, self, success); | ||
|  | 	} | ||
|  | 	// 支付宝支付
 | ||
|  | 	if (result.data.pay_type == 30) { | ||
|  | 		// #ifdef  APP-PLUS
 | ||
|  | 		aliAppPay(result, self, success, fail); | ||
|  | 		// #endif
 | ||
|  | 		// #ifdef  H5
 | ||
|  | 		self.gotoPage('/pages/order/alipay-h5/alipay-h5?order_id=' + result.data.order_id + '&order_type=' + result | ||
|  | 			.data.order_type); | ||
|  | 		// #endif
 | ||
|  | 	} | ||
|  | } | ||
|  | 
 | ||
|  | /*跳到支付成功页*/ | ||
|  | function paySuccess(result, self, success) { | ||
|  | 	if (success) { | ||
|  | 		success(result); | ||
|  | 		return; | ||
|  | 	} | ||
|  | 	gotoSuccess(result, self); | ||
|  | } | ||
|  | /*跳到支付成功页*/ | ||
|  | function gotoSuccess(result, self) { | ||
|  | 	self.gotoPage('/pages/order/myorder', 'reLaunch'); | ||
|  | } | ||
|  | 
 | ||
|  | /*支付失败跳订单详情*/ | ||
|  | function payError(result, fail, self) { | ||
|  | 	if (fail) { | ||
|  | 		fail(result); | ||
|  | 		return; | ||
|  | 	} | ||
|  | 	self.gotoPage('/pages/order/myorder', 'reLaunch'); | ||
|  | } | ||
|  | 
 | ||
|  | function wxAppPay(result, self, success, fail) { | ||
|  | 	// 获取支付通道  
 | ||
|  | 	plus.payment.getChannels(function(channels) { | ||
|  | 		self.channel = channels[0]; | ||
|  | 		console.log(self.channel); | ||
|  | 		console.log(result.data); | ||
|  | 		uni.requestPayment({ | ||
|  | 			provider: 'wxpay', | ||
|  | 			orderInfo: result.data, | ||
|  | 			success(res) { | ||
|  | 				paySuccess(result, self, success); | ||
|  | 			}, | ||
|  | 			fail(error) { | ||
|  | 				console.log(error); | ||
|  | 				self.showError('订单未支付成功', () => { | ||
|  | 					payError(result, fail); | ||
|  | 				}); | ||
|  | 			}, | ||
|  | 		}); | ||
|  | 	}, function(e) { | ||
|  | 		console.log("获取支付通道失败:" + e.message); | ||
|  | 	}); | ||
|  | } | ||
|  | 
 | ||
|  | function aliAppPay(result, self, success, fail) { | ||
|  | 	console.log(result.data.payment); | ||
|  | 	uni.requestPayment({ | ||
|  | 		provider: 'alipay', | ||
|  | 		orderInfo: result.data.payment, | ||
|  | 		success(res) { | ||
|  | 			paySuccess(result, self, success); | ||
|  | 		}, | ||
|  | 		fail(error) { | ||
|  | 			console.log(error); | ||
|  | 			self.showError('订单未支付成功', () => { | ||
|  | 				payError(result, fail, self); | ||
|  | 			}); | ||
|  | 		}, | ||
|  | 	}); | ||
|  | } |