export default async function getRiskPromptVerifyResult()

in packages-fetcher/console-fetcher-risk-prompt/src/util/handle-risk-prompt-dialog-submit/get-risk-prompt-verify-result/index.ts [35:116]


export default async function getRiskPromptVerifyResult({
  dialogData,
  dialogSubmitProps,
  updateErrorMessage,
  setRiskCanceledErrorProps
}: IProps): Promise<IRiskPromptVerifyResult | null> {
  try {
    const {
      dialogSubmitType
    } = dialogSubmitProps;
    const {
      oldMainOrMpkData,
      subVerificationParamArray,
      currentSubVerificationDeviceType
    } = dialogData;
  
    switch (dialogSubmitType) {
      // MPK 类型账号风控验证
      case ERiskType.MPK: {
        const {
          accountId, codeType, verifyType
        } = dialogSubmitProps;
  
        const mpkVerifyResult = await verifyMpk({
          accountId,
          codeType,
          verifyType,
          oldMainOrMpkData
        });
  
        return mpkVerifyResult;
      }
      // 子账号风控验证
      case ERiskType.NEW_SUB: {
        const subValidatorsVerifyResult = await verifySubValidators({
          subVerificationParamArray,
          currentSubVerificationDeviceType,
          updateErrorMessage
        });
  
        return subValidatorsVerifyResult;
      }
      // 旧版主账号或 MPK 降级
      case ERiskType.OLD_MAIN: {
        const {
          verifyType
        } = dialogSubmitProps;
        const {
          code, requestId
        } = oldMainOrMpkData ?? {};
  
        return {
          verifyType,
          verifyCode: code || '',
          requestId: requestId || ''
        };
      }
      default: {
        return null;
      }
    }
  } catch (error) {
    const {
      code = '', name = '', message
    } = error as FetcherError;
    const isExpectedError = COMMON_EXPECTED_ERROR.includes(code) || IDENTITY_EXPECTED_ERROR.includes(code);

    // 判断错误是否是非预期错误,需要排除网络错误
    if (!isExpectedError && !NETWORK_ERROR.includes(name)) {
      const unexpectedErrorType = dialogSubmitProps.dialogSubmitType === ERiskType.MPK ? EUnexpectedErrorType.MPK_RISK_VERIFY_FAILED : EUnexpectedErrorType.SUB_RISK_VERIFY_FAILED;

      setRiskCanceledErrorProps({
        unexpectedErrorType,
        unexpectedErrorCode: code || name
      });
    }

    updateErrorMessage(message);

    return null;
  }
}