1var bankID = { 2 initialize: (qrCodeDivElement, qrCodeElement, bankIDPaDennaEnhetElement, felDivElement, dotNetHelper) => { 3 4 var orderRef; 5 var autoStartToken; 6 var qrStartToken; 7 var qrStartSecret; 8 9 var nonce; 10 11 var qrTimer; 12 var avbrytCollect = false; 13 14 var t = 0; 15 16 function Sign(message, messageNonVisible) { 17 18 $.getJSON("/bank-id-sign", { message: message, messageNonVisible: messageNonVisible }, function (result) { 19 orderRef = result.orderRef; 20 autoStartToken = result.autoStartToken; 21 qrStartToken = result.qrStartToken; 22 qrStartSecret = result.qrStartSecret; 23 24 t = 0; 25 26 $(qrCodeDivElement).show(); 27 $(felDivElement).hide(); 28 29 GetQRCode(); 30 31 qrTimer = setInterval(GetQRCode, 1000); 32 33 avbrytCollect = false; 34 35 setTimeout(Collect, 2000); 36 37 var iOS = (navigator.userAgent.toLowerCase().includes("iphone") 38 || navigator.userAgent.toLowerCase().includes("ipad") 39 || navigator.userAgent.toLowerCase().includes("ipod")); 40 41 if (iOS) { 42 $(bankIDPaDennaEnhetElement).attr("href", "https://app.bankid.com/?autostarttoken=" + autoStartToken + "&redirect=null"); 43 } 44 else { 45 $(bankIDPaDennaEnhetElement).attr("href", "bankid:///?autostarttoken=" + autoStartToken + "&redirect=null"); 46 } 47 }); 48 } 49 50 function GetQRCode() { 51 52 $.getJSON("/bank-id-get-qr-code", 53 { 54 qrStartToken: qrStartToken, 55 qrStartSecret: qrStartSecret, 56 t: t 57 }, 58 function (result) { 59 var qrCode = new QRCode({ 60 dim: 200, 61 msg: result.bankIDQRCode, 62 pad: 4, 63 64 pal: ["#193E4F", "#FFFFFF"] 65 }); 66 67 $(qrCodeElement).html(qrCode); 68 69 t++; 70 }); 71 } 72 73 function GetOrderRef() { 74 75 $.getJSON("/bank-id-get-order-ref", { nonce: nonce }, function (result) { 76 orderRef = result.orderRef; 77 78 Collect(); 79 }); 80 } 81 82 function Collect() { 83 84 $.ajax 85 ({ 86 type: "POST", 87 async: false, 88 cache: false, 89 timeout: 30000, 90 url: "/bank-id-collect", 91 dataType: "json", 92 data: { orderRef: orderRef }, 93 success: function (result) { 94 if (result.Status == 'pending') { 95 if (!avbrytCollect) { 96 setTimeout(Collect, 2000); 97 } 98 } 99 else if (result.Status == 'complete') { 100 clearInterval(qrTimer); 101 102 dotNetHelper.invokeMethodAsync('SignComplete', result); 103 } 104 else { 105 console.log(result.Status); 106 console.log(result.HintCode); 107 108 $(qrCodeDivElement).hide(); 109 $(felDivElement).show(); 110 } 111 }, 112 }); 113 } 114 115 return { 116 start: (message, messageNonVisible) => { 117 var locationArr = window.location.href.split("#") 118 119 if (locationArr.length > 1) { 120 var nonceArr = locationArr[1].split("="); 121 122 if (nonceArr.length > 1) { 123 nonce = nonceArr[1]; 124 } 125 } 126 127 if (!nonce) { 128 Sign(message, messageNonVisible); 129 } 130 else { 131 GetOrderRef(); 132 } 133 }, 134 cancel: () => { 135 clearInterval(qrTimer); 136 } 137 138 } 139 } 140}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.