Browse Source

微信支付和登录成功回调

chenritian 2 weeks ago
parent
commit
c28577c2fe

+ 16 - 0
entry/src/main/ets/pages/Index.ets

@@ -8,6 +8,7 @@ import { yTBindSheet } from '../utils/YTBindSheet';
 import { ContextHelper } from '../utils/ContextHelper';
 import { YTRequest } from '../apis/YTRequest';
 import { jDBViewModel } from '../viewModels/JDBViewModel';
+import { router } from '@kit.ArkUI';
 
 @Entry
 @Component
@@ -57,6 +58,21 @@ struct Index {
     await jDBViewModel.checkDeviceChannel()
   }
 
+  onBackPress(): boolean | void {
+    if (jDBViewModel.isExistDeviceChannel && jDBViewModel.flag) {
+      try {
+        if (jDBViewModel.controller.accessBackward()) {
+          jDBViewModel.controller.backward()
+        }
+      } catch (e) {
+        router.back()
+      }
+    } else {
+      router.back()
+    }
+    return true
+  }
+
   build() {
     Stack() {
 

+ 9 - 0
entry/src/main/ets/utils/wechat/WXApiEventHandlerImpl.ets

@@ -2,6 +2,7 @@ import { IBestToast } from '@ibestservices/ibest-ui';
 import { BaseReq, BaseResp, LaunchFromWXReq, PayResp, SendAuthResp, WXApiEventHandler } from '@tencent/wechat_open_sdk';
 import { WechatApi } from '../../apis/WechatApi';
 import { AccessTokenResponse, WeChatExtData } from '../../model/WechatModel';
+import { jDBViewModel } from '../../viewModels/JDBViewModel';
 import { YTLog } from '../YTLog';
 import { WechatUtil } from './WechatUtil';
 
@@ -58,6 +59,10 @@ export class WXApiEventHandlerImpl implements WXApiEventHandler {
     if (resp instanceof SendAuthResp) {
       if (resp.errCode === 0 && resp.code) {
         YTLog.info(TAG, `WeChat login success, code: ${resp.code}`);
+        jDBViewModel.runJavaScript({
+          type: 'wx_login',
+          data: resp
+        })
         this.handleLoginSuccess(resp.code);
       } else {
         YTLog.error(TAG, `WeChat login failed, errCode: ${resp.errCode}, errStr: ${resp.errStr}`);
@@ -66,6 +71,10 @@ export class WXApiEventHandlerImpl implements WXApiEventHandler {
       }
     } else if (resp instanceof PayResp) {
       // 支付回调处理
+      jDBViewModel.runJavaScript({
+        type: 'wx_pay',
+        data: resp
+      })
       console.log('微信支付结果', JSON.stringify(resp));
     }
   }

+ 1 - 0
entry/src/main/ets/viewModels/JDBViewModel.ets

@@ -14,6 +14,7 @@ export class JDBViewModel {
   host: string = ''
   jDBItem: JDBObj = new JDBObj()
 
+
   /**
    * 判断渠道是否存在
    */