메서드

Wepin PIN Pad Library 초기화 이후 사용할 수 있습니다.

generateRegistrationPINBlock

await wepinPin.generateRegistrationPINBlock()

사용자의 지갑생성 및 회원가입을 위해 필요한 PIN을 입력 받을 수 있는 핀 패드 화면을 띄우고 입력받은 PIN을 처리하여 PIN Block을 생성합니다.

Parameters

  • <void>

Return value

  • Promise <RegistrationPinBlock>

    • UVD <EncUVD>

      • b64Data <string> b64SKey의 원본키로 암호화된 데이터

      • b64SKey <string> b64Data 를 생성할때 사용하는 키

      • seqNum <number> optional PIN Block 사용시 순서대로 사용되었는지 확인하기 위한 값

    • hint <EncPinHint>

      • data <string> PIN 힌트를 암호화한 값

      • length <string> PIN 힌트의 길이

      • version <number>

      PIN 힌트의 버전

Example

const pinBlock = await wepinPin.generateRegistrationPINBlock()

fetch({
  url: 'https://sdk.wepin.io/v1/app/register',
  method: 'POST',
  // Omit authentication headers
  body: {
    // Omit other bodies
    UVD: pinBlock.UVD,
    hint: pinBlock.hint,
  }
})

generateAuthPINBlock

await wepinPin.generateAuthPINBlock(count?)

사용자 인증에 필요한 PIN을 입력 받을 수 있는 핀 패드 화면을 띄우고 입력받은 PIN을 처리하여 PIN Block을 생성합니다.

사용자가 2FA(OTP)를 활성화한 경우에는, OTP 코드를 입력받을 수 있는 화면도 띄우고 처리합니다.

Parameters

  • count <number> optional

    생성하려는 PIN Block의 갯수. 기본값은 1 입니다.

Return value

  • Promise <AuthPinBlock>

    • UVDs <EncUVD[]> 암호화된 PIN Block의 리스트

      • UVD <EncUVD>

        • b64Data <string> b64SKey의 원본키로 암호화된 데이터

        • b64SKey <string> b64Data 를 생성할때 사용하는 키

        • seqNum <number> optional PIN Block 사용시 순서대로 사용되었는지 확인하기 위한 값. Multi Tx 요청시, 반드시 받은 PIN Block의 순서대로 사용해야 합니다.(1,2,3...)

    • otp <string> optional 사용자가 2FA(OTP) 를 활성화한 경우, 입력받은 OTP 코드

Example

const pinBlock = await wepinPin.generateAuthPINBlock(count)
// Sort seqNum of uvd in ascending order from 1 because I need to write it in order starting from 1
pinBlock.UVDs.sort((a, b) => (a.seqNum ?? 0) - (b.seqNum ?? 0))

const resArray: any[] = []
for (const encUVD of pinBlock.UVDs) {
  await fetch({
    url: 'https://sdk.wepin.io/v1/tx/sign',
    method: 'POST',
    body: {
      userId: await getUserId(),
      walletId: await getWalletId(),
      accountId: (await getEthereumAccount()).accountId,
      type: 'msg_sign',
      txData: {
        data: '0x0',
      },
      pin: encUVD,
      otpCode: {
        code: pinBlock.otp,
      },
    }
  })
}

generateChangePINBlock

await wepinPin.generateChangePINBlock()

사용자 PIN 변경을 위해 PIN을 입력 받을 수 있는 핀 패드 화면을 띄우고 입력받은 PIN을 처리하여 PIN Block을 생성합니다.

사용자가 2FA(OTP)를 활성화한 경우에는, OTP 코드를 입력받을 수 있는 화면도 띄우고 처리합니다.

Parameters

  • <void>

Return Value

  • Promise <ChangePinBlock>

    • UVD <EncUVD>

      • b64Data <string> b64SKey의 원본키로 암호화된 데이터

      • b64SKey <string> b64Data 를 생성할때 사용하는 키

      • seqNum <number> optional PIN Block 사용시 순서대로 사용되었는지 확인하기 위한 값

    • newUVD <EncUVD>

      • b64Data <string> b64SKey의 원본키로 암호화된 데이터

      • b64SKey <string> b64Data 를 생성할때 사용하는 키

      • seqNum <number> optional PIN Block 사용시 순서대로 사용되었는지 확인하기 위한 값.

    • hint <EncPinHint>

      • data <string> PIN 힌트를 암호화한 값

      • length <string> PIN 힌트의 길이

      • version <number> PIN 힌트의 버전

    • otp <string> optional 사용자가 2FA(OTP) 를 활성화한 경우, 입력받은 OTP 코드

Example

const pinBlock = await wepinPin.generateChangePINBlock()
const res = await fetch({
  url: 'https://sdk.wepin.io/v1/wallet/pin/change'
  body: {
    userId: await getUserId(),
    walletId: await getWalletId(),
    UVD: pinBlock.UVD,
    newUVD: pinBlock.newUVD,
    hint: pinBlock.hint,
    otpCode: {
      code: pinBlock.otp
    }
  }
})

generateAuthOTP

await wepinPin.generateAuthOTP()

사용자로부터 OTP 코드를 입력받을 수 있는 화면을 띄우고 처리합니다.

Parameters

  • <void>

Return Value

  • Promise<AuthOTP>

    • code <string> 입력받은 OTP 코드

Example

let res = await getWepinSignMessage(pinBlocks.UVDs, pinBlock.otp)
if (res.body[0].message === 'OTP_MISMATCH_WRONG_CODE') {
  const otp = await wepinPin.generateAuthOTP()
  res = await getWepinSignMessage(pinBlocks.UVDs, otp.code)
}

finalize

wepinPin.finalize()

Wepin PIN Pad Library 사용을 종료합니다.

Parameters

  • <void>

Return Value

  • <void>

Example

wepinPin.finalize()

Last updated