-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathindex.html
More file actions
64 lines (57 loc) · 30 KB
/
Copy pathindex.html
File metadata and controls
64 lines (57 loc) · 30 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<!DOCTYPE html><html><head><title>QR Payment</title></head>
<style>
body{margin:auto;width:400px}
</style>
<body>
<h1>Nhập thông tin, tạo QR chuyển khoản</h1>
<div action="" method="post" style="display: grid; max-width: 300px;">
<label for="taiKhoan">Tài khoản:</label>
<input type="text" id="taiKhoan" name="taiKhoan" value="2885999999"required>
<label for="nganhang">Tài khoản:</label>
<select id="maSoNH"></select>
<label for="soTien">Số tiền:</label>
<input type="number" id="soTien" name="soTien" min="10000" value="100000" required>
<label for="loiNhan">Lời nhắn:</label>
<textarea id="loiNhan" name="loiNhan" rows="5" cols="30">Chuyển 100.000 cho Phê!</textarea>
<button id="gui">Gửi thông tin</button>
</div>
<div id="img"></div>
<script type="text/javascript">
//qrcode.js
var qrcode=function(){var t=function(t,r){var e=t,n=f[r],o=null,i=0,a=null,u=[],c={},g=function(t,r){o=function(t){for(var r=new Array(t),e=0;e<t;e+=1){r[e]=new Array(t);for(var n=0;n<t;n+=1)r[e][n]=null}return r}(i=4*e+17),l(0,0),l(i-7,0),l(0,i-7),s(),h(),d(t,r),e>=7&&v(t),null==a&&(a=y(e,n,u)),w(a,r)},l=function(t,r){for(var e=-1;e<=7;e+=1)if(!(t+e<=-1||i<=t+e))for(var n=-1;n<=7;n+=1)r+n<=-1||i<=r+n||(o[t+e][r+n]=0<=e&&e<=6&&(0==n||6==n)||0<=n&&n<=6&&(0==e||6==e)||2<=e&&e<=4&&2<=n&&n<=4)},h=function(){for(var t=8;t<i-8;t+=1)null==o[t][6]&&(o[t][6]=t%2==0);for(var r=8;r<i-8;r+=1)null==o[6][r]&&(o[6][r]=r%2==0)},s=function(){for(var t=p.getPatternPosition(e),r=0;r<t.length;r+=1)for(var n=0;n<t.length;n+=1){var i=t[r],a=t[n];if(null==o[i][a])for(var u=-2;u<=2;u+=1)for(var f=-2;f<=2;f+=1)o[i+u][a+f]=-2==u||2==u||-2==f||2==f||0==u&&0==f}},v=function(t){for(var r=p.getBCHTypeNumber(e),n=0;n<18;n+=1){var a=!t&&1==(r>>n&1);o[Math.floor(n/3)][n%3+i-8-3]=a}for(n=0;n<18;n+=1){a=!t&&1==(r>>n&1);o[n%3+i-8-3][Math.floor(n/3)]=a}},d=function(t,r){for(var e=n<<3|r,a=p.getBCHTypeInfo(e),u=0;u<15;u+=1){var f=!t&&1==(a>>u&1);u<6?o[u][8]=f:u<8?o[u+1][8]=f:o[i-15+u][8]=f}for(u=0;u<15;u+=1){f=!t&&1==(a>>u&1);u<8?o[8][i-u-1]=f:u<9?o[8][15-u-1+1]=f:o[8][15-u-1]=f}o[i-8][8]=!t},w=function(t,r){for(var e=-1,n=i-1,a=7,u=0,f=p.getMaskFunction(r),c=i-1;c>0;c-=2)for(6==c&&(c-=1);;){for(var g=0;g<2;g+=1)if(null==o[n][c-g]){var l=!1;u<t.length&&(l=1==(t[u]>>>a&1)),f(n,c-g)&&(l=!l),o[n][c-g]=l,-1==(a-=1)&&(u+=1,a=7)}if((n+=e)<0||i<=n){n-=e,e=-e;break}}},y=function(t,r,e){for(var n=C.getRSBlocks(t,r),o=k(),i=0;i<e.length;i+=1){var a=e[i];o.put(a.getMode(),4),o.put(a.getLength(),p.getLengthInBits(a.getMode(),t)),a.write(o)}var u=0;for(i=0;i<n.length;i+=1)u+=n[i].dataCount;if(o.getLengthInBits()>8*u)throw"code length overflow. ("+o.getLengthInBits()+">"+8*u+")";for(o.getLengthInBits()+4<=8*u&&o.put(0,4);o.getLengthInBits()%8!=0;)o.putBit(!1);for(;!(o.getLengthInBits()>=8*u||(o.put(236,8),o.getLengthInBits()>=8*u));)o.put(17,8);return function(t,r){for(var e=0,n=0,o=0,i=new Array(r.length),a=new Array(r.length),u=0;u<r.length;u+=1){var f=r[u].dataCount,c=r[u].totalCount-f;n=Math.max(n,f),o=Math.max(o,c),i[u]=new Array(f);for(var g=0;g<i[u].length;g+=1)i[u][g]=255&t.getBuffer()[g+e];e+=f;var l=p.getErrorCorrectPolynomial(c),h=B(i[u],l.getLength()-1).mod(l);for(a[u]=new Array(l.getLength()-1),g=0;g<a[u].length;g+=1){var s=g+h.getLength()-a[u].length;a[u][g]=s>=0?h.getAt(s):0}}var v=0;for(g=0;g<r.length;g+=1)v+=r[g].totalCount;var d=new Array(v),w=0;for(g=0;g<n;g+=1)for(u=0;u<r.length;u+=1)g<i[u].length&&(d[w]=i[u][g],w+=1);for(g=0;g<o;g+=1)for(u=0;u<r.length;u+=1)g<a[u].length&&(d[w]=a[u][g],w+=1);return d}(o,n)};c.addData=function(t,r){var e=null;switch(r=r||"Byte"){case"Numeric":e=A(t);break;case"Alphanumeric":e=b(t);break;case"Byte":e=M(t);break;case"Kanji":e=x(t);break;default:throw"mode:"+r}u.push(e),a=null},c.isDark=function(t,r){if(t<0||i<=t||r<0||i<=r)throw t+","+r;return o[t][r]},c.getModuleCount=function(){return i},c.make=function(){if(e<1){for(var t=1;t<40;t++){for(var r=C.getRSBlocks(t,n),o=k(),i=0;i<u.length;i++){var a=u[i];o.put(a.getMode(),4),o.put(a.getLength(),p.getLengthInBits(a.getMode(),t)),a.write(o)}var f=0;for(i=0;i<r.length;i++)f+=r[i].dataCount;if(o.getLengthInBits()<=8*f)break}e=t}g(!1,function(){for(var t=0,r=0,e=0;e<8;e+=1){g(!0,e);var n=p.getLostPoint(c);(0==e||t>n)&&(t=n,r=e)}return r}())},c.createTableTag=function(t,r){t=t||2;var e="";e+='<table style="',e+=" border-width: 0px; border-style: none;",e+=" border-collapse: collapse;",e+=" padding: 0px; margin: "+(r=void 0===r?4*t:r)+"px;",e+='">',e+="<tbody>";for(var n=0;n<c.getModuleCount();n+=1){e+="<tr>";for(var o=0;o<c.getModuleCount();o+=1)e+='<td style="',e+=" border-width: 0px; border-style: none;",e+=" border-collapse: collapse;",e+=" padding: 0px; margin: 0px;",e+=" width: "+t+"px;",e+=" height: "+t+"px;",e+=" background-color: ",e+=c.isDark(n,o)?"#000000":"#ffffff",e+=";",e+='"/>';e+="</tr>"}return e+="</tbody>",e+="</table>"},c.createSvgTag=function(t,r,e,n){var o={};"object"==typeof arguments[0]&&(t=(o=arguments[0]).cellSize,r=o.margin,e=o.alt,n=o.title),t=t||2,r=void 0===r?4*t:r,(e="string"==typeof e?{text:e}:e||{}).text=e.text||null,e.id=e.text?e.id||"qrcode-description":null,(n="string"==typeof n?{text:n}:n||{}).text=n.text||null,n.id=n.text?n.id||"qrcode-title":null;var i,a,u,f,g=c.getModuleCount()*t+2*r,l="";for(f="l"+t+",0 0,"+t+" -"+t+",0 0,-"+t+"z ",l+='<svg version="1.1" xmlns="http://www.w3.org/2000/svg"',l+=o.scalable?"":' width="'+g+'px" height="'+g+'px"',l+=' viewBox="0 0 '+g+" "+g+'" ',l+=' preserveAspectRatio="xMinYMin meet"',l+=n.text||e.text?' role="img" aria-labelledby="'+m([n.id,e.id].join(" ").trim())+'"':"",l+=">",l+=n.text?'<title id="'+m(n.id)+'">'+m(n.text)+"</title>":"",l+=e.text?'<description id="'+m(e.id)+'">'+m(e.text)+"</description>":"",l+='<rect width="100%" height="100%" fill="white" cx="0" cy="0"/>',l+='<path d="',a=0;a<c.getModuleCount();a+=1)for(u=a*t+r,i=0;i<c.getModuleCount();i+=1)c.isDark(a,i)&&(l+="M"+(i*t+r)+","+u+f);return l+='" stroke="transparent" fill="black"/>',l+="</svg>"},c.createDataURL=function(t,r){t=t||2,r=void 0===r?4*t:r;var e=c.getModuleCount()*t+2*r,n=r,o=e-r;return D(e,e,function(r,e){if(n<=r&&r<o&&n<=e&&e<o){var i=Math.floor((r-n)/t),a=Math.floor((e-n)/t);return c.isDark(a,i)?0:1}return 1})},c.createImgTag=function(t,r,e){t=t||2,r=void 0===r?4*t:r;var n=c.getModuleCount()*t+2*r,o="";return o+="<img",o+=' src="',o+=c.createDataURL(t,r),o+='"',o+=' width="',o+=n,o+='"',o+=' height="',o+=n,o+='"',e&&(o+=' alt="',o+=m(e),o+='"'),o+="/>"};var m=function(t){for(var r="",e=0;e<t.length;e+=1){var n=t.charAt(e);switch(n){case"<":r+="<";break;case">":r+=">";break;case"&":r+="&";break;case'"':r+=""";break;default:r+=n}}return r};return c.createASCII=function(t,r){if((t=t||1)<2)return function(t){t=void 0===t?2:t;var r,e,n,o,i,a=1*c.getModuleCount()+2*t,u=t,f=a-t,g={"██":"█","█ ":"▀"," █":"▄"," ":" "},l={"██":"▀","█ ":"▀"," █":" "," ":" "},h="";for(r=0;r<a;r+=2){for(n=Math.floor((r-u)/1),o=Math.floor((r+1-u)/1),e=0;e<a;e+=1)i="█",u<=e&&e<f&&u<=r&&r<f&&c.isDark(n,Math.floor((e-u)/1))&&(i=" "),u<=e&&e<f&&u<=r+1&&r+1<f&&c.isDark(o,Math.floor((e-u)/1))?i+=" ":i+="█",h+=t<1&&r+1>=f?l[i]:g[i];h+="\n"}return a%2&&t>0?h.substring(0,h.length-a-1)+Array(a+1).join("▀"):h.substring(0,h.length-1)}(r);t-=1,r=void 0===r?2*t:r;var e,n,o,i,a=c.getModuleCount()*t+2*r,u=r,f=a-r,g=Array(t+1).join("██"),l=Array(t+1).join(" "),h="",s="";for(e=0;e<a;e+=1){for(o=Math.floor((e-u)/t),s="",n=0;n<a;n+=1)i=1,u<=n&&n<f&&u<=e&&e<f&&c.isDark(o,Math.floor((n-u)/t))&&(i=0),s+=i?g:l;for(o=0;o<t;o+=1)h+=s+"\n"}return h.substring(0,h.length-1)},c.renderTo2dContext=function(t,r){r=r||2;for(var e=c.getModuleCount(),n=0;n<e;n++)for(var o=0;o<e;o++)t.fillStyle=c.isDark(n,o)?"black":"white",t.fillRect(n*r,o*r,r,r)},c};t.stringToBytes=(t.stringToBytesFuncs={default:function(t){for(var r=[],e=0;e<t.length;e+=1){var n=t.charCodeAt(e);r.push(255&n)}return r}}).default,t.createStringToBytes=function(t,r){var e=function(){for(var e=L(t),n=function(){var t=e.read();if(-1==t)throw"eof";return t},o=0,i={};;){var a=e.read();if(-1==a)break;var u=n(),f=n()<<8|n();i[String.fromCharCode(a<<8|u)]=f,o+=1}if(o!=r)throw o+" != "+r;return i}(),n="?".charCodeAt(0);return function(t){for(var r=[],o=0;o<t.length;o+=1){var i=t.charCodeAt(o);if(i<128)r.push(i);else{var a=e[t.charAt(o)];"number"==typeof a?(255&a)==a?r.push(a):(r.push(a>>>8),r.push(255&a)):r.push(n)}}return r}};var r,e,n,o=1,i=2,a=4,u=8,f={L:1,M:0,Q:3,H:2},c=0,g=1,l=2,h=3,s=4,v=5,d=6,w=7,p=(r=[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],n=function(t){for(var r=0;0!=t;)r+=1,t>>>=1;return r},(e={}).getBCHTypeInfo=function(t){for(var r=t<<10;n(r)-n(1335)>=0;)r^=1335<<n(r)-n(1335);return 21522^(t<<10|r)},e.getBCHTypeNumber=function(t){for(var r=t<<12;n(r)-n(7973)>=0;)r^=7973<<n(r)-n(7973);return t<<12|r},e.getPatternPosition=function(t){return r[t-1]},e.getMaskFunction=function(t){switch(t){case c:return function(t,r){return(t+r)%2==0};case g:return function(t,r){return t%2==0};case l:return function(t,r){return r%3==0};case h:return function(t,r){return(t+r)%3==0};case s:return function(t,r){return(Math.floor(t/2)+Math.floor(r/3))%2==0};case v:return function(t,r){return t*r%2+t*r%3==0};case d:return function(t,r){return(t*r%2+t*r%3)%2==0};case w:return function(t,r){return(t*r%3+(t+r)%2)%2==0};default:throw"bad maskPattern:"+t}},e.getErrorCorrectPolynomial=function(t){for(var r=B([1],0),e=0;e<t;e+=1)r=r.multiply(B([1,y.gexp(e)],0));return r},e.getLengthInBits=function(t,r){if(1<=r&&r<10)switch(t){case o:return 10;case i:return 9;case a:case u:return 8;default:throw"mode:"+t}else if(r<27)switch(t){case o:return 12;case i:return 11;case a:return 16;case u:return 10;default:throw"mode:"+t}else{if(!(r<41))throw"type:"+r;switch(t){case o:return 14;case i:return 13;case a:return 16;case u:return 12;default:throw"mode:"+t}}},e.getLostPoint=function(t){for(var r=t.getModuleCount(),e=0,n=0;n<r;n+=1)for(var o=0;o<r;o+=1){for(var i=0,a=t.isDark(n,o),u=-1;u<=1;u+=1)if(!(n+u<0||r<=n+u))for(var f=-1;f<=1;f+=1)o+f<0||r<=o+f||0==u&&0==f||a==t.isDark(n+u,o+f)&&(i+=1);i>5&&(e+=3+i-5)}for(n=0;n<r-1;n+=1)for(o=0;o<r-1;o+=1){var c=0;t.isDark(n,o)&&(c+=1),t.isDark(n+1,o)&&(c+=1),t.isDark(n,o+1)&&(c+=1),t.isDark(n+1,o+1)&&(c+=1),0!=c&&4!=c||(e+=3)}for(n=0;n<r;n+=1)for(o=0;o<r-6;o+=1)t.isDark(n,o)&&!t.isDark(n,o+1)&&t.isDark(n,o+2)&&t.isDark(n,o+3)&&t.isDark(n,o+4)&&!t.isDark(n,o+5)&&t.isDark(n,o+6)&&(e+=40);for(o=0;o<r;o+=1)for(n=0;n<r-6;n+=1)t.isDark(n,o)&&!t.isDark(n+1,o)&&t.isDark(n+2,o)&&t.isDark(n+3,o)&&t.isDark(n+4,o)&&!t.isDark(n+5,o)&&t.isDark(n+6,o)&&(e+=40);var g=0;for(o=0;o<r;o+=1)for(n=0;n<r;n+=1)t.isDark(n,o)&&(g+=1);return e+=Math.abs(100*g/r/r-50)/5*10},e),y=function(){for(var t=new Array(256),r=new Array(256),e=0;e<8;e+=1)t[e]=1<<e;for(e=8;e<256;e+=1)t[e]=t[e-4]^t[e-5]^t[e-6]^t[e-8];for(e=0;e<255;e+=1)r[t[e]]=e;var n={glog:function(t){if(t<1)throw"glog("+t+")";return r[t]},gexp:function(r){for(;r<0;)r+=255;for(;r>=256;)r-=255;return t[r]}};return n}();function B(t,r){if(void 0===t.length)throw t.length+"/"+r;var e=function(){for(var e=0;e<t.length&&0==t[e];)e+=1;for(var n=new Array(t.length-e+r),o=0;o<t.length-e;o+=1)n[o]=t[o+e];return n}(),n={getAt:function(t){return e[t]},getLength:function(){return e.length},multiply:function(t){for(var r=new Array(n.getLength()+t.getLength()-1),e=0;e<n.getLength();e+=1)for(var o=0;o<t.getLength();o+=1)r[e+o]^=y.gexp(y.glog(n.getAt(e))+y.glog(t.getAt(o)));return B(r,0)},mod:function(t){if(n.getLength()-t.getLength()<0)return n;for(var r=y.glog(n.getAt(0))-y.glog(t.getAt(0)),e=new Array(n.getLength()),o=0;o<n.getLength();o+=1)e[o]=n.getAt(o);for(o=0;o<t.getLength();o+=1)e[o]^=y.gexp(y.glog(t.getAt(o))+r);return B(e,0).mod(t)}};return n}var C=function(){var t=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12,7,37,13],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],r=function(t,r){var e={};return e.totalCount=t,e.dataCount=r,e},e={};return e.getRSBlocks=function(e,n){var o=function(r,e){switch(e){case f.L:return t[4*(r-1)+0];case f.M:return t[4*(r-1)+1];case f.Q:return t[4*(r-1)+2];case f.H:return t[4*(r-1)+3];default:return}}(e,n);if(void 0===o)throw"bad rs block @ typeNumber:"+e+"/errorCorrectionLevel:"+n;for(var i=o.length/3,a=[],u=0;u<i;u+=1)for(var c=o[3*u+0],g=o[3*u+1],l=o[3*u+2],h=0;h<c;h+=1)a.push(r(g,l));return a},e}(),k=function(){var t=[],r=0,e={getBuffer:function(){return t},getAt:function(r){var e=Math.floor(r/8);return 1==(t[e]>>>7-r%8&1)},put:function(t,r){for(var n=0;n<r;n+=1)e.putBit(1==(t>>>r-n-1&1))},getLengthInBits:function(){return r},putBit:function(e){var n=Math.floor(r/8);t.length<=n&&t.push(0),e&&(t[n]|=128>>>r%8),r+=1}};return e},A=function(t){var r=o,e=t,n={getMode:function(){return r},getLength:function(t){return e.length},write:function(t){for(var r=e,n=0;n+2<r.length;)t.put(i(r.substring(n,n+3)),10),n+=3;n<r.length&&(r.length-n==1?t.put(i(r.substring(n,n+1)),4):r.length-n==2&&t.put(i(r.substring(n,n+2)),7))}},i=function(t){for(var r=0,e=0;e<t.length;e+=1)r=10*r+a(t.charAt(e));return r},a=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);throw"illegal char :"+t};return n},b=function(t){var r=i,e=t,n={getMode:function(){return r},getLength:function(t){return e.length},write:function(t){for(var r=e,n=0;n+1<r.length;)t.put(45*o(r.charAt(n))+o(r.charAt(n+1)),11),n+=2;n<r.length&&t.put(o(r.charAt(n)),6)}},o=function(t){if("0"<=t&&t<="9")return t.charCodeAt(0)-"0".charCodeAt(0);if("A"<=t&&t<="Z")return t.charCodeAt(0)-"A".charCodeAt(0)+10;switch(t){case" ":return 36;case"$":return 37;case"%":return 38;case"*":return 39;case"+":return 40;case"-":return 41;case".":return 42;case"/":return 43;case":":return 44;default:throw"illegal char :"+t}};return n},M=function(r){var e=a,n=t.stringToBytes(r),o={getMode:function(){return e},getLength:function(t){return n.length},write:function(t){for(var r=0;r<n.length;r+=1)t.put(n[r],8)}};return o},x=function(r){var e=u,n=t.stringToBytesFuncs.SJIS;if(!n)throw"sjis not supported.";!function(t,r){var e=n("友");if(2!=e.length||38726!=(e[0]<<8|e[1]))throw"sjis not supported."}();var o=n(r),i={getMode:function(){return e},getLength:function(t){return~~(o.length/2)},write:function(t){for(var r=o,e=0;e+1<r.length;){var n=(255&r[e])<<8|255&r[e+1];if(33088<=n&&n<=40956)n-=33088;else{if(!(57408<=n&&n<=60351))throw"illegal char at "+(e+1)+"/"+n;n-=49472}n=192*(n>>>8&255)+(255&n),t.put(n,13),e+=2}if(e<r.length)throw"illegal char at "+(e+1)}};return i},m=function(){var t=[],r={writeByte:function(r){t.push(255&r)},writeShort:function(t){r.writeByte(t),r.writeByte(t>>>8)},writeBytes:function(t,e,n){e=e||0,n=n||t.length;for(var o=0;o<n;o+=1)r.writeByte(t[o+e])},writeString:function(t){for(var e=0;e<t.length;e+=1)r.writeByte(t.charCodeAt(e))},toByteArray:function(){return t},toString:function(){var r="";r+="[";for(var e=0;e<t.length;e+=1)e>0&&(r+=","),r+=t[e];return r+="]"}};return r},L=function(t){var r=t,e=0,n=0,o=0,i={read:function(){for(;o<8;){if(e>=r.length){if(0==o)return-1;throw"unexpected end of file./"+o}var t=r.charAt(e);if(e+=1,"="==t)return o=0,-1;t.match(/^\s$/)||(n=n<<6|a(t.charCodeAt(0)),o+=6)}var i=n>>>o-8&255;return o-=8,i}},a=function(t){if(65<=t&&t<=90)return t-65;if(97<=t&&t<=122)return t-97+26;if(48<=t&&t<=57)return t-48+52;if(43==t)return 62;if(47==t)return 63;throw"c:"+t};return i},D=function(t,r,e){for(var n=function(t,r){var e=t,n=r,o=new Array(t*r),i={setPixel:function(t,r,n){o[r*e+t]=n},write:function(t){t.writeString("GIF87a"),t.writeShort(e),t.writeShort(n),t.writeByte(128),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(0),t.writeByte(255),t.writeByte(255),t.writeByte(255),t.writeString(","),t.writeShort(0),t.writeShort(0),t.writeShort(e),t.writeShort(n),t.writeByte(0);var r=a(2);t.writeByte(2);for(var o=0;r.length-o>255;)t.writeByte(255),t.writeBytes(r,o,255),o+=255;t.writeByte(r.length-o),t.writeBytes(r,o,r.length-o),t.writeByte(0),t.writeString(";")}},a=function(t){for(var r=1<<t,e=1+(1<<t),n=t+1,i=u(),a=0;a<r;a+=1)i.add(String.fromCharCode(a));i.add(String.fromCharCode(r)),i.add(String.fromCharCode(e));var f,c,g,l=m(),h=(f=l,c=0,g=0,{write:function(t,r){if(t>>>r!=0)throw"length over";for(;c+r>=8;)f.writeByte(255&(t<<c|g)),r-=8-c,t>>>=8-c,g=0,c=0;g|=t<<c,c+=r},flush:function(){c>0&&f.writeByte(g)}});h.write(r,n);var s=0,v=String.fromCharCode(o[s]);for(s+=1;s<o.length;){var d=String.fromCharCode(o[s]);s+=1,i.contains(v+d)?v+=d:(h.write(i.indexOf(v),n),i.size()<4095&&(i.size()==1<<n&&(n+=1),i.add(v+d)),v=d)}return h.write(i.indexOf(v),n),h.write(e,n),h.flush(),l.toByteArray()},u=function(){var t={},r=0,e={add:function(n){if(e.contains(n))throw"dup key:"+n;t[n]=r,r+=1},size:function(){return r},indexOf:function(r){return t[r]},contains:function(r){return void 0!==t[r]}};return e};return i}(t,r),o=0;o<r;o+=1)for(var i=0;i<t;i+=1)n.setPixel(i,o,e(i,o));var a=m();n.write(a);for(var u,f,c,g,l,h,s,v=(u=0,f=0,c=0,g="",h=function(t){g+=String.fromCharCode(s(63&t))},s=function(t){if(t<0);else{if(t<26)return 65+t;if(t<52)return t-26+97;if(t<62)return t-52+48;if(62==t)return 43;if(63==t)return 47}throw"n:"+t},(l={}).writeByte=function(t){for(u=u<<8|255&t,f+=8,c+=1;f>=6;)h(u>>>f-6),f-=6},l.flush=function(){if(f>0&&(h(u<<6-f),u=0,f=0),c%3!=0)for(var t=3-c%3,r=0;r<t;r+=1)g+="="},l.toString=function(){return g},l),d=a.toByteArray(),w=0;w<d.length;w+=1)v.writeByte(d[w]);return v.flush(),"data:image/gif;base64,"+v};return t}();qrcode.stringToBytesFuncs["UTF-8"]=function(t){return function(t){for(var r=[],e=0;e<t.length;e++){var n=t.charCodeAt(e);n<128?r.push(n):n<2048?r.push(192|n>>6,128|63&n):n<55296||n>=57344?r.push(224|n>>12,128|n>>6&63,128|63&n):(e++,n=65536+((1023&n)<<10|1023&t.charCodeAt(e)),r.push(240|n>>18,128|n>>12&63,128|n>>6&63,128|63&n))}return r}(t)},function(t){"function"==typeof define&&define.amd?define([],t):"object"==typeof exports&&(module.exports=t())}(function(){return qrcode});
//index.js
const SERVICE_CODE={PAYMENT:"QRPUSH",TO_CARD:"QRIBFTTC",TO_ACCOUNT:"QRIBFTTA"},NAPAS_GUID="A000000727",CURRENCY={VND:"704",USD:"840"};var FIELDS={is_dynamic_qr:!1,merchant_category:"",merchant_name:"",merchant_city:"",postal_code:"",currency:"704",country_code:"VN",amount:"0",acq:"970403",merchant_id:"",service_code:SERVICE_CODE.TO_ACCOUNT,bill_number:"",mobile_number:"",store_label:"",loyalty_number:"",ref_label:"",customer_label:"",terminal_label:"",purpose_txn:"",additional_data:"",lang_ref:"",local_merchant_name:"",local_merchant_city:"",uuid:"",ipn_url:"",app_package_name:""};const CRC={stringToUtf8ByteArray(e){for(var t=[],a=0,n=0;n<e.length;n++){var i=e.charCodeAt(n);i<128?t[a++]=i:i<2048?(t[a++]=i>>6|192,t[a++]=63&i|128):55296==(64512&i)&&n+1<e.length&&56320==(64512&e.charCodeAt(n+1))?(i=65536+((1023&i)<<10)+(1023&e.charCodeAt(++n)),t[a++]=i>>18|240,t[a++]=i>>12&63|128,t[a++]=i>>6&63|128,t[a++]=63&i|128):(t[a++]=i>>12|224,t[a++]=i>>6&63|128,t[a++]=63&i|128)}return t},getCrc16(e,t=0){let a=this.stringToUtf8ByteArray(e);if(null==a||t<0||t>a.length-1||t+length>a.length)return 0;let n=65535;for(let i=0;i<e.length;++i){n^=a[t+i]<<8;for(let e=0;e<8;++e)n=(32768&n)>0?n<<1^4129:n<<1}return(65535&n).toString(16).toUpperCase()},getCrc16_array(e,t=!0){Array.isArray(e)||(e=[[e]]);return e.map(e=>e.map(e=>{if(!e.length)return null;const a=Array.from(String(e)).map(e=>255&e.charCodeAt(0));let n=65535;return a.forEach(e=>{for(let t=0;t<8;t++){let a=1==(n>>15&1);n<<=1,a^1==(e>>7-t&1)&&(n^=4129)}}),n&=65535,t?n.toString(16).toUpperCase():n})).toString()},nonAccentVietnamese:e=>(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.toLowerCase()).replace(new RegExp("/","g"),"-")).replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g,"a")).replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g,"e")).replace(/ì|í|ị|ỉ|ĩ/g,"i")).replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g,"o")).replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g,"u")).replace(/ỳ|ý|ỵ|ỷ|ỹ/g,"y")).replace(/đ/g,"d")).replace(/\u0300|\u0301|\u0303|\u0309|\u0323/g,"")).replace(/\u02C6|\u0306|\u031B/g,"")).toUpperCase().trim()};class TLV{constructor(e=0,t="",a=99,n=!0,i="O",r=[]){this.tagId=e,this.tagName=t,this.tagLength=n?a:t.length,this.tagValue=r,this.presense=i}toString(){let e="";if(Array.isArray(this.tagValue))for(let t=0;t<this.tagValue.length;t++)this.tagValue[t]instanceof TLV&&""!==this.tagValue[t].tagValue&&(e+=this.tagValue[t].toString());else e=this.tagValue;return""===e?"":(this.tagLength=e.length,`${this.tagId>=10?`${this.tagId}`:`0${this.tagId}`}${this.tagLength>=10?`${this.tagLength}`:`0${this.tagLength}`}${e}`)}}class VIETQR{constructor(){this.data=[],this.fields=FIELDS}toString(){let e="";for(let t=0;t<this.data.length;t++)this.data[t]instanceof TLV&&(e+=this.data[t].toString());let t=`${e}6304`;return`${t}${CRC.getCrc16_array(t)}`}builder(){return this.data[0]=new TLV(0,"Payload Format Indicator",2,!0,"M","01"),this.data[1]=new TLV(1,"QR Type",2,!0,"M",this.fields.is_dynamic_qr?"12":"11"),this.data[38]=new TLV(38,"QR code service on NAPAS system",99,!1,"M",[new TLV(0,"Global Unique Identifier - GUID",10,!0,"M",NAPAS_GUID),new TLV(1,"Payment network specific",32,!1,"M",[new TLV(0,"Acquier ID/BNB ID",6,!0,"M",this.fields.acq),new TLV(1,"Merchant ID/Consumer ID",19,!1,"M",this.fields.merchant_id)]),new TLV(2,"Service Code",10,!1,"C",this.fields.service_code)]),this.data[52]=new TLV(52,"Merchant Category Code",4,!0,"O",this.fields.merchant_category),this.data[53]=new TLV(53,"Transaction Currency",3,!0,"M",this.fields.currency),this.data[54]=new TLV(54,"Transaction Amount",13,!1,"C",this.fields.is_dynamic_qr?this.fields.amount:""),this.data[55]=new TLV(55,"Tip or Convenience Indicator",2,!0,"O"),this.data[56]=new TLV(56,"Value of Convenience Fee Fixed",13,!1,"O"),this.data[57]=new TLV(57,"Value of Convenience Fee Percentage",5,!1,"O"),this.data[58]=new TLV(58,"Country Code",2,!0,"M",this.fields.country_code),this.data[59]=new TLV(59,"Merchant Name",25,!1,"O",this.fields.merchant_name),this.data[60]=new TLV(60,"Merchant City",15,!1,"O",this.fields.merchant_city),this.data[61]=new TLV(61,"Postal Code",10,!1,"O",this.fields.postal_code),this.data[62]=new TLV(62,"Additional Data Field Template",99,!0,"O",[null,new TLV(1,"Bill Number",25,!1,"C",this.fields.bill_number),new TLV(2,"Mobile Number",25,!1,"C",this.fields.mobile_number),new TLV(3,"Store Label",25,!1,"O",this.fields.store_label),new TLV(4,"Loyalty Number",25,!1,"O",this.fields.loyalty_number),new TLV(5,"Reference Label",25,!1,"C",this.fields.ref_label),new TLV(6,"Customer Label",25,!1,"C",this.fields.customer_label),new TLV(7,"Terminal Label",25,!1,"O",this.fields.terminal_label),new TLV(8,"Purpose of Transaction",25,!1,"C",CRC.nonAccentVietnamese(this.fields.purpose_txn)),new TLV(9,"Additional Consumer Data Request",3,!1,"O",this.fields.additional_data)]),this.data[63]=new TLV(63,"CRC (Cyclic Redundancy Check)",4,!0,"M"),this.data[64]=new TLV(64,"Merchant Information - Language Template",2,!0,"O",[new TLV(0,"Language Preference",2,!0,"M",this.fields.lang_ref),new TLV(1,"Merchant Name - Alternate Language",25,!1,"M",this.fields.local_merchant_name),new TLV(2,"Merchant City - Alternate Language",15,!1,"O",this.fields.local_merchant_city)]),this.toString()}}
//Create
const banks = [{"Name":"Ngân hàng TMCP Sài Gòn Công thương","BIN":"970400"},{"Name":"Ngân hàng TMCP Sài Gòn Thương tín","BIN":"970403"},{"Name":"Ngân hàng Nông nghiệp và Phát triển Nông thôn Việt Nam","BIN":"970405"},{"Name":"Ngân hàng TMCP Đông Á","BIN":"970406"},{"Name":"Ngân hàng TMCP Kỹ thương","BIN":"970407"},{"Name":"Ngân hàng TMCP Dầu Khí Toàn Cầu","BIN":"970408"},{"Name":"Ngân hàng TMCP Bắc Á","BIN":"970409"},{"Name":"Ngân hàng TNHH MTV Standard Chartered ","BIN":"970410"},{"Name":"Ngân hàng TMCP Đại chúng Việt Nam","BIN":"970412"},{"Name":"Ngân hàng TMCP Đại Dương","BIN":"970414"},{"Name":"Ngân hàng TMCP Công thương Việt Nam","BIN":"970415"},{"Name":"Ngân hàng TMCP Á Châu","BIN":"970416"},{"Name":"Ngân hàng TMCP Phương Nam","BIN":"970417"},{"Name":"Ngân hàng Đầu tư và Phát triển Việt Nam","BIN":"970418"},{"Name":"Ngân hàng TMCP Quốc dân","BIN":"970419"},{"Name":"Ngân hàng liên doanh Việt Nga","BIN":"970421"},{"Name":"Ngân hàng TMCP Quân Đội","BIN":"970422"},{"Name":"Ngân hàng TMCP Tiên Phong","BIN":"970423"},{"Name":"Ngân hàng TNHH MTV Shinhan Việt Nam","BIN":"970424"},{"Name":"Ngân hàng TMCP An Bình","BIN":"970425"},{"Name":"Ngân hàng TMCP Hàng Hải","BIN":"970426"},{"Name":"Ngân hàng TMCP Việt Á","BIN":"970427"},{"Name":"Ngân hàng TMCP Nam Á","BIN":"970428"},{"Name":"Ngân hàng TMCP Sài Gòn ","BIN":"970429"},{"Name":"Ngân hàng TMCP Xăng dầu Petrolimex","BIN":"970430"},{"Name":"Ngân hàng TMCP Xuất Nhập khẩu Việt Nam","BIN":"970431"},{"Name":"Ngân hàng TMCP Việt Nam Thịnh Vượng","BIN":"970432"},{"Name":"Ngân hàng TMCP Việt Nam Thương Tín","BIN":"970433"},{"Name":"Ngân hàng TNHH Indovina","BIN":"970434"},{"Name":"Ngân hàng TMCP Ngoại thương Việt Nam","BIN":"970436"},{"Name":"Ngân hàng TMCP Phát triển TP.HCM","BIN":"970437"},{"Name":"Ngân hàng TMCP Bảo Việt","BIN":"970438"},{"Name":"Ngân hàng liên doanh VID PUBLIC BANK","BIN":"970439"},{"Name":"Ngân hàng TMCP Đông Nam Á","BIN":"970440"},{"Name":"Ngân hàng TMCP Quốc Tế Việt Nam","BIN":"970441"},{"Name":"Ngân hàng TNHH MTV Hong Leong Việt Nam","BIN":"970442"},{"Name":"Ngân hàng TMCP Sài Gòn – Hà Nội","BIN":"970443"},{"Name":"Ngân hàng TMCP Xây dựng Việt Nam","BIN":"970444"},{"Name":"Ngân hàng Hợp tác xã Việt Nam","BIN":"970446"},{"Name":"Ngân hàng TMCP Phương Đông","BIN":"970448"},{"Name":"Ngân hàng TMCP Bưu điện Liên Việt ","BIN":"970449"},{"Name":"Ngân hàng TMCP Phát triển Mê Kông","BIN":"970451"},{"Name":"Ngân hàng TMCP Kiên Long","BIN":"970452"},{"Name":"Ngân hàng TMCP Bản Việt","BIN":"970454"}]
// tạo ô chọn ngân hàng
const selectElement = document.getElementById("maSoNH"); // Thay đổi ID nếu cần thiết
// Tạo tùy chọn mặc định
const defaultOption = document.createElement("option");
defaultOption.value = "970422";
defaultOption.textContent = "Chọn ngân hàng - MBBank";
selectElement.appendChild(defaultOption);
// Tạo tùy chọn từ dữ liệu JSON
banks.forEach(bank => {
const option = document.createElement("option");
option.value = bank.BIN;
option.textContent = bank.Name;
selectElement.appendChild(option);
});
document.querySelector("#gui").addEventListener("click", ()=>{
let vietQRdata = new VIETQR()
vietQRdata.fields.is_dynamic_qr = true;
vietQRdata.fields.merchant_category = "9999"
vietQRdata.fields.amount =document.querySelector("#soTien").value
vietQRdata.fields.acq = document.querySelector("#maSoNH").value
vietQRdata.fields.merchant_id = document.querySelector("#taiKhoan").value
vietQRdata.fields.service_code = SERVICE_CODE.TO_ACCOUNT;
vietQRdata.fields.purpose_txn =document.querySelector("#loiNhan").value
vietQRdata = vietQRdata.builder()
let qrcodenew = new qrcode(0,"M")
qrcodenew.addData(vietQRdata,"Byte")
qrcodenew.make();
document.querySelector("#img").innerHTML = qrcodenew.createImgTag(5);
});
</script>
</body>
</html>