0% found this document useful (0 votes)
24 views25 pages

UserBet Tokenization Process

This document contains JavaScript functions for handling tokenization, validation, and styling of payment card fields. It defines functions for: 1) Getting properties of a token scheme based on its name or value 2) Creating a TokenScheme object 3) Setting values like the session ID, risk request model, and user-defined styles 4) Checking field validity, formatting errors, and posting results to a parent window 5) Tokenizing a payment card by sending a request to the server 6) Initializing Forter fraud prevention by sending additional details to their service
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
24 views25 pages

UserBet Tokenization Process

This document contains JavaScript functions for handling tokenization, validation, and styling of payment card fields. It defines functions for: 1) Getting properties of a token scheme based on its name or value 2) Creating a TokenScheme object 3) Setting values like the session ID, risk request model, and user-defined styles 4) Checking field validity, formatting errors, and posting results to a parent window 5) Tokenizing a payment card by sending a request to the server 6) Initializing Forter fraud prevention by sending additional details to their service
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

"use strict";

function getTokenSchemeProperties(n) {
var r = [Link]().toLowerCase(), t = {
baseRegEx: "^.{1,1000}$",
limitInput: [Link]
}, u, i;
try {
if (isNaN(r))
typeof tokenSchemes[r] != "undefined" && ([Link] =
tokenSchemes[r].baseRegEx,
[Link] = tokenSchemes[r].limitInput);
else
for (u = [Link](tokenSchemes),
i = 0; i < [Link]; i++)
tokenSchemes[u[i]].value == r && ([Link] =
tokenSchemes[u[i]].baseRegEx,
[Link] = tokenSchemes[u[i]].limitInput)
} catch (f) {
return t
}
return t
}
function TokenScheme(n, t, i) {
[Link] = n;
[Link] = t;
[Link] = i
}
function setKountSessionId(n) {
[Link] = [Link]
}
function setFraudServicesRiskRequestModel(n) {
[Link] = n
}
function setUserDefinedStyles(n) {
if ("base"in n &&
[Link]([Link]("input {" + [Link] +
"}")),
"focus"in n &&
[Link]([Link]("input:focus {" +
[Link] + "}")),
"error"in n &&
[Link]([Link]("[Link] {" +
[Link] + "}")),
"placeholder"in n &&
([Link]([Link]("input::placeholder
{" + [Link] + "}")),
[Link]([Link]("input::-webkit-
input-placeholder {" + [Link] + "}")),
[Link]([Link]("input::-moz-
placeholder {" + [Link] + "}")),
[Link]([Link]("input:-ms-input-
placeholder {" + [Link] + "}")),
[Link]([Link]("input:-moz-
placeholder {" + [Link] + "}"))),
isDetokenizeIframe)
var t = setInterval(function() {
try {
getCvvWindow() && (setUserDefinedCvvStyles(n),
clearInterval(t))
} catch (i) {
log(i)
}
}, 5);
else
[Link] && "cvv"in n && ("base"in [Link] &&
[Link]([Link]("input {" +
[Link] + "}")),
"focus"in [Link] &&
[Link]([Link]("input:focu
s {" + [Link] + "}")),
"error"in [Link] &&
[Link]([Link]("[Link]
r {" + [Link] + "}")),
"placeholder"in [Link] &&
([Link]([Link]("input::pl
aceholder {" + [Link] + "}")),

[Link]([Link]("input::-
webkit-input-placeholder {" + [Link] + "}")),

[Link]([Link]("input::-
moz-placeholder {" + [Link] + "}")),

[Link]([Link]("input:-ms-
input-placeholder {" + [Link] + "}")),

[Link]([Link]("input:-
moz-placeholder {" + [Link] + "}"))))
}
function setUserDefinedCvvStyles(n) {
var t = getCvvWindow();
"cvv"in n && ("base"in [Link] &&
[Link]([Link]("input {" +
[Link] + "}")),
"focus"in [Link] &&
[Link]([Link]("input:focus {" +
[Link] + "}")),
"error"in [Link] &&
[Link]([Link]("[Link] {" +
[Link] + "}")),
"placeholder"in [Link] &&
([Link]([Link]("input::placeholde
r {" + [Link] + "}")),
[Link]([Link]("input::-
webkit-input-placeholder {" + [Link] + "}")),
[Link]([Link]("input::-moz-
placeholder {" + [Link] + "}")),
[Link]([Link]("input:-ms-
input-placeholder {" + [Link] + "}")),
[Link]([Link]("input:-moz-
placeholder {" + [Link] + "}"))))
}
function checkValidity(n, t) {
var i = {
event: "validate",
data: {
isValid: !0
}
}, r, u;
return (n === undefined && (n = !1),
t === undefined && (t = !1),
[Link]) ? ([Link] = !1,
[Link]() ? [Link]() ? ([Link] = !0,
[Link]()) : ([Link](),
[Link] = "format") : ([Link](),
[Link] = "required"),
ariaRequired && setAriaInvalid(![Link]),
postToParent(i),
[Link]) : [Link] || [Link] ? ([Link] = !1,
[Link]() ? [Link]() ? [Link] = !0 : (t
&& [Link](),
[Link] = "format") : (t && [Link](),
[Link] = "required"),
[Link] && ([Link] = !1,
r = currentDataType !== undefined && currentDataType !== null ?
[Link] : !0,
u = [Link](/[^0-9]/g, ""),
r && ![Link]() ? (n && [Link](),
[Link] = "required") : (r || u !== "") && !
[Link]() ? (n && [Link](),
[Link] = "format") : ([Link] = !0,
n && [Link]())),
[Link] && ([Link](),
[Link] = currentDataType !== undefined && currentDataType !== null ?
[Link] : "unknown",
[Link] = [Link]([Link]),
[Link] = [Link]([Link])),
ariaRequired && (setAriaInvalid(![Link]),
setAriaInvalidCvv(![Link])),
postToParent(i),
[Link] ? [Link] && [Link] : [Link]) :
([Link] = !1,
[Link]() ? [Link]() ?
[Link]() ? ([Link](),
[Link] = !0,
[Link] = [Link]) : ([Link](),
[Link] = "customRegEx") : ([Link](),
[Link] = "format") : ([Link](),
[Link] = "required"),
ariaRequired && setAriaInvalid(![Link]),
postToParent(i),
[Link])
}
function tokenize() {
if (!posting && ![Link]) {
if ([Link]) {
if ([Link] === previousData &&
[Link] === previousCvv && previousResponse && !newAttempt) {
postToParent({
event: "tokenize",
data: previousResponse
});
return
}
} else if ([Link] === previousData && previousResponse && !
newAttempt) {
postToParent({
event: "tokenize",
data: previousResponse
});
return
}
newAttempt = !1;
var t = new XMLHttpRequest
, n = {};
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] && ([Link] = [Link]);
[Link] && ([Link] = [Link]);
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
n.use3DS = [Link];
[Link] =
[Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] =
[Link];
[Link] = [Link];
[Link] = typeof currentDataType != "undefined" &&
currentDataType !== null ? [Link] : !0;
[Link]("POST", [Link], !0);
[Link]("Content-Type", "application/json");
[Link] = function() {
if ([Link] === 4 && [Link] === 200) {
posting = !1;
var n = parseJSON([Link]);
[Link] ? postToParent({
event: "error",
data: n
}) : (([Link] || [Link]) && ([Link] = typeof
currentDataType != "undefined" && currentDataType !== null ? [Link] :
"unknown"),
postToParent({
event: "tokenize",
data: n
}),
previousData = [Link],
previousResponse = n,
[Link] && (previousCvv = [Link]))
}
}
;
posting = !0;
[Link]([Link](n))
}
}
function callForterInit(n) {
var t, i, r;
n === forterPreviousCC && postToParent({
event: "forterInit",
data: forterPreviousResponse
});
t = new XMLHttpRequest;
i = {};
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = [Link];
[Link] = n;
[Link] = [Link];
[Link] = [Link];
[Link] = forterSiteId;
[Link] = forterUsername;
r = [Link] + [Link] + "/Forter" +
[Link];
[Link]("POST", r, !0);
[Link]("Content-Type", "application/json");
[Link] = function() {
var i, r;
[Link] === 4 && [Link] === 200 ? (posting = !1,
i = parseJSON([Link]),
[Link] ? postToParent({
event: "error",
data: i
}) : (r = [Link],
postToParent({
event: "forterInit",
data: parseJSON(r)
}),
forterPreviousResponse = r,
forterPreviousCC = n)) : [Link] === 4 && [Link] !== 200 &&
postToParent({
event: "error",
data: "Forter Init3DS error: " + [Link]
})
}
;
posting = !0;
[Link]([Link](i))
}
function enableValidateOnBlur() {
validateOnBlur = !0
}
function setAriaInvalid(n) {
[Link]("aria-invalid", n)
}
function setAriaInvalidCvv(n) {
[Link]("aria-invalid", n)
}
function messageListener(n) {
var i, t;
n && [Link] && (i = parseJSON([Link]),
i) && [Link] === [Link](",")[0] && (t = [Link],
t) && [Link](t) && commands[t].enabled && typeof
commands[t].func == "function" && commands[t].func(i)
}
function setAllowUnknownTypes() {
allowUnknownTypes = !0;
[Link] && ([Link] = !0)
}
function setCustomDataTypes(n) {
for (var r, i = n, u = !1, t = 0; t < [Link]; t++) {
for (i[t].luhnCheck === undefined ? i[t].luhnCheck = !0 : i[t].luhnCheck !
== undefined && (i[t].luhnCheck = typeof i[t].luhnCheck == "boolean" ?
Boolean(i[t].luhnCheck) : typeof i[t].luhnCheck == "string" && i[t].luhnCheck !==
"false"),
(i[t].cvvRequired === undefined || i[t].cvvRequired !== undefined &&
i[t].[Link]().toLowerCase() !== "true" &&
i[t].[Link]().toLowerCase() !== "false") && (i[t].cvvRequired = !0),
u = !1,
r = 1; r <= [Link] - 1; r++)
if ([Link][r].[Link]() ===
i[t].[Link]()) {
[Link](r, 1, i[t]);
u = !0;
break
}
u || [Link](i[t])
}
[Link]()
}
function setCustomRegEx(n) {
[Link] = n
}
function reset() {
[Link] && ([Link] = "",
[Link]());
previousData = null;
previousCvv = null;
previousResponse = null;
[Link] = "";
[Link]();
postToParent({
event: "reset",
data: {
value: !0
}
})
}
function setExpirationTimeout(n) {
clearTimeout(expirationTimeout);
expirationTimeout = setTimeout(function() {
postToParent({
event: "expired"
})
}, n * 1e3)
}
function setNewAttemptTimeout(n) {
clearTimeout(newAttemptTimeout);
newAttemptTimeout = setTimeout(function() {
newAttempt = !0;
setNewAttemptTimeout(n)
}, n * 1e3)
}
function setCvvBlur() {
[Link]()
}
function setBlur() {
if ([Link]()) {
var n = [Link]("iosFix");
n || (n = [Link]("input"),
[Link] = "button",
[Link] = "0px",
[Link] = "0px",
[Link] = "0",
[Link] = "0",
[Link] = "absolute",
[Link] = "-200%",
[Link] = "0px",
[Link]("id", "iosFix"),
[Link](n, [Link]));
[Link]();
[Link]()
} else
[Link]()
}
function setFocus() {
[Link]() ? [Link]() : [Link]()
}
function setCvvFocus() {
[Link]()
}
function enablePrettyFormat() {
if (isDetokenizeIframe) {
[Link]();
return
}
([Link] || [Link]) && [Link] === "text" &&
([Link]([Link], "keyup",
[Link]),
[Link]([Link], "change", [Link]),
[Link]([Link], "keydown", [Link]),
[Link]([Link], "keydown", [Link]),
[Link]([Link], "keyup",
[Link]),
[Link] = dataTypeMaxLength > 19 ? dataTypeMaxLength + 4 : 23)
}
function enableValidateOnKeyUp() {
validateOnKeyUp = !0
}
function enableValidateOnCvvKeyUp() {
validateOnCvvKeyUp = !0
}
function setType(n) {
[Link](n)
}
function setCvvType(n) {
[Link] && [Link](n)
}
function log(n) {
[Link] && debug && [Link]("TokenEx Iframe debug: " +
[Link](n))
}
function postToParent(n) {
log(n);
[Link] = [Link];
[Link]([Link](n), [Link](",")[0])
}
function loadValidation() {
if (!isDetokenizeIframe) {
var n = getTokenSchemeProperties([Link]());
[Link] = [Link];
[Link] = [Link]
}
}
function setCvvWindow() {
cvvWindow = getCvvWindow();
[Link]([Link], "blur",
[Link]);
[Link]([Link], "focus",
[Link]);
[Link]([Link], "change",
[Link]);
[Link]([Link], "keyup",
[Link]);
[Link] = 4;
cvvLoaded = !0
}
function getCvvWindow() {
return [Link]["tx_iframe_cvv_" + [Link]]
}
function setNameToCardNumber() {
[Link]("name", "cardNumber")
}
function cvv_init() {
try {
getCvvWindow() && (setCvvWindow(),
postToParent({
event: "load",
data: {
value: !0
}
}),
clearInterval(messageInterval))
} catch (n) {
log(n)
}
}
function setMode() {
var n = [Link] !== null && [Link]() ===
"true"
, r = [Link]() === "true"
, t = [Link] !== null && [Link]() === "cvv"
, u = [Link] !== null && [Link]() === "data"
, i = [Link] !== null && [Link]() === "true";
r ? [Link] = !0 : n && t && i ? [Link] = !0 : n && u && i ? [Link]
= !0 : n ? [Link] = !0 : isDetokenizeIframe && t ? [Link] = !0 : [Link] = !0
}
function page_init() {
if ([Link]) {
postToParent({
event: "error",
data: parseJSON([Link])
});
return
}
setMode();
[Link](window, "focus", [Link]);
[Link] || ([Link] ? addEventListener("message",
messageListener, !1) : attachEvent("onmessage", messageListener),
isDetokenizeIframe || [Link] === "False" ||
[Link]([Link], "change",
[Link]));
[Link] ? ([Link]([Link], "keyup",
[Link]),
[Link]([Link], "keydown", [Link]),
[Link]([Link], "focus", [Link]),
[Link]([Link], "change", [Link]),
[Link]([Link], "blur", [Link]),
[Link] = 4,
postToParent({
event: "load",
data: {
value: !0
}
})) : [Link] ? ([Link]([Link], "keyup",
[Link]),
[Link]([Link], "keydown", [Link]),
[Link]([Link], "keyup", [Link]),
[Link]([Link], "focus", [Link]),
[Link]([Link], "change", [Link]),
[Link]([Link], "blur", [Link]),
setNameToCardNumber(),
messageInterval = setInterval(cvv_init, 5)) : [Link] ?
([Link]([Link], "keyup", [Link]),
[Link]([Link], "keydown", [Link]),
[Link] = 4) : [Link] ? ([Link]([Link],
"keyup", [Link]),
[Link]([Link], "keydown", [Link]),
[Link]([Link], "keyup", [Link]),
[Link]([Link], "focus", [Link]),
[Link]([Link], "change", [Link]),
[Link]([Link], "blur", [Link]),
setNameToCardNumber(),
postToParent({
event: "load",
data: {
value: !0
}
})) : (loadValidation(),
[Link]([Link], "keyup", [Link]),
[Link]([Link], "focus", [Link]),
[Link]([Link], "change", [Link]),
[Link]([Link], "blur", [Link]),
postToParent({
event: "load",
data: {
value: !0
}
}));
setExpirationTimeout(timeoutInSeconds);
setNewAttemptTimeout(newAttemptTimeout)
}
function getQueryObject() {
if (!queryObject && (queryObject = {},
[Link])) {
var n = [Link](1).split("&");
[Link](function(n) {
var t = [Link]("=")
, i = decodeURIComponent(t[0])
, r = decodeURIComponent(t[1]);
queryObject[i] = r
})
}
return queryObject
}
function parseJSON(n) {
try {
return [Link](n)
} catch (t) {
return null
}
}
function ready(n) {
[Link] ? [Link]("DOMContentLoaded", n) :
[Link]("onreadystatechange", function() {
[Link] === "complete" && n()
})
}
var elements = {}, mode = {
pii: !1,
pci: !1,
cvvonly: !1,
pcicvv: !1,
cvv: !1
}, currentDataType, previousCardType, debug = !1, posting = !1, validateOnBlur = !
1, previousData, previousCvv, previousResponse, allowUnknownTypes = !1, cvvLoaded =
!1, cvv = !1, cvvMode = !1, cvvOnlyMode = !1, cvvWindow, messageInterval,
dataTypeMaxLength = 19, ariaRequired = !1, forterSiteId, forterUsername,
forterPreviousResponse, forterPreviousCC, queryObject, validateOnKeyUp = !1,
validateOnCvvKeyUp = !1, initialInputType = "text", expirationTimeout,
tokenizeTimeoutDefault = getQueryObject().ExpiresInSeconds || 1200,
tokenizeTimeoutMax = getQueryObject().ExpiresInSeconds || 1200,
detokenizeTimeoutDefault = getQueryObject().ExpiresInSeconds || 20,
detokenizeTimeoutMax = 60, isDetokenizeIframe =
[Link]("detokenize") > -1, timeoutDefault =
isDetokenizeIframe ? detokenizeTimeoutDefault : tokenizeTimeoutDefault, timeoutMax
= isDetokenizeIframe ? detokenizeTimeoutMax : tokenizeTimeoutMax, timeoutInSeconds
= getQueryObject().ExpiresInSeconds || timeoutDefault, handlers;
timeoutInSeconds = [Link](timeoutInSeconds, timeoutMax);
var newAttemptTimeout = 300
, newAttempt = !1
, commands = {
reset: {
enabled: !0,
func: function() {
reset()
}
},
kountDataCollectionEnd: {
enabled: !0,
func: function(n) {
setKountSessionId([Link])
}
},
setFraudServicesRiskRequestModel: {
enabled: !0,
func: function(n) {
setFraudServicesRiskRequestModel([Link])
}
},
setStyle: {
enabled: !0,
func: function(n) {
setUserDefinedStyles([Link])
}
},
setPlaceholder: {
enabled: !0,
func: function(n) {
[Link] = [Link]
}
},
setCvvPlaceholder: {
enabled: !0,
func: function(n) {
[Link] = [Link]
}
},
setCardType: {
enabled: !0,
func: function(n) {
[Link] ?
([Link]([Link]([Link])),
[Link] = [Link]) :
([Link]([Link]("unknown")),
[Link] = [Link])
}
},
validate: {
enabled: !0,
func: function() {
checkValidity([Link], !0)
}
},
tokenize: {
enabled: !0,
func: function() {
!posting && checkValidity([Link], !0) && tokenize()
}
},
enablePrettyFormat: {
enabled: !0,
func: function() {
enablePrettyFormat()
}
},
enableDebug: {
enabled: !1,
func: function() {
debug = !0
}
},
setType: {
enabled: !0,
func: function(n) {
setType([Link])
}
},
setCvvType: {
enabled: !0,
func: function(n) {
setCvvType([Link])
}
},
focus: {
enabled: !0,
func: function() {
setFocus()
}
},
toggleMask: {
enabled: !0,
func: function() {
var n = [Link] === "password";
[Link] = n ? initialInputType : "password";
postToParent({
event: "toggleMask",
data: {
inputMasked: !n
}
})
}
},
toggleCvvMask: {
enabled: !0,
func: function() {
var n = [Link] === "password";
[Link] = n ? initialInputType : "password";
postToParent({
event: "toggleCvvMask",
data: {
cvvInputMasked: !n
}
})
}
},
cvvFocus: {
enabled: !0,
func: function() {
setCvvFocus()
}
},
blur: {
enabled: !0,
func: function() {
setBlur()
}
},
cvvBlur: {
enabled: !0,
func: function() {
setCvvBlur()
}
},
setCustomRegEx: {
enabled: !0,
func: function(n) {
setCustomRegEx([Link])
}
},
enableValidateOnBlur: {
enabled: !0,
func: function() {
enableValidateOnBlur()
}
},
enableAriaRequired: {
enabled: !0,
func: function() {
ariaRequired = !0;
[Link]("aria-required", !0);
[Link] && [Link]("aria-required", !
0)
}
},
enableForterIntegration: {
enabled: !0,
func: function(n) {
forterSiteId = [Link];
forterUsername = [Link]
}
},
enableUnknownCardTypes: {
enabled: !0,
func: function() {
setAllowUnknownTypes()
}
},
setCustomDataTypes: {
enabled: !0,
func: function(n) {
setCustomDataTypes([Link])
}
},
enableAutoComplete: {
enabled: !0,
func: function() {
[Link] = [Link] ? "cc-csc" : "cc-number";
[Link] && ([Link] = "cc-csc")
}
},
enableValidateOnKeyUp: {
enabled: !0,
func: function() {
enableValidateOnKeyUp()
}
},
enableValidateOnCvvKeyUp: {
enabled: !0,
func: function() {
enableValidateOnCvvKeyUp()
}
},
setFont: {
enabled: !0,
func: function(n) {
var e = "[Link] +
[Link], t = [Link](":"), s = decodeURI(t[0]).replace("+", " "), o = "normal",
r = 0, u, i, f;
if ([Link] > 1) {
t = t[1].split(",");
for (u in t)
if (t[u] == "ital")
o = "italic";
else {
if (i = parseInt(t[u]),
isNaN(i))
continue;
i > r && (r = i)
}
}
f = "input { font-family: '" + s + "'; font-weight: " + (r || "normal")
+ "; font-style: " + o + "; }";
[Link] || ([Link] =
[Link]("link"),
[Link] = "stylesheet",
[Link]([Link]));
[Link] || ([Link] =
[Link]("style"),
[Link]([Link]));
[Link] && ![Link] &&
([Link] = [Link]("link"),
[Link] = "stylesheet",

[Link]([Link]));
[Link] && ![Link] &&
([Link] = [Link]("style"),
[Link]([Link]));
[Link] && ([Link] = e,
[Link] = f);
[Link] = e;
[Link] = f
}
},
setInputMode: {
enabled: !0,
func: function(n) {
var t;
if ([Link] && [Link] !== "undefined") {
switch ([Link]()) {
case "text":
t = "text";
break;
case "decimal":
t = "decimal";
break;
case "numeric":
t = "numeric";
break;
case "tel":
t = "tel";
break;
case "search":
t = "search";
break;
case "email":
t = "email";
break;
case "url":
t = "url";
break;
case "none":
t = "none";
break;
default:
t = "text"
}
[Link]("inputmode", t);
[Link] && [Link]("inputmode", t)
}
}
}
}
, dataTypeCollection = {
getDataTypes: function(n) {
for (var i = [Link][0], t = 1; t <= [Link] - 1; t++)
if ([Link][t].[Link]() === [Link]()) {
i = [Link][t];
break
}
return i
},
setDataTypeMaxLength: function() {
for (var t = 19, n = 1; n <= [Link] - 1; n++)
[Link][n].maxLength > t && (t = [Link][n].maxLength);
dataTypeMaxLength = parseInt(t);
[Link] = dataTypeMaxLength
},
dataTypes: [{
type: "unknown",
validRegex: "^\\d{13,19}$",
possibleRegEx: "^\\d{13,19}$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3,4}$",
cvvMaxLength: 4,
cvvRequired: !0
}, {
type: "diners",
validRegex: "^3(0[0-5]|[68]\\d)\\d{11,16}$",
possibleRegEx: "^3(0[0-5]|[68]\\d)\\d{0,16}$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3}$",
cvvMaxLength: 3,
cvvRequired: !0
}, {
type: "jcb",
validRegex: "^35(28|29|[3-8]\\d)\\d{12,15}$",
possibleRegEx: "^35(28|29|[3-8]\\d)\\d{0,15}$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3}$",
cvvMaxLength: 3,
cvvRequired: !0
}, {
type: "americanExpress",
validRegex: "^3[47]\\d{13,17}$",
possibleRegEx: "^3[47]\\d{0,17}$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{4}$",
cvvMaxLength: 4,
cvvRequired: !0
}, {
type: "discover",
validRegex: "^(6011|65\\d{2}|64[4-9]\\d)\\d{12,15}|^(62\\d{14,17})$",
possibleRegEx: "^(6011|65\\d{2}|64[4-9]\\d)\\d{0,15}|^(62\\d{0,17})$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3}$",
cvvMaxLength: 3,
cvvRequired: !0
}, {
type: "masterCard",
validRegex: "^(5[1-5]\\d{4}|677189|222[1-9]\\d{2}|22[3-9]\\d{3}|2[3-6]\\
d{4}|27[01]\\d{3}|2720\\d{2})\\d{10,13}$",
possibleRegEx: "^(5[1-5]\\d{4}|677189|222[1-9]\\d{2}|22[3-9]\\d{3}|2[3-6]\\
d{4}|27[01]\\d{3}|2720\\d{2})\\d{0,13}$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3}$",
cvvMaxLength: 3,
cvvRequired: !0
}, {
type: "visa",
validRegex: "^4\\d{12}(\\d{3})?(\\d{3})?$",
possibleRegEx: "^4\\d{0,12}(\\d{3})?(\\d{3})?$",
luhnCheck: !0,
maxLength: 19,
cvvValidRegex: "^[0-9]{3}$",
cvvMaxLength: 3,
cvvRequired: !0
}]
}
, util = {
addEventListener: function(n, t, i) {
[Link] ? [Link](t, i, !1) : [Link]("on" + t,
function() {
[Link](n)
})
},
removeEventListener: function(n, t, i) {
[Link] && [Link](t, i, !1);
[Link] && [Link]("on" + t, i)
},
hasClass: function(n, t) {
return (" " + [Link] + " ").indexOf(" " + t + " ") > -1
},
removeError: function() {
[Link]([Link], "error") && [Link]([Link],
"error")
},
addError: function() {
[Link]([Link], "error") || [Link]([Link],
"error")
},
preventDefault: function(n) {
var t = n !== undefined ? n : [Link];
return [Link] ? [Link]() : [Link] = !1,
t
},
addClass: function(n, t) {
n && ([Link] ? [Link](t) : [Link] += " " + t)
},
removeClass: function(n, t) {
n && ([Link] ? [Link](t) : [Link] =
[Link](new RegExp("(^|\\b)" + [Link](" ").join("|") + "(\\b|
$)","gi"), " "))
},
getLastFour: function(n) {
var t = [Link](/[^0-9]/g, "");
return [Link] > 4 ? [Link]([Link] - 4) : ""
},
getFirstSix: function(n) {
var t = [Link](/[^0-9]/g, "");
return [Link] > 6 ? [Link](0, 6) : ""
},
getFirstEight: function(n) {
var t = [Link](/[^0-9]/g, "");
return [Link] >= 16 ? [Link](0, 8) : ""
},
isIos: function() {
return /iPhone|iPod|iPad/.test([Link])
},
isFirefox: function() {
return /firefox/.test([Link]())
},
arrayContains: function(n, t) {
return [Link](n) > -1
},
between: function(n, t, i) {
return n >= t && n <= i
},
which: function(n) {
return [Link] || [Link]
},
setValue: function(n, t) {
var f, i, r, e, u;
try {
i = [Link]
} catch (o) {
i = null
}
if (u = [Link],
[Link] = n,
i !== null && t === [Link]) {
i === [Link] && (i = [Link]);
u !== n && (e = [Link](i - 1, +i + 1 || 9e9),
f = [Link](i - 1, +i + 1 || 9e9),
r = n[i],
/\d/.test(r) && e === "" + r + " " && f === " " + r && (i = i + 1));
[Link](t, i);
return
}
},
setCaretPosition: function(n, t) {
if (typeof n != "undefined" && n !== null)
if ([Link]) {
var i = [Link]();
[Link]("character", t);
[Link]()
} else
[Link] ? ([Link](),
[Link](t, t)) : [Link]()
},
hasTextSelected: function(n) {
var t;
return [Link] !== null && [Link] !== [Link] ? !
0 : (typeof document != "undefined" && document !== null ? (t = [Link])
!= null ? [Link] : void 0 : void 0) != null &&
[Link]().text ? !0 : !1
},
setType: function(n) {
if (n === "number") {
[Link] = "number";
[Link] = "numeric";
[Link]("min", "0");
initialInputType = n;
return
}
if (n === "tel") {
[Link] = "tel";
[Link] = "tel";
initialInputType = n;
return
}
if (n === "password") {
[Link] = "password";
return
}
}
}
, interactions = {
doNotLimitInput: function() {
return !0
},
limitInputToNumeric: function(n) {
var t = [Link]
, i = [Link];
return [Link] = [Link](/[^0-9]/g, ""),
!0
},
limitInputToAlphaNumeric: function() {
var n = [Link]
, t = [Link];
return [Link] = [Link](/[^a-zA-Z0-9]/g, ""),
!0
},
handleBackSpace: function(n) {
if ([Link](n) === 8 && [Link](n) === 46) {
var i = [Link]
, t = [Link]
, r = [Link];
(r === null || r === [Link]) && (/\d\s$/.test(t) ?
([Link](),
[Link] = [Link](/\d\s$/, "")) : /\s\d?$/.test(t) &&
([Link](),
[Link] = [Link](/\d$/, "")))
}
},
limitLength: function(n) {
var i, r, t, u;
[Link] || [Link](n) !== 8 && [Link](n) !== 46 && [Link](n) !
== 9 && ([Link](n) >= 35 && [Link](n) <= 40 || (i = [Link],
r = [Link](/[^0-9]/g, ""),
[Link](i)) || (t = dataTypeMaxLength,
allowUnknownTypes ? t = dataTypeMaxLength > 19 ? dataTypeMaxLength : 19 :
typeof currentDataType != "undefined" && currentDataType !== null && (t =
dataTypeMaxLength > parseInt([Link]) ? dataTypeMaxLength :
parseInt([Link])),
([Link] || [Link]) && (t = typeof currentDataType != "undefined" &&
currentDataType !== null ? parseInt([Link]) : 4,
allowUnknownTypes && (t = 4)),
[Link] && [Link] && (u =
[Link]([Link]),
[Link](n=>{
var i = parseInt([Link][n].value);
t = i !== 0 ? setCardMaxLengths() : dataTypeMaxLength
}
)),
[Link] === t && [Link](n)))
},
prettyprintkeyUpHandler: function(n) {
if ((![Link] || [Link](n) !== 65) && (![Link] || [Link](n) !
== 67))
if ([Link]([Link](n), 48, 111) || [Link]([Link](n),
186, 222) || [Link](n) === 229)
[Link]();
else
return
},
formatCreditCard: function() {
var n = [Link](/[^0-9]/g, ""), r =
[Link](n), u = !1, i = dataTypeMaxLength > 19 ?
dataTypeMaxLength : 19, f, t;
return r !== null && (u = [Link] === "americanExpress",
[Link](r),
i = [Link],
allowUnknownTypes && !u && (i = dataTypeMaxLength > 19 ? dataTypeMaxLength
+ 4 : 19)),
f = [Link]([Link], i),
n = [Link](0, f),
t = [],
[Link]([Link](0, 4)),
u ? ([Link] >= 5 && [Link]([Link](4, 10)),
[Link] >= 11 && [Link]([Link](10, i))) : ([Link] >= 5 &&
[Link]([Link](4, 8)),
[Link] >= 9 && [Link]([Link](8, 12)),
[Link] >= 13 && [Link]([Link](12, 16)),
[Link] >= 17 && [Link]([Link](16, 19)),
[Link] >= 20 && [Link]([Link](19, i))),
[Link]([Link](" "), [Link]),
!0
}
}
, setCardMaxLengths = function() {
var t = [Link], i, n;
if (t = [Link](/[^0-9]/g, ""),
i = [Link](t),
n = dataTypeMaxLength,
[Link] && [Link])
switch ([Link]) {
case "visa":
n = [Link];
break;
case "masterCard":
n = [Link];
break;
case "americanExpress":
n = [Link];
break;
case "discover":
n = [Link];
break;
case "jcb":
n = [Link];
break;
case "diners":
n = [Link]
}
return parseInt(n)
}
, validations = {
required: function() {
return !![Link]
},
cvvValidate: function() {
var n = [Link](/[^0-9]/g, "");
return allowUnknownTypes || currentDataType !== undefined &&
currentDataType !== null && [Link] !== "unknown" ?
[Link]([Link]) : [Link] === 3
},
validate: function() {
return [Link]([Link])
},
customValidate: function() {
return [Link] > 0 ?
[Link]([Link]) : !0
},
baseRegEx: "",
customRegEx: "",
limitInput: [Link],
panValidate: function() {
var i = [Link](/[^0-9]/g, "")
, n = !0
, t = [Link](i);
return [Link](t),
t === null && (n = !1),
t !== null && [Link] === "unknown" && (n = allowUnknownTypes),
n && [Link]([Link]()) &&
[Link] && (n = [Link](i)),
n
},
luhnCheck: function(n) {
for (var f, u = 0, t = 0, i = !1, r = [Link] - 1; r >= 0; r--)
f = [Link](r),
t = parseInt(f, 10),
i && (t *= 2) > 9 && (t -= 9),
u += t,
i = !i;
return u % 10 == 0
},
getPossibleCardType: function(n) {
for (var i = [Link]("unknown"), t =
[Link] - 1; t >= 0; t--)
if ([Link]([Link][t].possibleRegEx)) {
i = [Link][t];
break
}
return i
},
getCardType: function(n) {
for (var i = [Link]("unknown"), t =
[Link] - 1; t >= 0; t--)
if ([Link]([Link][t].validRegex)) {
i = [Link][t];
break
}
return i
},
setCurrentCardType: function(n) {
n == null && (n = [Link]("unknown"));
currentDataType = n;
[Link] && ([Link] = n)
}
}
, tokenSchemes = {
sixtokenfour: new TokenScheme(1,"^[0-9]
{13,19}$",[Link]),
fourtokenfour: new TokenScheme(2,"^[0-9]
{13,19}$",[Link]),
tokenfour: new TokenScheme(3,"^[0-9]
{13,19}$",[Link]),
guid: new TokenScheme(4,"^.{1,1000}$",[Link]),
ssn: new TokenScheme(5,"^[0-9]{9}$",[Link]),
nguid: new TokenScheme(6,"^[0-9]{1,1000}$",[Link]),
ntokenfour: new TokenScheme(7,"^[0-9]
{8,38}$",[Link]),
ntoken: new TokenScheme(8,"^[0-9]{4,38}$",[Link]),
sixantokenfour: new TokenScheme(9,"^[a-zA-Z0-9]
{14,38}$",[Link]),
fourantokenfour: new TokenScheme(10,"^[a-zA-Z0-9]
{12,38}$",[Link]),
antokenfour: new TokenScheme(11,"^[a-zA-Z0-9]
{8,38}$",[Link]),
antoken: new TokenScheme(12,"^[a-zA-Z0-9]
{4,38}$",[Link]),
antokenauto: new TokenScheme(13,"^[a-zA-Z0-9]
{4,38}$",[Link]),
asciitokenfour: new TokenScheme(14,"^.{8,38}$",[Link]),
asciitoken: new TokenScheme(15,"^.{4,38}$",[Link]),
sixasciitokenfour: new TokenScheme(16,"^.
{14,38}$",[Link]),
fourasciitokenfour: new TokenScheme(17,"^.
{12,38}$",[Link]),
asciitokenauto: new TokenScheme(18,"^.{4,38}$",[Link]),
sixntokenfour: new TokenScheme(19,"^[0-9]
{14,38}$",[Link]),
fourntokenfour: new TokenScheme(20,"^[0-9]
{12,38}$",[Link]),
ntokenauto: new TokenScheme(21,"^[0-9]
{8,38}$",[Link]),
token: new TokenScheme(22,"^.{4,1000}$",[Link]),
sixtokenfournonluhn: new TokenScheme(23,"^[0-9]
{13,19}$",[Link]),
fourtokenfournonluhn: new TokenScheme(24,"^[0-9]
{13,19}$",[Link]),
tokenfournonluhn: new TokenScheme(25,"^[0-9]
{13,19}$",[Link]),
pci: new TokenScheme(26,"^[0-9]{13,19}$",[Link]),
ascii: new TokenScheme(27,"^.{5,128}$",[Link]),
ntokenfour1to1: new TokenScheme(28,"^[0-9]
{8,38}$",[Link]),
antoken4: new TokenScheme(29,"^[0-9]
{9,512}$",[Link]),
antoken512: new TokenScheme(30,"^[0-9]
{5,512}$",[Link]),
threetwo: new TokenScheme(32,"^[0-9]{9}$",[Link]),
eiantoken: new TokenScheme(9e3,"^[a-zA-Z0-9]
{6,38}$",[Link]),
ninenineeighteight: new TokenScheme(9988,"^[0-9]
{3,17}$",[Link])
};
handlers = {
windowFocus: function() {
[Link]()
},
focusHandler: function() {
postToParent({
event: "focus",
data: {
value: !0
}
})
},
changeHandler: function() {
postToParent({
event: "change",
data: {
value: !0
}
})
},
cvvChangeHandler: function() {
postToParent({
event: "cvvChange",
data: {
value: !0
}
})
},
cvvFocusHandler: function() {
postToParent({
event: "cvvFocus",
data: {
value: !0
}
})
},
cvvBlurHandler: function() {
validateOnBlur && checkValidity(!0, !1);
postToParent({
event: "cvvBlur",
data: {
value: !1
}
})
},
cvvKeyUpHandler: function() {
validateOnCvvKeyUp && checkValidity(!0, !1)
},
blurHandler: function() {
validateOnBlur && checkValidity(!1, !0);
postToParent({
event: "blur",
data: {
value: !1
}
})
},
keyupHandler: function() {
var n, t;
validateOnKeyUp && checkValidity(!1, !0);
n = [Link];
n = [Link](/[^0-9]/g, "");
t = [Link](n);
previousCardType !== [Link] && (previousCardType = [Link],
postToParent({
event: "cardTypeChange",
data: {
possibleCardType: previousCardType
}
}),
[Link] && (currentDataType = [Link]("unknown")),
[Link] && (currentDataType =
[Link]("unknown"),
[Link] = t));
[Link] >= 13 && forterSiteId && [Link] > 0 && forterUsername
&& [Link] > 0 && callForterInit(n)
},
submitHandler: function(n) {
return [Link](n),
!1
},
returnAutoCompleteValuesHandler: function() {
postToParent({
event: "autoCompleteValues",
data: {
nameOnCard: [Link],
cardExp: [Link]
}
});
setTimeout(()=>{
[Link] =
[Link],
[Link] =
[Link]
}
, 500)
}
};
ready(function() {
elements = {
data: [Link]("data"),
origin: [Link]("origin"),
containerID: [Link]("containerID"),
userDefinedStyle: [Link]("userDefinedStyle"),
error: [Link]("error"),
pciMode: [Link]("pciMode"),
enforceLuhnCompliance: [Link]("enforceLuhnCompliance"),
tokenScheme: [Link]("tokenScheme"),
token: [Link]("token"),
timestamp: [Link]("timestamp"),
authenticationKey: [Link]("authenticationKey"),
tokenExID: [Link]("tokenExID"),
cvvContainerID: [Link]("cvvContainerID"),
cvvOnly: [Link]("cvvOnly"),
cvv: [Link]("cvv"),
mode: [Link]("mode"),
returnKhash: [Link]("returnKhash"),
use3DS: [Link]("use3DS"),
threeDSMethodNotificationUrl:
[Link]("threeDSMethodNotificationUrl"),
useKount: [Link]("useKount"),
kountMerchantId: [Link]("kountMerchantId"),
kountSessionId: [Link]("kountSessionId"),
fraudServicesRiskRequestModel:
[Link]("fraudServicesRiskRequestModel"),
returnAutoCompleteValues:
[Link]("returnAutoCompleteValues"),
autoCompleteCardName: [Link]("cc-name"),
autoCompleteCardExp: [Link]("cc-exp"),
head: [Link]("head")[0],
cardMaxLengths: {
visa: [Link]("visa"),
mastercard: [Link]("mastercard"),
americanExpress: [Link]("americanExpress"),
discover: [Link]("discover"),
jcb: [Link]("jcb"),
diners: [Link]("diners")
}
};
page_init()
});

You might also like