You are on page 1of 5

CryptoMate Function

คูม่ ือการพัฒนาฟั งก์ชนั CryptoMate


Cryptomate เป็ นระบบที่ใช้ ในการเข้ ารหัสไฟล์ต่างๆ จากเครื่ องของ Client และอัปโหลด
ขึ ้นบนเว็บไซต์อตั โนมัติ โดย Cryptomate ถูกพัฒนาโดยใช้ ภาษา Java ในขันตอนของการใช้
้ งาน
เว็บไซต์จะต้ องทาการระบุ Library ที่ใช้ ในการเรี ยก Cryptomate เพื่อเปิ ดใช้ งาน และในเครื่ อง
Client จะต้ องทาการลงระบบ Cryptomate และระบุเว็บไซต์ที่ใช้ งาน Cryptomate บน Java
Security ซึง่ ขันตอนของการพั
้ ฒนามีดงั ต่อไปนี ้

ไฟล์ สำคัญที่ใช้ ในกำรพัฒนำ


1. ไฟล์ CryptoMateWI.jar เป็ น Library ที่ใช้ ในการเรี ยกใช้ งานตัว Crytomate บนเครื่ อง
Clinet
2. ไฟล์ CryptoMate.js เป็ นไฟล์ Javascript ที่ใช้ ในการ Config ค่าสาหรับการเรี ยกใช้ งาน
โปรแกรม CryptoMate ในส่วนของการตั ้งค่าจะทาการอธิบายในส่วนถัดไป

ขัน้ ตอนกำรพัฒนำ CrytoMate


ขันตอนการพั
้ ฒนา CrytoMate มีขนตอนการท
ั้ างานดังต่อไปนี ้

1. ทาการนาเข้ าไฟล์ CryptoMateWI.jar ไปใน Project


2. ทาการนาเข้ าไฟล์ CryptoMate.js ไปใน Project
3. ทาการแก้ ไขค่า Config ในไฟล์ CryptoMate.js โดยมีรายละเอียดของไฟล์ในการแก้ ไข
ดังต่อไปนี ้
ไฟล์ CryptoMate.js
document.writeln('<PARAM NAME="InputFileURL" VALUE="http://localhost:45539/xml/">');
document.writeln('<PARAM NAME="OutputFileURL"
VALUE="http://localhost:45539/UploadConfirmationReport/UploadFile">');
var codeBase = "http://localhost:45539/Content/CryptoMate";
var instanceName = "cryptoMate";
ค่า Config ของไฟล์ CryptoMate.js มีสว่ นที่ต้องตังค่
้ าดังต่อไปนี ้
Param Name คำอธิบำย คำแนะนำในกำรตัง้ ค่ ำ
InputFileURL เป็ น url ที่ใช้ เก็บไฟล์เพื่อใช้ url ของ Project ตามด้ วย Folder ที่เก็บไฟล์ เช่น
สาหรับเข้ ารหัส http://localhost:80/xml/

OutputFileURL เป็ น url ที่ใช้ สาหรับ url ของ Project ตามด้ วยฟั งก์ชนั การอัปโหลดไฟล์
อัปโหลดไฟล์ที่ผา่ นการ (สามารถดูวิธีการเขียนอัปโหลดได้ ที่ข้อ 4)
เข้ ารหัสแล้ ว http://localhost:80/UploadConfirmationReport/Up
loadFile
codeBase เป็ น url ที่ใช้ ระบุ Folder ที่ ระบุ url ที่อยูข่ อง CryptoMateWI.jar ใน Project
เก็บไฟล์ CryptoMateWI.jar
instanceName เป็ นชื่อที่ใช้ ในการเรี ยกใช้ ปกติจะตัง้ Default ไว้ ที่ cryptoMate ไม่มีความ
งาน Crytomate จาเป็ นต้ องเปลี่ยน

4. ทาการสร้ างฟั งก์ชนั สาหรับการอัปโหลดไฟล์เมื่อ Crytomate ทาการเข้ ารหัสเสร็จสิ ้น


ไฟล์ UploadConfirmationReport
[HttpPost]
public JsonResult UploadFile(object sender)
{
try
{
if (Request.Files != null && Request.Files.Count > 0)
{
string UploadFilePath = Server.MapPath(@"~/Outbox/");
System.IO.DirectoryInfo UploadFilePathDirectory = new
System.IO.DirectoryInfo(UploadFilePath);
Request.Files[0].SaveAs(UploadFilePathDirectory.FullName +
Request.Files[0].FileName);
Response.Write("<b>SUCCESSFULLY_UPLOAD_FILE");

var spltFile = Request.Files[0].FileName.Split('.');

using (var db = new SystemDataClassesDataContext())


{
var DocumentControl = db.DocumentControls.SingleOrDefault(i =>
i.DocumentName == spltFile[0]);
DocumentControl.Status = "Send";

db.SubmitChanges();

var cominfo = db.CompanyInfos.Where(i => i.DocumentControlId ==


DocumentControl.Id).ToList();
for (int i = 0; i < cominfo.Count; i++)
{
var Declareinfo = db.DeclarationInfos.Where(o =>
o.CompanyInfoId == cominfo[i].Id).ToList();

for (int j = 0; j < Declareinfo.Count; j++)


{
Declareinfo[j].Status = "Send";
db.SubmitChanges();

var Declarecontrol = db.DeclarationControls.Where(o =>


o.DeclarationNumber == Declareinfo[j].DeclarationLineNumber).FirstOrDefault();
Declarecontrol.Status = "Send";
db.SubmitChanges();

var DocumentDetail = db.DocumentDetails.Where(o =>


o.DeclarationInfoId == Declareinfo[j].Id).ToList();
for (int k = 0; k < DocumentDetail.Count; k++)
{
DocumentDetail[k].Status = "Send";
db.SubmitChanges();
}

var DeclareDetail = db.DeclarationDetails.Where(o =>


o.DeclarationControl_Id == Declarecontrol.Id).ToList();
for (int k = 0; k < DocumentDetail.Count; k++)
{
DocumentDetail[k].Status = "Send";
db.SubmitChanges();
}

}
}
}

return Json(new
{
IsSuccess = true,
PathFile = "Done",
NameFile = Request.Files[0].FileName
});
}

else
{
return Json(new
{
IsSuccess = false,
ErrorMessage = "ไม่พบข้อมูล"
});
}

}
catch (Exception ex)
{
return Json(new
{
IsSuccess = false,
ErrorMessage = ex.Message
});
}
}

กำรเรี ยกใช้ งำน CrytoMate


การเรี ยกใช้ งาน CrytoMate บนเว็บไซต์จะเรี ยกผ่าน Javascript โดยเรี ยกใช้ ดงั ต่อไปนี ้

var errorCode = cryptoMate.CSJSSign(data.parameter, data.parameter);


if (errorCode == "0" || errorCode == "1") {
//กรณีไม่ม ี Error
}
else {
var errorText = cryptoMate.getErrorMessage();
//กรณีมี Error
}

ในกรณีที่ Crytomate ทางานได้ ปกติจะอยูใ่ น Condition ของ If ในกรณีที่ทางานผิดพลาด Crytomate


จะ return Errortext ออกมา ใน Condition else

สิ่งสำคัญในกำรใช้ งำน Crytomate


1. Crytomate จะสามารถรันได้ บน IE เท่านัน้
2. ขันตอนของการลง
้ Crytomate บนเครื่ อง Client ต้ อง มีการเพิ่ม URL ของเว็บไซต์ที่ใช้ งาน Crytomate
ไปใน Java Security ด้ วย

You might also like