From 370be9e63cd1c84275500dad359b8357cbe1437d Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Mon, 23 Oct 2017 21:47:24 +0300 Subject: [PATCH] Working on Bitcoin with Stripe --- .../PaymentDrivers/StripePaymentDriver.php | 22 ++++++++++-- bower.json | 3 +- gulpfile.js | 4 +++ public/images/gateways/logo_Bitcoin.png | Bin 0 -> 8862 bytes public/js/qrcode.min.js | 2 ++ public/js/qrcode.min.js.map | 1 + .../views/accounts/account_gateway.blade.php | 6 ++-- .../views/payments/stripe/bitcoin.blade.php | 34 ++++++++++++++++++ 8 files changed, 67 insertions(+), 5 deletions(-) create mode 100644 public/images/gateways/logo_Bitcoin.png create mode 100644 public/js/qrcode.min.js create mode 100644 public/js/qrcode.min.js.map create mode 100644 resources/views/payments/stripe/bitcoin.blade.php diff --git a/app/Ninja/PaymentDrivers/StripePaymentDriver.php b/app/Ninja/PaymentDrivers/StripePaymentDriver.php index 37746e66bc..63eb2b9f99 100644 --- a/app/Ninja/PaymentDrivers/StripePaymentDriver.php +++ b/app/Ninja/PaymentDrivers/StripePaymentDriver.php @@ -91,7 +91,7 @@ class StripePaymentDriver extends BasePaymentDriver public function shouldUseSource() { - return in_array($this->gatewayType, [GATEWAY_TYPE_ALIPAY, GATEWAY_TYPE_SOFORT]); + return in_array($this->gatewayType, [GATEWAY_TYPE_ALIPAY, GATEWAY_TYPE_SOFORT, GATEWAY_TYPE_BITCOIN]); } protected function checkCustomerExists($customer) @@ -358,6 +358,7 @@ class StripePaymentDriver extends BasePaymentDriver $amount = intval($this->invoice()->getRequestedAmount() * 100); $invoiceNumber = $this->invoice()->invoice_number; $currency = $this->client()->getCurrencyCode(); + $email = $this->contact()->email; $gatewayType = GatewayType::getAliasFromId($this->gatewayType); $redirect = url("/complete_source/{$this->invitation->invitation_key}/{$gatewayType}"); $country = $this->client()->country ? $this->client()->country->iso_3166_2 : ($this->account()->country ? $this->account()->country->iso_3166_2 : ''); @@ -368,6 +369,12 @@ class StripePaymentDriver extends BasePaymentDriver throw new Exception('Alipay is not enabled'); } $type = 'alipay'; + } elseif ($this->gatewayType == GATEWAY_TYPE_BITCOIN) { + if (! $this->accountGateway->getBitcoinEnabled()) { + throw new Exception('Bitcoin is not enabled'); + } + $type = 'bitcoin'; + $extra = "&owner[email]={$email}"; } else { if (! $this->accountGateway->getSofortEnabled()) { throw new Exception('Sofort is not enabled'); @@ -383,7 +390,18 @@ class StripePaymentDriver extends BasePaymentDriver $this->invitation->transaction_reference = $response['id']; $this->invitation->save(); - return redirect($response['redirect']['url']); + if ($this->gatewayType == GATEWAY_TYPE_BITCOIN) { + return view('payments/stripe/bitcoin', [ + 'client' => $this->client(), + 'account' => $this->account(), + 'invitation' => $this->invitation, + 'invoiceNumber' => $invoiceNumber, + 'amount' => $amount, + 'source' => $response, + ]); + } else { + return redirect($response['redirect']['url']); + } } else { throw new Exception($response); } diff --git a/bower.json b/bower.json index 118c4b884b..bc99469934 100644 --- a/bower.json +++ b/bower.json @@ -38,7 +38,8 @@ "card": "^2.1.1", "fullcalendar": "^3.5.1", "toastr": "^2.1.3", - "jt.timepicker": "jquery-timepicker-jt#^1.11.12" + "jt.timepicker": "jquery-timepicker-jt#^1.11.12", + "qrcode.js": "qrcode-js#*" }, "resolutions": { "jquery": "~1.11" diff --git a/gulpfile.js b/gulpfile.js index bb841eed09..a74ba8697f 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -116,6 +116,10 @@ elixir(function(mix) { bowerDir + '/card/dist/card.js', ], 'public/js/card.min.js'); + mix.scripts([ + bowerDir + '/qrcode.js/qrcode.js', + ], 'public/js/qrcode.min.js'); + mix.scripts([ bowerDir + '/tablesorter/dist/js/jquery.tablesorter.combined.js', bowerDir + '/tablesorter/dist/js/widgets/widget-grouping.min.js', diff --git a/public/images/gateways/logo_Bitcoin.png b/public/images/gateways/logo_Bitcoin.png new file mode 100644 index 0000000000000000000000000000000000000000..b098c37b19329245a38e1acabc711f513035e6de GIT binary patch literal 8862 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[0]=240|(1835008&i)>>>18,o[1]=128|(258048&i)>>>12,o[2]=128|(4032&i)>>>6,o[3]=128|63&i):i>2048?(o[0]=224|(61440&i)>>>12,o[1]=128|(4032&i)>>>6,o[2]=128|63&i):i>128?(o[0]=192|(1984&i)>>>6,o[1]=128|63&i):o[0]=i,this.parsedData.push(o)}this.parsedData=Array.prototype.concat.apply([],this.parsedData),this.parsedData.length!=this.data.length&&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}function e(t,e){this.typeNumber=t,this.errorCorrectLevel=e,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function r(t,e){if(void 0==t.length)throw new Error(t.length+"/"+e);for(var r=0;rp.length)throw new Error("Too long data");return r}function h(t){var e=encodeURI(t).toString().replace(/\%[0-9a-fA-F]{2}/g,"a");return e.length+(e.length!=t?3:0)}t.prototype={getLength:function(t){return this.parsedData.length},write:function(t){for(var e=0,r=this.parsedData.length;e=7&&this.setupTypeNumber(t),null==this.dataCache&&(this.dataCache=e.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,r)},setupPositionProbePattern:function(t,e){for(var r=-1;r<=7;r++)if(!(t+r<=-1||this.moduleCount<=t+r))for(var o=-1;o<=7;o++)e+o<=-1||this.moduleCount<=e+o||(0<=r&&r<=6&&(0==o||6==o)||0<=o&&o<=6&&(0==r||6==r)||2<=r&&r<=4&&2<=o&&o<=4?this.modules[t+r][e+o]=!0:this.modules[t+r][e+o]=!1)},getBestMaskPattern:function(){for(var t=0,e=0,r=0;r<8;r++){this.makeImpl(!0,r);var o=g.getLostPoint(this);(0==r||t>o)&&(t=o,e=r)}return e},createMovieClip:function(t,e,r){var o=t.createEmptyMovieClip(e,r),i=1;this.make();for(var n=0;n>r&1);this.modules[Math.floor(r/3)][r%3+this.moduleCount-8-3]=o}for(var r=0;r<18;r++){var o=!t&&1==(e>>r&1);this.modules[r%3+this.moduleCount-8-3][Math.floor(r/3)]=o}},setupTypeInfo:function(t,e){for(var r=this.errorCorrectLevel<<3|e,o=g.getBCHTypeInfo(r),i=0;i<15;i++){var n=!t&&1==(o>>i&1);i<6?this.modules[i][8]=n:i<8?this.modules[i+1][8]=n:this.modules[this.moduleCount-15+i][8]=n}for(var i=0;i<15;i++){var n=!t&&1==(o>>i&1);i<8?this.modules[8][this.moduleCount-i-1]=n:i<9?this.modules[8][15-i-1+1]=n:this.modules[8][15-i-1]=n}this.modules[this.moduleCount-8][8]=!t},mapData:function(t,e){for(var r=-1,o=this.moduleCount-1,i=7,n=0,a=this.moduleCount-1;a>0;a-=2)for(6==a&&a--;;){for(var s=0;s<2;s++)if(null==this.modules[o][a-s]){var h=!1;n>>i&1));var u=g.getMask(e,o,a-s);u&&(h=!h),this.modules[o][a-s]=h,i--,i==-1&&(n++,i=7)}if(o+=r,o<0||this.moduleCount<=o){o-=r,r=-r;break}}}},e.PAD0=236,e.PAD1=17,e.createData=function(t,r,n){for(var a=o.getRSBlocks(t,r),s=new i,h=0;h8*l)throw new Error("code length overflow. ("+s.getLengthInBits()+">"+8*l+")");for(s.getLengthInBits()+4<=8*l&&s.put(0,4);s.getLengthInBits()%8!=0;)s.putBit(!1);for(;;){if(s.getLengthInBits()>=8*l)break;if(s.put(e.PAD0,8),s.getLengthInBits()>=8*l)break;s.put(e.PAD1,8)}return e.createBytes(s,a)},e.createBytes=function(t,e){for(var o=0,i=0,n=0,a=new Array(e.length),s=new Array(e.length),h=0;h=0?p.get(m):0}}for(var v=0,f=0;f=0;)e^=g.G15<=0;)e^=g.G18<>>=1;return e},getPatternPosition:function(t){return g.PATTERN_POSITION_TABLE[t-1]},getMask:function(t,e,r){switch(t){case f.PATTERN000:return(e+r)%2==0;case f.PATTERN001:return e%2==0;case f.PATTERN010:return r%3==0;case f.PATTERN011:return(e+r)%3==0;case f.PATTERN100:return(Math.floor(e/2)+Math.floor(r/3))%2==0;case f.PATTERN101:return e*r%2+e*r%3==0;case f.PATTERN110:return(e*r%2+e*r%3)%2==0;case f.PATTERN111:return(e*r%3+(e+r)%2)%2==0;default:throw new Error("bad maskPattern:"+t)}},getErrorCorrectPolynomial:function(t){for(var e=new r([1],0),o=0;o5&&(r+=3+n-5)}for(var o=0;o=256;)t-=255;return d.EXP_TABLE[t]},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)},c=0;c<8;c++)d.EXP_TABLE[c]=1<>>7-t%8&1)},put:function(t,e){for(var r=0;r>>e-r-1&1))},getLengthInBits:function(){return this.length},putBit:function(t){var e=Math.floor(this.length/8);this.buffer.length<=e&&this.buffer.push(0),t&&(this.buffer[e]|=128>>>this.length%8),this.length++}};var p=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]],m=function(){var t=function(t,e){this._el=t,this._htOption=e};return t.prototype.draw=function(t){function e(t,e){var r=document.createElementNS("http://www.w3.org/2000/svg",t);for(var o in e)e.hasOwnProperty(o)&&r.setAttribute(o,e[o]);return r}var r=this._htOption,o=this._el,i=t.getModuleCount();Math.floor(r.width/i),Math.floor(r.height/i);this.clear();var n=e("svg",{viewBox:"0 0 "+String(i)+" "+String(i),width:"100%",height:"100%",fill:r.colorLight});n.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),o.appendChild(n),n.appendChild(e("rect",{fill:r.colorLight,width:"100%",height:"100%"})),n.appendChild(e("rect",{fill:r.colorDark,width:"1",height:"1",id:"template"}));for(var a=0;a=1;f--)arguments[f]=arguments[f]*r;else"undefined"==typeof u&&(arguments[1]*=r,arguments[2]*=r,arguments[3]*=r,arguments[4]*=r);o.apply(this,arguments)}}var i=function(t,e){this._bIsPainted=!1,this._android=a(),this._htOption=e,this._elCanvas=document.createElement("canvas"),this._elCanvas.width=e.width,this._elCanvas.height=e.height,t.appendChild(this._elCanvas),this._el=t,this._oContext=this._elCanvas.getContext("2d"),this._bIsPainted=!1,this._elImage=document.createElement("img"),this._elImage.alt="Scan me!",this._elImage.style.display="none",this._el.appendChild(this._elImage),this._bSupportDataURI=null};return i.prototype.draw=function(t){var e=this._elImage,r=this._oContext,o=this._htOption,i=t.getModuleCount(),n=o.width/i,a=o.height/i,s=Math.round(n),h=Math.round(a);e.style.display="none",this.clear();for(var u=0;u'],s=0;s");for(var h=0;h');a.push("")}a.push(""),r.innerHTML=a.join("");var u=r.childNodes[0],l=(e.width-u.offsetWidth)/2,f=(e.height-u.offsetHeight)/2;l>0&&f>0&&(u.style.margin=f+"px "+l+"px")},t.prototype.clear=function(){this._el.innerHTML=""},t}();QRCode=function(t,e){if(this._htOption={width:256,height:256,typeNumber:4,colorDark:"#000000",colorLight:"#ffffff",correctLevel:l.H},"string"==typeof e&&(e={text:e}),e)for(var r in e)this._htOption[r]=e[r];"string"==typeof t&&(t=document.getElementById(t)),this._htOption.useSVG&&(_=m),this._android=a(),this._el=t,this._oQRCode=null,this._oDrawing=new _(this._el,this._htOption),this._htOption.text&&this.makeCode(this._htOption.text)},QRCode.prototype.makeCode=function(t){this._oQRCode=new e(s(t,this._htOption.correctLevel),this._htOption.correctLevel),this._oQRCode.addData(t),this._oQRCode.make(),this._el.title=t,this._oDrawing.draw(this._oQRCode),this.makeImage()},QRCode.prototype.makeImage=function(){"function"==typeof this._oDrawing.makeImage&&(!this._android||this._android>=3)&&this._oDrawing.makeImage()},QRCode.prototype.clear=function(){this._oDrawing.clear()},QRCode.CorrectLevel=l}(); +//# sourceMappingURL=qrcode.min.js.map diff --git a/public/js/qrcode.min.js.map b/public/js/qrcode.min.js.map new file mode 100644 index 0000000000..a288b05321 --- /dev/null +++ b/public/js/qrcode.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["qrcode.js"],"names":["QRCode","QR8bitByte","data","this","mode","QRMode","MODE_8BIT_BYTE","parsedData","i","l","length","byteArray","code","charCodeAt","push","Array","prototype","concat","apply","unshift","QRCodeModel","typeNumber","errorCorrectLevel","modules","moduleCount","dataCache","dataList","QRPolynomial","num","shift","undefined","Error","offset","QRRSBlock","totalCount","dataCount","QRBitBuffer","buffer","_isSupportCanvas","CanvasRenderingContext2D","_getAndroid","android","sAgent","navigator","userAgent","test","aMat","toString","match","parseFloat","_getTypeNumber","sText","nCorrectLevel","nType","_getUTF8Length","len","QRCodeLimitLength","nLimit","QRErrorCorrectLevel","L","M","Q","H","replacedText","encodeURI","replace","getLength","write","put","addData","newData","isDark","row","col","getModuleCount","make","makeImpl","getBestMaskPattern","maskPattern","setupPositionProbePattern","setupPositionAdjustPattern","setupTimingPattern","setupTypeInfo","setupTypeNumber","createData","mapData","r","c","minLostPoint","pattern","lostPoint","QRUtil","getLostPoint","createMovieClip","target_mc","instance_name","depth","qr_mc","createEmptyMovieClip","cs","y","x","dark","beginFill","moveTo","lineTo","endFill","pos","getPatternPosition","j","bits","getBCHTypeNumber","mod","Math","floor","getBCHTypeInfo","inc","bitIndex","byteIndex","mask","getMask","PAD0","PAD1","rsBlocks","getRSBlocks","getLengthInBits","totalDataCount","putBit","createBytes","maxDcCount","maxEcCount","dcdata","ecdata","dcCount","ecCount","max","rsPoly","getErrorCorrectPolynomial","rawPoly","modPoly","modIndex","get","totalCodeCount","index","MODE_NUMBER","MODE_ALPHA_NUM","MODE_KANJI","QRMaskPattern","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PATTERN_POSITION_TABLE","G15","G18","G15_MASK","d","getBCHDigit","digit","errorCorrectLength","a","multiply","QRMath","gexp","type","qrCode","sameCount","count","darkCount","ratio","abs","glog","n","LOG_TABLE","EXP_TABLE","e","RS_BLOCK_TABLE","rsBlock","getRsBlockTable","list","bufIndex","bit","svgDrawer","Drawing","el","htOption","_el","_htOption","draw","oQRCode","makeSVG","tag","attrs","document","createElementNS","k","hasOwnProperty","setAttribute","nCount","width","height","clear","svg","viewBox","String","fill","colorLight","setAttributeNS","appendChild","colorDark","id","child","hasChildNodes","removeChild","lastChild","useSVG","documentElement","tagName","toLowerCase","_onMakeImage","_elImage","src","_elCanvas","toDataURL","style","display","_safeSetDataURI","fSuccess","fFail","self","_fFail","_fSuccess","_bSupportDataURI","createElement","fOnError","call","fOnSuccess","onabort","onerror","onload","_android","factor","window","devicePixelRatio","drawImage","image","sx","sy","sw","sh","dx","dy","dw","dh","nodeName","arguments","_bIsPainted","_oContext","getContext","alt","nWidth","nHeight","nRoundedWidth","round","nRoundedHeight","bIsDark","nLeft","nTop","strokeStyle","lineWidth","fillStyle","fillRect","strokeRect","ceil","makeImage","isPainted","clearRect","nNumber","aHTML","innerHTML","join","elTable","childNodes","nLeftMarginTable","offsetWidth","nTopMarginTable","offsetHeight","margin","vOption","correctLevel","text","getElementById","_oQRCode","_oDrawing","makeCode","title","CorrectLevel"],"mappings":"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A,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,IAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,IAAA,EAAA,IAAA,MAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,IAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,IAAA,MAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,IAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,IAAA,GAAA,EAAA,IAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,IAAA,MAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,IAAA,GAAA,EAAA,IAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,KAAA,EAAA,IAAA,GAAA,EAAA,IAAA,KAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,EAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,GAAA,GAAA,KAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,IAAA,IAAA,EAAA,IAAA,MAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,IAAA,IAAA,GAAA,IAAA,MAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,IAAA,IAAA,EAAA,IAAA,MAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,EAAA,IAAA,IAAA,GAAA,IAAA,MAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,IAAA,IAAA,EAAA,IAAA,MAAA,EAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,IAAA,MAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,IAAA,IAAA,EAAA,IAAA,MAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,IAAA,IAAA,EAAA,IAAA,MAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,GAAA,GAAA,EAAA,GAAA,KAAA,GAAA,IAAA,IAAA,EAAA,IAAA,MAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAAA,GAAA,GAAA,GAAA,GAAA,GAAA,KAA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","file":"qrcode.min.js","sourcesContent":["/**\n * @fileoverview\n * - Using the 'QRCode for Javascript library'\n * - Fixed dataset of 'QRCode for Javascript library' for support full-spec.\n * - this library has no dependencies.\n * \n * @author davidshimjs\n * @see http://www.d-project.com/\n * @see http://jeromeetienne.github.com/jquery-qrcode/\n */\nvar QRCode;\n\n(function () {\n\t//---------------------------------------------------------------------\n\t// QRCode for JavaScript\n\t//\n\t// Copyright (c) 2009 Kazuhiko Arase\n\t//\n\t// URL: http://www.d-project.com/\n\t//\n\t// Licensed under the MIT license:\n\t// http://www.opensource.org/licenses/mit-license.php\n\t//\n\t// The word \"QR Code\" is registered trademark of \n\t// DENSO WAVE INCORPORATED\n\t// http://www.denso-wave.com/qrcode/faqpatent-e.html\n\t//\n\t//---------------------------------------------------------------------\n\tfunction QR8bitByte(data) {\n\t\tthis.mode = QRMode.MODE_8BIT_BYTE;\n\t\tthis.data = data;\n\t\tthis.parsedData = [];\n\n\t\t// Added to support UTF-8 Characters\n\t\tfor (var i = 0, l = this.data.length; i < l; i++) {\n\t\t\tvar byteArray = [];\n\t\t\tvar code = this.data.charCodeAt(i);\n\n\t\t\tif (code > 0x10000) {\n\t\t\t\tbyteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);\n\t\t\t\tbyteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);\n\t\t\t\tbyteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);\n\t\t\t\tbyteArray[3] = 0x80 | (code & 0x3F);\n\t\t\t} else if (code > 0x800) {\n\t\t\t\tbyteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);\n\t\t\t\tbyteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);\n\t\t\t\tbyteArray[2] = 0x80 | (code & 0x3F);\n\t\t\t} else if (code > 0x80) {\n\t\t\t\tbyteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);\n\t\t\t\tbyteArray[1] = 0x80 | (code & 0x3F);\n\t\t\t} else {\n\t\t\t\tbyteArray[0] = code;\n\t\t\t}\n\n\t\t\tthis.parsedData.push(byteArray);\n\t\t}\n\n\t\tthis.parsedData = Array.prototype.concat.apply([], this.parsedData);\n\n\t\tif (this.parsedData.length != this.data.length) {\n\t\t\tthis.parsedData.unshift(191);\n\t\t\tthis.parsedData.unshift(187);\n\t\t\tthis.parsedData.unshift(239);\n\t\t}\n\t}\n\n\tQR8bitByte.prototype = {\n\t\tgetLength: function (buffer) {\n\t\t\treturn this.parsedData.length;\n\t\t},\n\t\twrite: function (buffer) {\n\t\t\tfor (var i = 0, l = this.parsedData.length; i < l; i++) {\n\t\t\t\tbuffer.put(this.parsedData[i], 8);\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction QRCodeModel(typeNumber, errorCorrectLevel) {\n\t\tthis.typeNumber = typeNumber;\n\t\tthis.errorCorrectLevel = errorCorrectLevel;\n\t\tthis.modules = null;\n\t\tthis.moduleCount = 0;\n\t\tthis.dataCache = null;\n\t\tthis.dataList = [];\n\t}\n\n\tQRCodeModel.prototype={addData:function(data){var newData=new QR8bitByte(data);this.dataList.push(newData);this.dataCache=null;},isDark:function(row,col){if(row<0||this.moduleCount<=row||col<0||this.moduleCount<=col){throw new Error(row+\",\"+col);}\n\treturn this.modules[row][col];},getModuleCount:function(){return this.moduleCount;},make:function(){this.makeImpl(false,this.getBestMaskPattern());},makeImpl:function(test,maskPattern){this.moduleCount=this.typeNumber*4+17;this.modules=new Array(this.moduleCount);for(var row=0;row=7){this.setupTypeNumber(test);}\n\tif(this.dataCache==null){this.dataCache=QRCodeModel.createData(this.typeNumber,this.errorCorrectLevel,this.dataList);}\n\tthis.mapData(this.dataCache,maskPattern);},setupPositionProbePattern:function(row,col){for(var r=-1;r<=7;r++){if(row+r<=-1||this.moduleCount<=row+r)continue;for(var c=-1;c<=7;c++){if(col+c<=-1||this.moduleCount<=col+c)continue;if((0<=r&&r<=6&&(c==0||c==6))||(0<=c&&c<=6&&(r==0||r==6))||(2<=r&&r<=4&&2<=c&&c<=4)){this.modules[row+r][col+c]=true;}else{this.modules[row+r][col+c]=false;}}}},getBestMaskPattern:function(){var minLostPoint=0;var pattern=0;for(var i=0;i<8;i++){this.makeImpl(true,i);var lostPoint=QRUtil.getLostPoint(this);if(i==0||minLostPoint>lostPoint){minLostPoint=lostPoint;pattern=i;}}\n\treturn pattern;},createMovieClip:function(target_mc,instance_name,depth){var qr_mc=target_mc.createEmptyMovieClip(instance_name,depth);var cs=1;this.make();for(var row=0;row>i)&1)==1);this.modules[Math.floor(i/3)][i%3+this.moduleCount-8-3]=mod;}\n\tfor(var i=0;i<18;i++){var mod=(!test&&((bits>>i)&1)==1);this.modules[i%3+this.moduleCount-8-3][Math.floor(i/3)]=mod;}},setupTypeInfo:function(test,maskPattern){var data=(this.errorCorrectLevel<<3)|maskPattern;var bits=QRUtil.getBCHTypeInfo(data);for(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<6){this.modules[i][8]=mod;}else if(i<8){this.modules[i+1][8]=mod;}else{this.modules[this.moduleCount-15+i][8]=mod;}}\n\tfor(var i=0;i<15;i++){var mod=(!test&&((bits>>i)&1)==1);if(i<8){this.modules[8][this.moduleCount-i-1]=mod;}else if(i<9){this.modules[8][15-i-1+1]=mod;}else{this.modules[8][15-i-1]=mod;}}\n\tthis.modules[this.moduleCount-8][8]=(!test);},mapData:function(data,maskPattern){var inc=-1;var row=this.moduleCount-1;var bitIndex=7;var byteIndex=0;for(var col=this.moduleCount-1;col>0;col-=2){if(col==6)col--;while(true){for(var c=0;c<2;c++){if(this.modules[row][col-c]==null){var dark=false;if(byteIndex>>bitIndex)&1)==1);}\n\tvar mask=QRUtil.getMask(maskPattern,row,col-c);if(mask){dark=!dark;}\n\tthis.modules[row][col-c]=dark;bitIndex--;if(bitIndex==-1){byteIndex++;bitIndex=7;}}}\n\trow+=inc;if(row<0||this.moduleCount<=row){row-=inc;inc=-inc;break;}}}}};QRCodeModel.PAD0=0xEC;QRCodeModel.PAD1=0x11;QRCodeModel.createData=function(typeNumber,errorCorrectLevel,dataList){var rsBlocks=QRRSBlock.getRSBlocks(typeNumber,errorCorrectLevel);var buffer=new QRBitBuffer();for(var i=0;itotalDataCount*8){throw new Error(\"code length overflow. (\"\n\t+buffer.getLengthInBits()\n\t+\">\"\n\t+totalDataCount*8\n\t+\")\");}\n\tif(buffer.getLengthInBits()+4<=totalDataCount*8){buffer.put(0,4);}\n\twhile(buffer.getLengthInBits()%8!=0){buffer.putBit(false);}\n\twhile(true){if(buffer.getLengthInBits()>=totalDataCount*8){break;}\n\tbuffer.put(QRCodeModel.PAD0,8);if(buffer.getLengthInBits()>=totalDataCount*8){break;}\n\tbuffer.put(QRCodeModel.PAD1,8);}\n\treturn QRCodeModel.createBytes(buffer,rsBlocks);};QRCodeModel.createBytes=function(buffer,rsBlocks){var offset=0;var maxDcCount=0;var maxEcCount=0;var dcdata=new Array(rsBlocks.length);var ecdata=new Array(rsBlocks.length);for(var r=0;r=0)?modPoly.get(modIndex):0;}}\n\tvar totalCodeCount=0;for(var i=0;i=0){d^=(QRUtil.G15<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G15)));}\n\treturn((data<<10)|d)^QRUtil.G15_MASK;},getBCHTypeNumber:function(data){var d=data<<12;while(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)>=0){d^=(QRUtil.G18<<(QRUtil.getBCHDigit(d)-QRUtil.getBCHDigit(QRUtil.G18)));}\n\treturn(data<<12)|d;},getBCHDigit:function(data){var digit=0;while(data!=0){digit++;data>>>=1;}\n\treturn digit;},getPatternPosition:function(typeNumber){return QRUtil.PATTERN_POSITION_TABLE[typeNumber-1];},getMask:function(maskPattern,i,j){switch(maskPattern){case QRMaskPattern.PATTERN000:return(i+j)%2==0;case QRMaskPattern.PATTERN001:return i%2==0;case QRMaskPattern.PATTERN010:return j%3==0;case QRMaskPattern.PATTERN011:return(i+j)%3==0;case QRMaskPattern.PATTERN100:return(Math.floor(i/2)+Math.floor(j/3))%2==0;case QRMaskPattern.PATTERN101:return(i*j)%2+(i*j)%3==0;case QRMaskPattern.PATTERN110:return((i*j)%2+(i*j)%3)%2==0;case QRMaskPattern.PATTERN111:return((i*j)%3+(i+j)%2)%2==0;default:throw new Error(\"bad maskPattern:\"+maskPattern);}},getErrorCorrectPolynomial:function(errorCorrectLength){var a=new QRPolynomial([1],0);for(var i=0;i5){lostPoint+=(3+sameCount-5);}}}\n\tfor(var row=0;row=256){n-=255;}\n\treturn QRMath.EXP_TABLE[n];},EXP_TABLE:new Array(256),LOG_TABLE:new Array(256)};for(var i=0;i<8;i++){QRMath.EXP_TABLE[i]=1<>>(7-index%8))&1)==1;},put:function(num,length){for(var i=0;i>>(length-i-1))&1)==1);}},getLengthInBits:function(){return this.length;},putBit:function(bit){var bufIndex=Math.floor(this.length/8);if(this.buffer.length<=bufIndex){this.buffer.push(0);}\n\tif(bit){this.buffer[bufIndex]|=(0x80>>>(this.length%8));}\n\tthis.length++;}};var QRCodeLimitLength=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134,106,74,58],[154,122,86,64],[192,152,108,84],[230,180,130,98],[271,213,151,119],[321,251,177,137],[367,287,203,155],[425,331,241,177],[458,362,258,194],[520,412,292,220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],[1171,911,661,511],[1273,997,715,535],[1367,1059,751,593],[1465,1125,805,625],[1528,1190,868,658],[1628,1264,908,698],[1732,1370,982,742],[1840,1452,1030,790],[1952,1538,1112,842],[2068,1628,1168,898],[2188,1722,1228,958],[2303,1809,1283,983],[2431,1911,1351,1051],[2563,1989,1423,1093],[2699,2099,1499,1139],[2809,2213,1579,1219],[2953,2331,1663,1273]];\n\t\n\tfunction _isSupportCanvas() {\n\t\treturn typeof CanvasRenderingContext2D != \"undefined\";\n\t}\n\t\n\t// android 2.x doesn't support Data-URI spec\n\tfunction _getAndroid() {\n\t\tvar android = false;\n\t\tvar sAgent = navigator.userAgent;\n\t\t\n\t\tif (/android/i.test(sAgent)) { // android\n\t\t\tandroid = true;\n\t\t\tvar aMat = sAgent.toString().match(/android ([0-9]\\.[0-9])/i);\n\t\t\t\n\t\t\tif (aMat && aMat[1]) {\n\t\t\t\tandroid = parseFloat(aMat[1]);\n\t\t\t}\n\t\t}\n\t\t\n\t\treturn android;\n\t}\n\t\n\tvar svgDrawer = (function() {\n\n\t\tvar Drawing = function (el, htOption) {\n\t\t\tthis._el = el;\n\t\t\tthis._htOption = htOption;\n\t\t};\n\n\t\tDrawing.prototype.draw = function (oQRCode) {\n\t\t\tvar _htOption = this._htOption;\n\t\t\tvar _el = this._el;\n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = Math.floor(_htOption.width / nCount);\n\t\t\tvar nHeight = Math.floor(_htOption.height / nCount);\n\n\t\t\tthis.clear();\n\n\t\t\tfunction makeSVG(tag, attrs) {\n\t\t\t\tvar el = document.createElementNS('http://www.w3.org/2000/svg', tag);\n\t\t\t\tfor (var k in attrs)\n\t\t\t\t\tif (attrs.hasOwnProperty(k)) el.setAttribute(k, attrs[k]);\n\t\t\t\treturn el;\n\t\t\t}\n\n\t\t\tvar svg = makeSVG(\"svg\" , {'viewBox': '0 0 ' + String(nCount) + \" \" + String(nCount), 'width': '100%', 'height': '100%', 'fill': _htOption.colorLight});\n\t\t\tsvg.setAttributeNS(\"http://www.w3.org/2000/xmlns/\", \"xmlns:xlink\", \"http://www.w3.org/1999/xlink\");\n\t\t\t_el.appendChild(svg);\n\n\t\t\tsvg.appendChild(makeSVG(\"rect\", {\"fill\": _htOption.colorLight, \"width\": \"100%\", \"height\": \"100%\"}));\n\t\t\tsvg.appendChild(makeSVG(\"rect\", {\"fill\": _htOption.colorDark, \"width\": \"1\", \"height\": \"1\", \"id\": \"template\"}));\n\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\tif (oQRCode.isDark(row, col)) {\n\t\t\t\t\t\tvar child = makeSVG(\"use\", {\"x\": String(col), \"y\": String(row)});\n\t\t\t\t\t\tchild.setAttributeNS(\"http://www.w3.org/1999/xlink\", \"href\", \"#template\")\n\t\t\t\t\t\tsvg.appendChild(child);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tDrawing.prototype.clear = function () {\n\t\t\twhile (this._el.hasChildNodes())\n\t\t\t\tthis._el.removeChild(this._el.lastChild);\n\t\t};\n\t\treturn Drawing;\n\t})();\n\n\tvar useSVG = document.documentElement.tagName.toLowerCase() === \"svg\";\n\n\t// Drawing in DOM by using Table tag\n\tvar Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () {\n\t\tvar Drawing = function (el, htOption) {\n\t\t\tthis._el = el;\n\t\t\tthis._htOption = htOption;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Draw the QRCode\n\t\t * \n\t\t * @param {QRCode} oQRCode\n\t\t */\n\t\tDrawing.prototype.draw = function (oQRCode) {\n var _htOption = this._htOption;\n var _el = this._el;\n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = Math.floor(_htOption.width / nCount);\n\t\t\tvar nHeight = Math.floor(_htOption.height / nCount);\n\t\t\tvar aHTML = [''];\n\t\t\t\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\taHTML.push('');\n\t\t\t\t\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\taHTML.push('');\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\taHTML.push('');\n\t\t\t}\n\t\t\t\n\t\t\taHTML.push('
');\n\t\t\t_el.innerHTML = aHTML.join('');\n\t\t\t\n\t\t\t// Fix the margin values as real size.\n\t\t\tvar elTable = _el.childNodes[0];\n\t\t\tvar nLeftMarginTable = (_htOption.width - elTable.offsetWidth) / 2;\n\t\t\tvar nTopMarginTable = (_htOption.height - elTable.offsetHeight) / 2;\n\t\t\t\n\t\t\tif (nLeftMarginTable > 0 && nTopMarginTable > 0) {\n\t\t\t\telTable.style.margin = nTopMarginTable + \"px \" + nLeftMarginTable + \"px\";\t\n\t\t\t}\n\t\t};\n\t\t\n\t\t/**\n\t\t * Clear the QRCode\n\t\t */\n\t\tDrawing.prototype.clear = function () {\n\t\t\tthis._el.innerHTML = '';\n\t\t};\n\t\t\n\t\treturn Drawing;\n\t})() : (function () { // Drawing in Canvas\n\t\tfunction _onMakeImage() {\n\t\t\tthis._elImage.src = this._elCanvas.toDataURL(\"image/png\");\n\t\t\tthis._elImage.style.display = \"block\";\n\t\t\tthis._elCanvas.style.display = \"none\";\t\t\t\n\t\t}\n\t\t\n\t\t// Android 2.1 bug workaround\n\t\t// http://code.google.com/p/android/issues/detail?id=5141\n\t\tif (this._android && this._android <= 2.1) {\n\t \tvar factor = 1 / window.devicePixelRatio;\n\t var drawImage = CanvasRenderingContext2D.prototype.drawImage; \n\t \tCanvasRenderingContext2D.prototype.drawImage = function (image, sx, sy, sw, sh, dx, dy, dw, dh) {\n\t \t\tif ((\"nodeName\" in image) && /img/i.test(image.nodeName)) {\n\t\t \tfor (var i = arguments.length - 1; i >= 1; i--) {\n\t\t \targuments[i] = arguments[i] * factor;\n\t\t \t}\n\t \t\t} else if (typeof dw == \"undefined\") {\n\t \t\t\targuments[1] *= factor;\n\t \t\t\targuments[2] *= factor;\n\t \t\t\targuments[3] *= factor;\n\t \t\t\targuments[4] *= factor;\n\t \t\t}\n\t \t\t\n\t \tdrawImage.apply(this, arguments); \n\t \t};\n\t\t}\n\t\t\n\t\t/**\n\t\t * Check whether the user's browser supports Data URI or not\n\t\t * \n\t\t * @private\n\t\t * @param {Function} fSuccess Occurs if it supports Data URI\n\t\t * @param {Function} fFail Occurs if it doesn't support Data URI\n\t\t */\n\t\tfunction _safeSetDataURI(fSuccess, fFail) {\n var self = this;\n self._fFail = fFail;\n self._fSuccess = fSuccess;\n\n // Check it just once\n if (self._bSupportDataURI === null) {\n var el = document.createElement(\"img\");\n var fOnError = function() {\n self._bSupportDataURI = false;\n\n if (self._fFail) {\n self._fFail.call(self);\n }\n };\n var fOnSuccess = function() {\n self._bSupportDataURI = true;\n\n if (self._fSuccess) {\n self._fSuccess.call(self);\n }\n };\n\n el.onabort = fOnError;\n el.onerror = fOnError;\n el.onload = fOnSuccess;\n el.src = \"data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==\"; // the Image contains 1px data.\n return;\n } else if (self._bSupportDataURI === true && self._fSuccess) {\n self._fSuccess.call(self);\n } else if (self._bSupportDataURI === false && self._fFail) {\n self._fFail.call(self);\n }\n\t\t};\n\t\t\n\t\t/**\n\t\t * Drawing QRCode by using canvas\n\t\t * \n\t\t * @constructor\n\t\t * @param {HTMLElement} el\n\t\t * @param {Object} htOption QRCode Options \n\t\t */\n\t\tvar Drawing = function (el, htOption) {\n \t\tthis._bIsPainted = false;\n \t\tthis._android = _getAndroid();\n\t\t\n\t\t\tthis._htOption = htOption;\n\t\t\tthis._elCanvas = document.createElement(\"canvas\");\n\t\t\tthis._elCanvas.width = htOption.width;\n\t\t\tthis._elCanvas.height = htOption.height;\n\t\t\tel.appendChild(this._elCanvas);\n\t\t\tthis._el = el;\n\t\t\tthis._oContext = this._elCanvas.getContext(\"2d\");\n\t\t\tthis._bIsPainted = false;\n\t\t\tthis._elImage = document.createElement(\"img\");\n\t\t\tthis._elImage.alt = \"Scan me!\";\n\t\t\tthis._elImage.style.display = \"none\";\n\t\t\tthis._el.appendChild(this._elImage);\n\t\t\tthis._bSupportDataURI = null;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Draw the QRCode\n\t\t * \n\t\t * @param {QRCode} oQRCode \n\t\t */\n\t\tDrawing.prototype.draw = function (oQRCode) {\n var _elImage = this._elImage;\n var _oContext = this._oContext;\n var _htOption = this._htOption;\n \n\t\t\tvar nCount = oQRCode.getModuleCount();\n\t\t\tvar nWidth = _htOption.width / nCount;\n\t\t\tvar nHeight = _htOption.height / nCount;\n\t\t\tvar nRoundedWidth = Math.round(nWidth);\n\t\t\tvar nRoundedHeight = Math.round(nHeight);\n\n\t\t\t_elImage.style.display = \"none\";\n\t\t\tthis.clear();\n\t\t\t\n\t\t\tfor (var row = 0; row < nCount; row++) {\n\t\t\t\tfor (var col = 0; col < nCount; col++) {\n\t\t\t\t\tvar bIsDark = oQRCode.isDark(row, col);\n\t\t\t\t\tvar nLeft = col * nWidth;\n\t\t\t\t\tvar nTop = row * nHeight;\n\t\t\t\t\t_oContext.strokeStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\n\t\t\t\t\t_oContext.lineWidth = 1;\n\t\t\t\t\t_oContext.fillStyle = bIsDark ? _htOption.colorDark : _htOption.colorLight;\t\t\t\t\t\n\t\t\t\t\t_oContext.fillRect(nLeft, nTop, nWidth, nHeight);\n\t\t\t\t\t\n\t\t\t\t\t// 안티 앨리어싱 방지 처리\n\t\t\t\t\t_oContext.strokeRect(\n\t\t\t\t\t\tMath.floor(nLeft) + 0.5,\n\t\t\t\t\t\tMath.floor(nTop) + 0.5,\n\t\t\t\t\t\tnRoundedWidth,\n\t\t\t\t\t\tnRoundedHeight\n\t\t\t\t\t);\n\t\t\t\t\t\n\t\t\t\t\t_oContext.strokeRect(\n\t\t\t\t\t\tMath.ceil(nLeft) - 0.5,\n\t\t\t\t\t\tMath.ceil(nTop) - 0.5,\n\t\t\t\t\t\tnRoundedWidth,\n\t\t\t\t\t\tnRoundedHeight\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tthis._bIsPainted = true;\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Make the image from Canvas if the browser supports Data URI.\n\t\t */\n\t\tDrawing.prototype.makeImage = function () {\n\t\t\tif (this._bIsPainted) {\n\t\t\t\t_safeSetDataURI.call(this, _onMakeImage);\n\t\t\t}\n\t\t};\n\t\t\t\n\t\t/**\n\t\t * Return whether the QRCode is painted or not\n\t\t * \n\t\t * @return {Boolean}\n\t\t */\n\t\tDrawing.prototype.isPainted = function () {\n\t\t\treturn this._bIsPainted;\n\t\t};\n\t\t\n\t\t/**\n\t\t * Clear the QRCode\n\t\t */\n\t\tDrawing.prototype.clear = function () {\n\t\t\tthis._oContext.clearRect(0, 0, this._elCanvas.width, this._elCanvas.height);\n\t\t\tthis._bIsPainted = false;\n\t\t};\n\t\t\n\t\t/**\n\t\t * @private\n\t\t * @param {Number} nNumber\n\t\t */\n\t\tDrawing.prototype.round = function (nNumber) {\n\t\t\tif (!nNumber) {\n\t\t\t\treturn nNumber;\n\t\t\t}\n\t\t\t\n\t\t\treturn Math.floor(nNumber * 1000) / 1000;\n\t\t};\n\t\t\n\t\treturn Drawing;\n\t})();\n\t\n\t/**\n\t * Get the type by string length\n\t * \n\t * @private\n\t * @param {String} sText\n\t * @param {Number} nCorrectLevel\n\t * @return {Number} type\n\t */\n\tfunction _getTypeNumber(sText, nCorrectLevel) {\t\t\t\n\t\tvar nType = 1;\n\t\tvar length = _getUTF8Length(sText);\n\t\t\n\t\tfor (var i = 0, len = QRCodeLimitLength.length; i <= len; i++) {\n\t\t\tvar nLimit = 0;\n\t\t\t\n\t\t\tswitch (nCorrectLevel) {\n\t\t\t\tcase QRErrorCorrectLevel.L :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][0];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.M :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][1];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.Q :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][2];\n\t\t\t\t\tbreak;\n\t\t\t\tcase QRErrorCorrectLevel.H :\n\t\t\t\t\tnLimit = QRCodeLimitLength[i][3];\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t\t\n\t\t\tif (length <= nLimit) {\n\t\t\t\tbreak;\n\t\t\t} else {\n\t\t\t\tnType++;\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (nType > QRCodeLimitLength.length) {\n\t\t\tthrow new Error(\"Too long data\");\n\t\t}\n\t\t\n\t\treturn nType;\n\t}\n\n\tfunction _getUTF8Length(sText) {\n\t\tvar replacedText = encodeURI(sText).toString().replace(/\\%[0-9a-fA-F]{2}/g, 'a');\n\t\treturn replacedText.length + (replacedText.length != sText ? 3 : 0);\n\t}\n\t\n\t/**\n\t * @class QRCode\n\t * @constructor\n\t * @example \n\t * new QRCode(document.getElementById(\"test\"), \"http://jindo.dev.naver.com/collie\");\n\t *\n\t * @example\n\t * var oQRCode = new QRCode(\"test\", {\n\t * text : \"http://naver.com\",\n\t * width : 128,\n\t * height : 128\n\t * });\n\t * \n\t * oQRCode.clear(); // Clear the QRCode.\n\t * oQRCode.makeCode(\"http://map.naver.com\"); // Re-create the QRCode.\n\t *\n\t * @param {HTMLElement|String} el target element or 'id' attribute of element.\n\t * @param {Object|String} vOption\n\t * @param {String} vOption.text QRCode link data\n\t * @param {Number} [vOption.width=256]\n\t * @param {Number} [vOption.height=256]\n\t * @param {String} [vOption.colorDark=\"#000000\"]\n\t * @param {String} [vOption.colorLight=\"#ffffff\"]\n\t * @param {QRCode.CorrectLevel} [vOption.correctLevel=QRCode.CorrectLevel.H] [L|M|Q|H] \n\t */\n\tQRCode = function (el, vOption) {\n\t\tthis._htOption = {\n\t\t\twidth : 256, \n\t\t\theight : 256,\n\t\t\ttypeNumber : 4,\n\t\t\tcolorDark : \"#000000\",\n\t\t\tcolorLight : \"#ffffff\",\n\t\t\tcorrectLevel : QRErrorCorrectLevel.H\n\t\t};\n\t\t\n\t\tif (typeof vOption === 'string') {\n\t\t\tvOption\t= {\n\t\t\t\ttext : vOption\n\t\t\t};\n\t\t}\n\t\t\n\t\t// Overwrites options\n\t\tif (vOption) {\n\t\t\tfor (var i in vOption) {\n\t\t\t\tthis._htOption[i] = vOption[i];\n\t\t\t}\n\t\t}\n\t\t\n\t\tif (typeof el == \"string\") {\n\t\t\tel = document.getElementById(el);\n\t\t}\n\n\t\tif (this._htOption.useSVG) {\n\t\t\tDrawing = svgDrawer;\n\t\t}\n\t\t\n\t\tthis._android = _getAndroid();\n\t\tthis._el = el;\n\t\tthis._oQRCode = null;\n\t\tthis._oDrawing = new Drawing(this._el, this._htOption);\n\t\t\n\t\tif (this._htOption.text) {\n\t\t\tthis.makeCode(this._htOption.text);\t\n\t\t}\n\t};\n\t\n\t/**\n\t * Make the QRCode\n\t * \n\t * @param {String} sText link data\n\t */\n\tQRCode.prototype.makeCode = function (sText) {\n\t\tthis._oQRCode = new QRCodeModel(_getTypeNumber(sText, this._htOption.correctLevel), this._htOption.correctLevel);\n\t\tthis._oQRCode.addData(sText);\n\t\tthis._oQRCode.make();\n\t\tthis._el.title = sText;\n\t\tthis._oDrawing.draw(this._oQRCode);\t\t\t\n\t\tthis.makeImage();\n\t};\n\t\n\t/**\n\t * Make the Image from Canvas element\n\t * - It occurs automatically\n\t * - Android below 3 doesn't support Data-URI spec.\n\t * \n\t * @private\n\t */\n\tQRCode.prototype.makeImage = function () {\n\t\tif (typeof this._oDrawing.makeImage == \"function\" && (!this._android || this._android >= 3)) {\n\t\t\tthis._oDrawing.makeImage();\n\t\t}\n\t};\n\t\n\t/**\n\t * Clear the QRCode\n\t */\n\tQRCode.prototype.clear = function () {\n\t\tthis._oDrawing.clear();\n\t};\n\t\n\t/**\n\t * @name QRCode.CorrectLevel\n\t */\n\tQRCode.CorrectLevel = QRErrorCorrectLevel;\n})();\n"]} \ No newline at end of file diff --git a/resources/views/accounts/account_gateway.blade.php b/resources/views/accounts/account_gateway.blade.php index 7be5540e4d..18c34f0fd8 100644 --- a/resources/views/accounts/account_gateway.blade.php +++ b/resources/views/accounts/account_gateway.blade.php @@ -174,13 +174,13 @@ ->label('SEPA') ->text(trans('texts.enable_sepa')) ->value(1) !!} + --> {!! Former::checkbox('enable_bitcoin') ->label(trans('texts.bitcoin')) ->text(trans('texts.enable_bitcoin')) ->value(1) !!} - --> - + {!! Former::checkbox('enable_alipay') ->label(trans('texts.alipay')) ->text(trans('texts.enable_alipay')) @@ -312,6 +312,8 @@ $('#enable_ach').change(updateWebhookShown); $('#enable_alipay').change(updateWebhookShown); $('#enable_sofort').change(updateWebhookShown); + $('#enable_sepa').change(updateWebhookShown); + $('#enable_bitcoin').change(updateWebhookShown); @if (!$accountGateway && count($secondaryGateways)) $('#primary_gateway_id').append($('