diff --git a/payapi-common/build.gradle b/payapi-common/build.gradle
index d0cdb6d..a1776a5 100644
--- a/payapi-common/build.gradle
+++ b/payapi-common/build.gradle
@@ -36,6 +36,7 @@
     implementation 'javax.validation:validation-api:2.0.1.Final'
     implementation 'javax.servlet:javax.servlet-api:4.0.1'
     implementation 'commons-beanutils:commons-beanutils:1.9.3'
+    implementation 'commons-codec:commons-codec:1.13'
     implementation('org.springframework.boot:spring-boot-starter-validation:2.1.6.RELEASE')
 
     implementation 'org.hibernate:hibernate-validator:6.0.2.Final'
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/util/HMACUtil.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/util/HMACUtil.java
index f268646..06d7277 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/util/HMACUtil.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/util/HMACUtil.java
@@ -1,29 +1,17 @@
 package com.supwisdom.dlpay.api.util;
 
-import javax.crypto.Mac;
-import javax.crypto.spec.SecretKeySpec;
+import org.apache.commons.codec.binary.Hex;
+import org.apache.commons.codec.digest.HmacAlgorithms;
+import org.apache.commons.codec.digest.HmacUtils;
 
 public class HMACUtil {
   public static String sha256HMAC(String message, String secret) {
-    String hash = "";
-    try {
-      Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
-      SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256");
-      sha256_HMAC.init(secret_key);
-      byte[] bytes = sha256_HMAC.doFinal(message.getBytes());
-      hash = byteArrayToHexString(bytes);
-      System.out.println(hash);
-    } catch (Exception e) {
-      System.out.println("Error HmacSHA256 ===========" + e.getMessage());
-    }
-    return hash;
+    byte[] bytes = HmacUtils.getInitializedMac(HmacAlgorithms.HMAC_SHA_256, secret.getBytes())
+        .doFinal(message.getBytes());
+    return Hex.encodeHexString(bytes, true);
   }
 
   private static String byteArrayToHexString(byte[] bytes) {
-    StringBuilder builder = new StringBuilder();
-    for (byte b : bytes) {
-      builder.append(String.format("%02x", ((int) b) & 0xFF));
-    }
-    return builder.toString();
+    return Hex.encodeHexString(bytes, true);
   }
 }
diff --git a/payapi/build.gradle b/payapi/build.gradle
index f87ce15..ed8ce9b 100644
--- a/payapi/build.gradle
+++ b/payapi/build.gradle
@@ -85,8 +85,9 @@
     implementation group: 'com.sun.jersey', name: 'jersey-client', version: '1.19'
     implementation group: 'javax.servlet', name: 'jstl', version: '1.2'
     implementation group: 'taglibs', name: 'standard', version: '1.1.2'
-    implementation group: 'commons-codec', name: 'commons-codec', version: '1.6'
+    implementation group: 'commons-codec', name: 'commons-codec', version: '1.13'
     implementation files('libs/sms.jar')
+//    implementation files('libs/ojdbc6.jar')
     implementation 'commons-dbcp:commons-dbcp:1.4'
 
     implementation project(':payapi-common')
