| 1 |
(function($) { |
| 2 |
|
| 3 |
/** |
| 4 |
* if form has Client Side Encryption key, hook its submit action for maybe encrypting |
| 5 |
* @param {jQuery.Event} event |
| 6 |
* @param {Number} form_id int ID of Gravity Forms form |
| 7 |
*/ |
| 8 |
$(document).on("gform_post_render", function(event, form_id) { |
| 9 |
$("#gform_" + form_id + "[data-gfeway-encrypt-key]").on("submit", maybeEncryptForm); |
| 10 |
}); |
| 11 |
|
| 12 |
/** |
| 13 |
* check form for conditions to encrypt sensitive fields |
| 14 |
*/ |
| 15 |
function maybeEncryptForm() { |
| 16 |
|
| 17 |
var frm = $(this); |
| 18 |
|
| 19 |
// don't encrypt if sending to the Recurring Payment XML API |
| 20 |
if (frm.find(".gfeway-recurring-active").length) { |
| 21 |
return true; |
| 22 |
} |
| 23 |
|
| 24 |
var key = frm.data("gfeway-encrypt-key"); |
| 25 |
|
| 26 |
function maybeEncryptField(field_selector) { |
| 27 |
var field = frm.find(field_selector); |
| 28 |
|
| 29 |
if (field.length && field.val().length) { |
| 30 |
var encrypted = eCrypt.encryptValue(field.val(), key); |
| 31 |
$("<input type='hidden'>").attr("name", field.data("gfeway-encrypt-name")).val(encrypted).appendTo(frm); |
| 32 |
field.val(""); |
| 33 |
} |
| 34 |
} |
| 35 |
|
| 36 |
maybeEncryptField("input[data-gfeway-encrypt-name='EWAY_CARDNUMBER']"); |
| 37 |
maybeEncryptField("input[data-gfeway-encrypt-name='EWAY_CARDCVN']"); |
| 38 |
|
| 39 |
return true; |
| 40 |
|
| 41 |
} |
| 42 |
|
| 43 |
})(jQuery); |
| 44 |
|
| 45 |
|