🤹4. Get verification info

Fetch the verification information and use it for identity verification purposes.

Use the imp_uid obtained through identity verification to get the customer's verification information.

STEP 01. Get verification ID (imp_uid) on the server-side

The following server-side code fetches the data returned from identity verification.

server-side
app.use(bodyParser.json());
  ...
  // controller that handles POST request to "/certifications"
  app.post("/certifications", async (request, response) => {
    // Get imp_uid from req.body
    const { imp_uid } = request.body; 
})

STEP 02. Get verification information

To get verification information from the i'mport server, you must first get a REST API access token. Use the access token and imp_uid (verification ID) to call the Get identity verification info REST API that returns the verification information as follows:

sever-side
  app.use(bodyParser.json());
  ...
  // controller that handles POST request to "/certifications"
  app.post("/certifications", async (request, response) => {
    const { imp_uid } = request.body; // Get imp_uid from request.body
    try {
      // Get access token
      const getToken = await axios({
        url: "https://api.iamport.kr/users/getToken",
        method: "post", // POST method
        headers: { "Content-Type": "application/json" }, // "Content-Type": "application/json"
        data: {
          imp_key: "imp_apikey", // REST API Key
          imp_secret: "ekKoeW8RyKuT0zgaZsUtXXTLQ4AhPFW3ZGseDA6bkA5lamv9OqDMnxyeB9wqOsuO9W3Mx9YSJ4dTqJ3f" // REST API Secret
        }
      });
      const { access_token } = getToken.data.response; // Access token
      ...
      // Get verification info from i'mport server using imp_uid
      const getCertifications = await axios({
        url: \`https://api.iamport.kr/certifications/\${imp_uid}\`, // Pass imp_uid
        method: "get", // GET method
        headers: { "Authorization": access_token } // Add access token to Authorization header
      });
      const certificationsInfo = getCertifications.data.response; // Save verification info
      ...
    } catch(e) {
      console.error(e);
    }
  });

STEP 03. Using verification information

Retrieve the following user information from the verification information and add the necessary service logic.

  • name: name

  • gender: gender (to be supported)

  • birth: date of birth

  • unique_key: same as CI value - unique key to identify the user, such as online social security number.

  • unique_in_site: same as DI value - unique key to identify the user per Merchant ID (website).

unique_key and unique_in_site

Even if multiple credit cards are used to verify the same person, the same unique_key and unique_in_site values are returned for the cards under the same name.

Node.js
  // controller that handles POST request to "/certifications"
  app.post("/certifications", async (request, response) => {
    const { imp_uid } = request.body; // Get imp_uid from request.body
    try {
      // Get access token
      /* ...Omitted... */
      // Get verification info using imp_uid 
      /* ...Omitted... */
      const certificationsInfo = getCertifications.data.response; // Save verification info
      // unique_key: Unique key for user, unique_in_site: Unique key for user per site
      const { unique_key, unique_in_site, name, gender, birth } = certificationsInfo;
      ...
      // Check age restrictions
      if (new Date(birth).getFullYear() <= 1999) {
        // Check successful
      } else {
        // Check failed
      }
      ...
      // one account per person check
      // Query database with unique_key to check for existing account
      Users.find({ certificationKey: unique_key })
      .then((user) => {
        if (!user) {
          // New user
        } else {
          // Existing user
        }
      });
    } catch(e) {
      console.error(e);
    }
  });

Last updated