| 
					
				 | 
			
			
				@@ -1,6 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import request from '@/helpers/request'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { browser, getUrlCode, moneyFormat } from '@/helpers/utils'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { goWechatAuth } from '@/state'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { goAliAuth, goWechatAuth } from '@/state'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import numeral from 'numeral'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { Button, Cell, CellGroup, Icon, showToast } from 'vant'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { defineComponent, onMounted, reactive } from 'vue'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17,11 +17,14 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       code: null as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       pay_channel: route.query.pay_channel as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       wxAppId: route.query.wxAppId as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      paymentType: route.query.paymentType as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      alipayAppId: route.query.alipayAppId as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       body: route.query.body as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       price: route.query.price as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       orderNo: route.query.orderNo as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       userId: route.query.userId as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      payInfo: {} as any 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      payInfo: {} as any, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      isYeePay: false // 是否为易宝支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const getPayment = async () => { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -39,7 +42,6 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (state.pay_channel == 'wx_pub') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           payMap.code = state.code; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log(payMap, 'payMap'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const { data } = await request.post( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           '/edu-app/open/userOrder/executePayment', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -50,7 +52,7 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        console.log(data, 'payment'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        state.isYeePay = data.paymentVender?.indexOf('yeepay') !== -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         scanCodePay(data.reqParams); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } catch (e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -61,17 +63,23 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const scanCodePay = (data: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // 判断支付方式 如果是 test 模式 支付用测试url 否则用生产url 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (state.pay_channel == 'alipay_qr') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const url = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          data.prod_mode === 'false' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ? data.expend.qrcode_url + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              '?payment_id=' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              data.id + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              '&pay_channel=' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              data.pay_channel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            : data.expend.qrcode_url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        window.location.href = url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (state.isYeePay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          tradePay(data.tradeNO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const url = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data.prod_mode === 'false' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ? data.expend.qrcode_url + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '?payment_id=' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                data.id + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                '&pay_channel=' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                data.pay_channel 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              : data.expend.qrcode_url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          window.location.href = url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } else if (state.pay_channel == 'wx_pub') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const tempPayInfo = JSON.parse(data.expend.pay_info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const tempPayInfo = state.isYeePay 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          ? JSON.parse(data.prePayTn) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          : JSON.parse(data.expend.pay_info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         state.payInfo = tempPayInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (typeof (window as any).WeixinJSBridge == 'undefined') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (document.addEventListener) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -94,6 +102,42 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 由于js的载入是异步的,所以可以通过该方法,当AlipayJSBridgeReady事件发生后,再执行callback方法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const ready = (callback: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if ((window as any).AlipayJSBridge) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        callback && callback(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        document.addEventListener('AlipayJSBridgeReady', callback, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const tradePay = (tradeNO: any) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ready(function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 通过传入交易号唤起快捷调用方式(注意tradeNO大小写严格) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (window as any).AlipayJSBridge.call( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'tradePay', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            tradeNO: tradeNO 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          function (data: any) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if ('9000' == data.resultCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              window.location.replace( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                location.origin + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  '/classroom-app/#/payment-result?orderNo=' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  state.orderNo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              window.location.replace( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                location.origin + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  '/classroom-app/#/payment-result?orderNo=' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  state.orderNo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //使用的支付宝内置api实现关闭H5 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            (window as any).AlipayJSBridge.call('closeWebview'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const onBridgeReady = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const payInfo = state.payInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // let orderNo = state.orderNo 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -146,15 +190,14 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const init = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const pay_channel = state.pay_channel; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const isYeePay = state.paymentType.indexOf('yeepay') !== -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (browser().weixin) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (pay_channel === 'wx_pub') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           //授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const code = getUrlCode(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          console.log(code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             state.code = code; // 赋值code码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // goAuth() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             goWechatAuth(state.wxAppId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           state.browserStatus = true; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -167,6 +210,13 @@ export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           state.errorText = '请使用微信扫码'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else if (pay_channel == 'alipay_qr') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           // 支付宝支付 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          //授权 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const code = getUrlCode('auth_code'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (code) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            state.code = code; // 赋值code码 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            goAliAuth(state.alipayAppId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           state.browserStatus = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           document.title = '支付宝支付'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 |