Transfer
Sample Codes
JavaScript (Node.js)

JavaScript (Node.js)

Encrypt

const CryptoJS = require("crypto-js");
 
function AESEncrypt(data, aesKey, aesIv) {
  const key = CryptoJS.enc.Utf8.parse(aesKey);
  const iv = CryptoJS.enc.Utf8.parse(aesIv);
  const encrypted = CryptoJS.AES.encrypt(data.trim(), key, {
    iv,
    padding: CryptoJS.pad.ZeroPadding,
  }).toString();
  return base64EncodeUrl(encrypted);
}
 
function base64EncodeUrl(str) {
  return str.replace(/\\+/g, "-").replace(/\\//g, "_").replace(/=+$/, "");
}
 
const data = "SampleData";
const encryptData = AESEncrypt(data,  $ { KEY }, $ { IV });
console.log(encryptData);

Decrypt

const CryptoJS = require("crypto-js");
 
function AesDecrypt(encryptedString, aesKey, aesIv) {
  const key = CryptoJS.enc.Utf8.parse(aesKey);
  const iv = CryptoJS.enc.Utf8.parse(aesIv);
  const decrypted = CryptoJS.AES.decrypt(
    base64DecodeUrl(encryptedString.trim()),
    key,
    {
      iv,
      padding: CryptoJS.pad.ZeroPadding,
    }
  );
  return CryptoJS.enc.Utf8.stringify(decrypted);
}
 
function base64DecodeUrl(str) {
  str = (str + "===").slice(0, str.length + (str.length % 4));
  return str.replace(/-/g, "+").replace(/_/g, "/");
}
 
const encryptData = "GhKRVa6BHoOJAhjVYMKuFw";
const key = "key1234567Sample"; // $ { KEY }
const iv = "iv12345678Sample"; // $ { IV }
const decryptData = AesDecrypt(encryptData, key, iv);
console.log(decryptData); // return “SampleData”

Call API

Example: Action 47 Get Demo Game Launch URL

AESEncrypt: Please refer to the “Encrypt” sample code

const aesUtil = require("./AESEncrypt");
const axios = require("axios");
const qs = require("querystring");
const dc = $ { DC };
const key = $ { KEY };
const iv = $ { IV };
const apiUrl = $ { API URL };
const axiosInstance = axios.create({
  headers: { "Content-Type": "application/x-www-form-urlencoded" },
});
// prepare action 47 data
const data = {
  action: 47,
  ts: new Date().getTime(),
  lang: "en",
  gType: "0",
  mType: "8001",
  windowMode: "2",
};
const x = aesUtil.AESEncrypt(JSON.stringify(data), key, iv);
axiosInstance.post(apiUrl, qs.stringify({ dc, x })).then(({ data }) => {
  console.log("data:", data);
});