收藏
回答

鸿蒙接入微信支付,支付成功后客户端onResp未回调

鸿蒙接入微信支付,支付成功后客户端onResp未回调

import * as wxopensdk from '@tencent/wechat_open_sdk';
import {CommonConstant} from '../common/CommonConstant'

export type OnWXReq = (req: wxopensdk.BaseReq) => void
export type OnWXResp = (resp: wxopensdk.BaseResp) => void

const kTag = "WXApiEventHandlerImpl"

class WXApiEventHandlerImpl implements wxopensdk.WXApiEventHandler {
  private onReqCallbacks: Map<OnWXReq, OnWXReq> = new Map
  private onRespCallbacks: Map<OnWXResp, OnWXResp> = new Map

  registerOnWXReqCallback(on: OnWXReq) {
    this.onReqCallbacks.set(on, on)
  }
  unregisterOnWXReqCallback(on: OnWXReq) {
    this.onReqCallbacks.delete(on)
  }

  registerOnWXRespCallback(on: OnWXResp) {
    this.onRespCallbacks.set(on, on)
  }
  unregisterOnWXRespCallback(on: OnWXResp) {
    this.onRespCallbacks.delete(on)
  }

  onReq(req: wxopensdk.BaseReq): void {
    wxopensdk.Log.i(kTag, "onReq:%s", JSON.stringify(req))
    this.onReqCallbacks.forEach((on) => {
      on(req)
    })
  }

  onResp(resp: wxopensdk.BaseResp): void {
    wxopensdk.Log.i(kTag, "onResp:%s", JSON.stringify(resp))
    this.onRespCallbacks.forEach((on) => {
      on(resp)
    })
  }
}

export const WXApi = wxopensdk.WXAPIFactory.createWXAPI(CommonConstant.WX_AppId)
export const WXEventHandler = new WXApiEventHandlerImpl



private wxApi = WXApi;
private wxEventHandler = WXEventHandler;
@State payResultText: string = ''
private onWXResp: OnWXResp = (resp) => {
  this.payResultText = JSON.stringify(resp ?? {}, null, 2)
}
aboutToAppear(): void {
  this.wxEventHandler.registerOnWXRespCallback(this.onWXResp)
}
aboutToDisappear(): void {
  this.wxEventHandler.unregisterOnWXRespCallback(this.onWXResp)
}


回答关注问题邀请回答
收藏

1 个回答

  • 支付社区运营
    支付社区运营
    02-27

    调下setLogImpl将日志转到你们自己的模块里或者自己打印下日志

    02-27
    有用
    回复
登录 后发表内容