NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name VivaWalletCardSwipe // @namespace Gousgounis // @description Επιτρέπει την χρήση αναγνώστη μαγνητικής ταινίας για να συμπληρωθούν αυτόματα τα πεδία της φόρμας VirtualPOS στο επαγγελματικό Viva Wallet // @include https://members.vivawallet.com/selfcare/el-gr/sales/virtualpos // @version 1.2 // @license GPL-3.0+; http://www.gnu.org/licenses/gpl-3.0.txt // @grant none // ==/UserScript== function swipe_cc() { var card_data = window.prompt("Scan Card"); // See http://en.wikipedia.org/wiki/ISO/IEC_7813 var track1_regex = new RegExp("^%B([\\d]{1,19})\\^(.{2,26})\\^([\\d]{0,4}|\\^)([\\d]{0,3}|\\^).+"); var track2_regex = new RegExp(";([\\d]{1,19})\\=(\\d{4}|\\=)"); var track1_match = track1_regex.exec(card_data); var track2_match = track2_regex.exec(card_data); var number, name, expiry; if(track1_match) { number = track1_match[1]; name = track1_match[2]; expiry = track1_match[3]; } else if (track2_match) { number = track2_match[1]; name = ""; expiry = track2_match[2]; } else { window.alert('Could not read credit card data!'); return; } //expiry = expiry.substr(2, 2) + "/" + '20' + expiry.substr(0, 2); //inputs to be filled within WEBapp document.getElementById("Reference").value = "Πληρωμή με κάρτα"; document.getElementById("Email").value = ""; //για την απόδειξη document.getElementById("Description").value = "Παροχή υπηρεσίας μηχανικού"; document.getElementById("Mobile").value = ""; //Αυτό γιατί το θέλει; document.getElementById("CardNumber").value = number; //αριθμός κάρτας document.getElementById("FullName").value = name; //parsed document.getElementById("CardCVV").value = ""; // not present on magstripe var sel = document.getElementById('Year'); var opts = sel.options; for (var opt, j = 0; opt = opts[j]; j++) { if (opt.value == expiry.substr(0, 2)) { sel.selectedIndex = j; } } sel = document.getElementById('Month'); opts = sel.options; for (opt, j = 0; opt = opts[j]; j++) { if (opt.value == expiry.substr(2, 2)) { sel.selectedIndex = j; } } document.getElementById('SelectedSourceCode').selectedIndex = document.getElementById('SelectedSourceCode').length - 1; } var parseBTN = document.getElementsByTagName("button"); var iBTN; for (iBTN = 0; iBTN < parseBTN.length; iBTN++) { if (parseBTN[iBTN].innerHTML == "Προέγκριση Ποσού") { parseBTN[iBTN].innerHTML = "Προέγκριση Ποσού</button><button class=\"btn\" onclick=\"swipe_cc();\">Swipe"; //alert(parseBTN[iBTN].innerHTML); } }