فهرست منبع

ios支付页面

JXDS18FUJT 10 ماه پیش
والد
کامیت
eab94c371b
2فایلهای تغییر یافته به همراه76 افزوده شده و 5 حذف شده
  1. 32 3
      src/utils/phone.ts
  2. 44 2
      src/views/yeNing/index.vue

+ 32 - 3
src/utils/phone.ts

@@ -30,11 +30,13 @@ class Phone {
     displayRow() {
         if (this.isIos()) {
             try {
+                //@ts-ignore
                 window.webkit.messageHandlers.displayRow.postMessage('displayRow')
             } catch (error) {
                 console.log(error)
             }
         } else if (this.isAndroid()) {
+            //@ts-ignore
             window.android && window.android.displayRow()
         }
     }
@@ -42,17 +44,20 @@ class Phone {
     displayCol() {
         if (this.isIos()) {
             try {
+                //@ts-ignore
                 window.webkit.messageHandlers.displayRow.postMessage('displayCol')
             } catch (error) {
                 console.log(error)
             }
         } else if (this.isAndroid()) {
+            //@ts-ignore
             window.android && window.android.displayCol()
         }
     }
     backView() {
         if (this.isIos()) {
             try {
+                //@ts-ignore
                 window.webkit.messageHandlers.backView.postMessage('backView')
             } catch (error) {
                 console.log(error)
@@ -62,14 +67,15 @@ class Phone {
                 // alert('运行前')
                 // console.log('运行前')
                 // console.log(typeof window.android.backView)
+                //@ts-ignore
                 window.WebViewJavascriptBridge && window.WebViewJavascriptBridge.callHandler(
                     'backView'
                     , { 'param': '返回的方法' }
-                    , function (responseData) {
-                        
+                    , function () {
+
                     }
                 );
-
+                //@ts-ignore
                 window.android && window.android.backView()
                 // alert('运行后')
             } catch (error) {
@@ -77,5 +83,28 @@ class Phone {
             }
         }
     }
+    //ios 内购的方法
+    ipyCallgo() {
+        if (this.isIos()) {
+            try {
+                //@ts-ignore eslint-disable-next-line
+                window.webkit.messageHandlers.ipyCallgo.postMessage('ipyCallgo')
+            } catch (error) {
+                console.log(error)
+            }
+        }
+    }
+    //微信购买的方法
+    spyCallgo(universalLink: string) {
+        if (this.isIos()) {
+            try {
+                //@ts-ignore
+                window.webkit.messageHandlers.spyCallgo.postMessage(universalLink)
+            } catch (error) {
+                console.log(error)
+            }
+        }
+    }
+
 }
 export default Phone

+ 44 - 2
src/views/yeNing/index.vue

@@ -3,8 +3,51 @@
 </template>
 
 <script lang="ts">
+import Phone from "@/utils/phone";
 import axios from "axios";
 import { defineComponent } from "vue";
+type iosOrderUserInfo = {
+  id: string;
+  nickName: string;
+  pxkm: string;
+  loginCode: string;
+  apsw: string;
+};
+const myPhone = new Phone();
+//@ts-ignore
+window.iosOrder = (dictCode: string, userInfoStr: string) => {
+  let userInfoObj: iosOrderUserInfo = JSON.parse(userInfoStr);
+
+  if (Number(userInfoObj.apsw) == 0) {
+    request({
+      url: "https://jsjp-admin.zzxcx.net/jsjp-admin/open-api/wxjs/prepareOrder",
+      method: "post",
+      data: {
+        dictCode,
+        userId: userInfoObj.id,
+        phoneType: myPhone.isIos() ? 1 : 2,
+      },
+    }).then((res: any) => {
+      myPhone.spyCallgo(
+        `weixin://app/wx606fa102dbc4b8ab/pay/?nonceStr=${
+          res.data.data.nonceStr
+        }&package=${window.encodeURIComponent(res.data.data.packageValue)}&partnerId=${
+          res.data.data.partnerId
+        }&prepayId=${res.data.data.prepayId}&timeStamp=${
+          res.data.data.timeStamp
+        }&sign=${window.encodeURIComponent(
+          res.data.data.sign
+        )}&signType=SHA1&_wechat_sdk_support_url_params=1`
+      );
+    });
+  } else if (Number(userInfoObj.apsw) == 1) {
+    window.setTimeout(() => {
+      myPhone.ipyCallgo();
+    }, 2500);
+  }
+  //open-api/wxjs/prepareOrder
+  // alert('调用了iosOrder')
+};
 const request = axios.create();
 export default defineComponent({
   setup() {
@@ -24,9 +67,8 @@ export default defineComponent({
         window.location.href = res.data.data.h5_url;
       });
     };
-
     return {
-        h5Pay
+      h5Pay,
     };
   },
 });