(function () {
if (window.__echeckPaymentPatchInstalled) {
return;
}
window.__echeckPaymentPatchInstalled = true;
const originalAppend = FormData.prototype.append;
const originalSet = FormData.prototype.set;
function fixParams(value) {
try {
if (typeof value !== "string") {
return value;
}
const params = JSON.parse(value);
const isPayment =
params &&
params.action === "E-Commerce Payment" &&
params.card_info;
const isEcheck =
isPayment &&
params.card_info.payment_method === "check";
if (!isEcheck) {
return value;
}
console.log("eCheck payment patch: fixing payload");
delete params.card_info.exp_month;
delete params.card_info.exp_year;
delete params.card_info.cvv;
delete params.card_info.card_number;
return JSON.stringify(params);
} catch (e) {
return value;
}
}
FormData.prototype.append = function (name, value, filename) {
if (name === "params") {
value = fixParams(value);
}
if (arguments.length === 3) {
return originalAppend.call(this, name, value, filename);
}
return originalAppend.call(this, name, value);
};
FormData.prototype.set = function (name, value, filename) {
if (name === "params") {
value = fixParams(value);
}
if (arguments.length === 3) {
return originalSet.call(this, name, value, filename);
}
return originalSet.call(this, name, value);
};
console.log("eCheck payment FormData patch installed");
})();