lex 2 vuotta sitten
vanhempi
commit
8de8eaf7ed
2 muutettua tiedostoa jossa 22 lisäystä ja 4 poistoa
  1. 19 1
      src/student/payment-result/index.tsx
  2. 3 3
      src/views/adapay/pay-result/index.tsx

+ 19 - 1
src/student/payment-result/index.tsx

@@ -19,7 +19,7 @@ import icon_success from './images/icon_success.png'
 import iconClose from './images/icon_close.png'
 import iconTradeing from './images/icon_tradeing.png'
 import request from '@/helpers/request'
-import { useRoute } from 'vue-router'
+import { useRoute, useRouter } from 'vue-router'
 import { orderStatus } from '@/constant'
 import { browser, moneyFormat } from '@/helpers/utils'
 import { useEventListener, useWindowScroll } from '@vueuse/core'
@@ -29,6 +29,7 @@ export default defineComponent({
   name: 'payment-result',
   setup() {
     const route = useRoute()
+    const router = useRouter()
     const state = reactive({
       refund: route.query.refund,
       orders: {} as any,
@@ -161,6 +162,19 @@ export default defineComponent({
       }
     }
 
+    const popStateEvent = () => {
+      const ua = window.navigator.userAgent.toLowerCase()
+      if (browser().weixin) {
+        // 关闭微信
+        ;(window as any).WeixinJSBridge.call('closeWindow')
+      } else if (ua.indexOf('alipay') != -1) {
+        // 关闭支付宝
+        ;(window as any).AlipayJSBridge.call('closeWebview') // 支付宝浏览器
+      } else {
+        router.back()
+      }
+    }
+
     onMounted(() => {
       getDetails()
       getDefaultParams()
@@ -176,6 +190,10 @@ export default defineComponent({
           state.backIconColor = 'white'
         }
       })
+
+      if (browser().weixin) {
+        window.addEventListener('popstate', popStateEvent, false)
+      }
     })
     return () => (
       <div class={styles.paymentResult}>

+ 3 - 3
src/views/adapay/pay-result/index.tsx

@@ -80,9 +80,9 @@ export default defineComponent({
         //
         console.log(e)
         // 接口报错也跳转到支付回调页
-        // window.location.replace(
-        //   location.origin + '/orchestra-student/#/payment-result?orderNo=' + state.orderNo
-        // )
+        window.location.replace(
+          location.origin + '/orchestra-student/#/payment-result?orderNo=' + state.orderNo
+        )
       }
     }