diff --git a/dlsmk/src/lib.rs b/dlsmk/src/lib.rs
index 909632f..c8b6cba 100644
--- a/dlsmk/src/lib.rs
+++ b/dlsmk/src/lib.rs
@@ -13,7 +13,7 @@
         let key = "wDp3/3NPEi+R0peokVv010GkDk1mRTp3tUB/lCEVRAA=";
         let key_buffer = base64::decode_config(key, base64::STANDARD).unwrap();
         let s = hex::encode(key_buffer.as_slice());
-        let key_string = hex::decode(format!("{}{:04x}{:02x}", s, 5, 3)).unwrap();
+        let key_string = hex::decode(format!("{}{:04x}{:02x}", s, 5, 10)).unwrap();
         println!(
             "key : {}",
             base64::encode_config(key_string, base64::URL_SAFE)
@@ -115,7 +115,6 @@
             }
         };
 
-
         match decoder.decode(qrcode.as_ptr(), qrcode.len(), offset as i32) {
             Ok(d) => {
                 put_data(&env, &qrdata, "cardno", &d.cardno);
@@ -183,12 +182,7 @@
             return JNI_FALSE;
         }
 
-        match dlqrcode::transaction_tac(
-            &cardno,
-            amount,
-            &termDatetime,
-            &qrsign
-        ) {
+        match dlqrcode::transaction_tac(&cardno, amount, &termDatetime, &qrsign) {
             Ok(tac) => {
                 put_data(&env, &result, "tac", &tac);
                 JNI_TRUE
