(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"); })();