{"version":3,"sources":["jsdelivr-header.js","/npm/garanti-3dpay@1.0.10/index.js"],"names":[],"mappings":"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","file":"/npm/garanti-3dpay@1.0.10/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/garanti-3dpay@1.0.10/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","﻿var options = {};\r\nvar hexcase = 1;\r\nvar b64pad = \"=\";\r\nvar chrsz = 8;\r\nfunction hex_sha1(s) { return binb2hex(core_sha1(str2binb(s), s.length * chrsz)); }\r\nfunction b64_sha1(s) { return binb2b64(core_sha1(str2binb(s), s.length * chrsz)); }\r\nfunction str_sha1(s) { return binb2str(core_sha1(str2binb(s), s.length * chrsz)); }\r\nfunction hex_hmac_sha1(key, data) { return binb2hex(core_hmac_sha1(key, data)); }\r\nfunction b64_hmac_sha1(key, data) { return binb2b64(core_hmac_sha1(key, data)); }\r\nfunction str_hmac_sha1(key, data) { return binb2str(core_hmac_sha1(key, data)); }\r\n\r\nfunction sha1_vm_test() {\r\n\treturn hex_sha1(\"abc\") == \"a9993e364706816aba3e25717850c26c9cd0d89d\";\r\n}\r\n\r\nfunction core_sha1(x, len) {\r\n\tx[len >> 5] |= 0x80 << (24 - len % 32);\r\n\tx[((len + 64 >> 9) << 4) + 15] = len;\r\n\tvar w = Array(80);\r\n\tvar a = 1732584193;\r\n\tvar b = -271733879;\r\n\tvar c = -1732584194;\r\n\tvar d = 271733878;\r\n\tvar e = -1009589776;\r\n\tfor (var i = 0; i < x.length; i += 16) {\r\n\t\tvar olda = a;\r\n\t\tvar oldb = b;\r\n\t\tvar oldc = c;\r\n\t\tvar oldd = d;\r\n\t\tvar olde = e;\r\n\t\tfor (var j = 0; j < 80; j++) {\r\n\t\t\tif (j < 16)\r\n\t\t\t\tw[j] = x[i + j];\r\n\t\t\telse\r\n\t\t\t\tw[j] = rol(w[j - 3] ^ w[j - 8] ^ w[j - 14] ^ w[j - 16], 1);\r\n\t\t\tvar t = safe_add(safe_add(rol(a, 5), sha1_ft(j, b, c, d)),\r\n\t\t\tsafe_add(safe_add(e, w[j]), sha1_kt(j)));\r\n\t\t\te = d;\r\n\t\t\td = c;\r\n\t\t\tc = rol(b, 30);\r\n\t\t\tb = a;\r\n\t\t\ta = t;\r\n\t\t}\r\n\t\ta = safe_add(a, olda);\r\n\t\tb = safe_add(b, oldb);\r\n\t\tc = safe_add(c, oldc);\r\n\t\td = safe_add(d, oldd);\r\n\t\te = safe_add(e, olde);\r\n\t}\r\n\treturn Array(a, b, c, d, e);\r\n}\r\n\r\nfunction sha1_ft(t, b, c, d) {\r\n\tif (t < 20) return (b & c) | ((~b) & d);\r\n\tif (t < 40) return b ^ c ^ d;\r\n\tif (t < 60) return (b & c) | (b & d) | (c & d);\r\n\treturn b ^ c ^ d;\r\n}\r\n\r\nfunction sha1_kt(t) {\r\n\treturn (t < 20) ? 1518500249 : (t < 40) ? 1859775393 :\r\n\t(t < 60) ? -1894007588 : -899497514;\r\n}\r\n\r\nfunction core_hmac_sha1(key, data) {\r\n\tvar bkey = str2binb(key);\r\n\tif (bkey.length > 16) bkey = core_sha1(bkey, key.length * chrsz);\r\n\tvar ipad = Array(16), opad = Array(16);\r\n\tfor (var i = 0; i < 16; i++) {\r\n\t\tipad[i] = bkey[i] ^ 0x36363636;\r\n\t\topad[i] = bkey[i] ^ 0x5C5C5C5C;\r\n\t}\r\n\tvar hash = core_sha1(ipad.concat(str2binb(data)), 512 + data.length * chrsz);\r\n\treturn core_sha1(opad.concat(hash), 512 + 160);\r\n}\r\n\r\nfunction safe_add(x, y) {\r\n\tvar lsw = (x & 0xFFFF) + (y & 0xFFFF);\r\n\tvar msw = (x >> 16) + (y >> 16) + (lsw >> 16);\r\n\treturn (msw << 16) | (lsw & 0xFFFF);\r\n}\r\n\r\nfunction rol(num, cnt) {\r\n\treturn (num << cnt) | (num >>> (32 - cnt));\r\n}\r\n\r\nfunction str2binb(str) {\r\n\tvar bin = Array();\r\n\tvar mask = (1 << chrsz) - 1;\r\n\tfor (var i = 0; i < str.length * chrsz; i += chrsz)\r\n\t\tbin[i >> 5] |= (str.charCodeAt(i / chrsz) & mask) << (32 - chrsz - i % 32);\r\n\treturn bin;\r\n}\r\n\r\nfunction binb2str(bin) {\r\n\tvar str = \"\";\r\n\tvar mask = (1 << chrsz) - 1;\r\n\tfor (var i = 0; i < bin.length * 32; i += chrsz)\r\n\t\tstr += String.fromCharCode((bin[i >> 5] >>> (32 - chrsz - i % 32)) & mask);\r\n\treturn str;\r\n}\r\n\r\nfunction binb2hex(binarray) {\r\n\tvar hex_tab = hexcase ? \"0123456789ABCDEF\" : \"0123456789abcdef\";\r\n\tvar str = \"\";\r\n\tfor (var i = 0; i < binarray.length * 4; i++) {\r\n\t\tstr += hex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8 + 4)) & 0xF) +\r\n\t\thex_tab.charAt((binarray[i >> 2] >> ((3 - i % 4) * 8)) & 0xF);\r\n\t}\r\n\treturn str;\r\n}\r\n\r\nfunction binb2b64(binarray) {\r\n\tvar tab = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwx yz0123456789+/\";\r\n\tvar str = \"\";\r\n\tfor (var i = 0; i < binarray.length * 4; i += 3) {\r\n\t\tvar triplet = (((binarray[i >> 2] >> 8 * (3 - i % 4)) & 0xFF) << 16)\r\n\t\t| (((binarray[i + 1 >> 2] >> 8 * (3 - (i + 1) % 4)) & 0xFF) << 8)\r\n\t\t| ((binarray[i + 2 >> 2] >> 8 * (3 - (i + 2) % 4)) & 0xFF);\r\n\t\tfor (var j = 0; j < 4; j++) {\r\n\t\t\tif (i * 8 + j * 6 > binarray.length * 32)\r\n\t\t\t\tstr += b64pad;\r\n\t\t\telse\r\n\t\t\t\tstr += tab.charAt((triplet >> 6 * (3 - j)) & 0x3F);\r\n\t\t}\r\n\t}\r\n\treturn str;\r\n}\r\nvar init = function(params,res){\r\n\t\r\n\r\n\tfunction getSecurityCode(txtTerminalID,txtPassword){\r\n\t\tvar strTerminalID = \"0\" + txtTerminalID; //Basına 0 eklenerek 9 digite tamamlanmalıdır.\r\n\t\treturn hex_sha1(txtPassword + strTerminalID);\r\n\t}\r\n\r\n\tfunction getHashData(txtTerminalID,txtPassword,txtOrderID,txtCCNumber,txtAmount){\r\n\t\ttxtTerminalID = \"0\"+txtTerminalID;\r\n\t\ttxtAmount = txtAmount.toString().replace(/,/g,\"\");\r\n\t\tvar securityData = getSecurityCode(txtTerminalID,txtPassword);\r\n\t\tvar hashData = hex_sha1(txtOrderID + txtTerminalID + txtCCNumber + txtAmount + securityData);\r\n\t\treturn hashData;\r\n\t}\r\n\r\n\tfunction get3dHash(txtTerminalID,txtPassword,txtOrderID,txtCCNumber,txtAmount,successURL,errorURL,strType,strInstallmentCnt){\r\n\t\ttxtTerminalID = \"0\"+txtTerminalID;\r\n\t\ttxtAmount = txtAmount.toString().replace(/,/g,\"\");\r\n\t\tvar securityData = getSecurityCode(txtTerminalID,txtPassword);\r\n\t\tvar hashData = hex_sha1( txtTerminalID + txtOrderID + txtAmount + successURL + errorURL + strType + strInstallmentCnt + strStoreKey + securityData);\r\n\t\treturn hashData;\r\n\t}\r\n\r\n\tfunction makePayment(params,res){\r\n\t\t\r\n\t\tvar defaultParams = {\r\n\t\t\tstrMode : \"PROD\",\r\n\t\t\tstrApiVersion : \"v0.01\",\r\n\t\t\tstrTerminalProvUserID : \"PROVAUT\",\r\n\t\t\tstrTerminalUserID : \"PROVAUT\",\r\n\t\t\tstrTerminalMerchantID:\"\",\r\n\t\t\tstrType : \"sales\",\r\n\t\t\tstrAmount : \"100\",\r\n\t\t\tstrCurrencyCode : \"949\",\r\n\t\t\tstrInstallmentCount : \"\",\r\n\t\t\tstrOrderID : \"Deneme\",\r\n\t\t\tstrTerminalID:\"\",\r\n\t\t\tstrSuccessURL : \"\",\r\n\t\t\tstrErrorURL : \"\",\r\n\t\t\tstrCustomeripaddress : \"192.168.1.1\",\r\n\t\t\tstrStoreKey:\"\",\r\n\t\t\tcustomeremailaddress:\"\",\r\n\t\t\tstrProvisionPassword : \"\",\r\n\t\t\tcardnumber:\"\",\r\n\t\t\tcardexpiredatemonth:\"\",\r\n\t\t\tcardexpiredateyear:\"\",\r\n\t\t\tcardcvv2:\"\"\r\n\t\t};\r\n\t\t/*\r\n\t\t\tstrHostAddress : \"https://sanalposprov.garanti.com.tr/VPServlet\",\r\n\t\t\tstrUserID : \"XXXXXX\",\r\n\t\t\tstrMerchantID : \"XXXXXX\", // Üye syeri Numarası\r\n\t\t\tstrCustomerName : \"Yahya EK NC \",\r\n\t\t\tstrEmailAddress : \"info@tradesis.com\",\r\n\t\t\tstrNumber : \"\",\r\n\t\t\tstrExpireDate : \"\",\r\n\t\t\tstrCVV2 : \"\",\r\n\t\t\tstrCardholderPresentCode : \"0\",\r\n\t\t\tstrMotoInd : \"N\",\r\n\t\t\thashData: \"\"*/\r\n\t\t\r\n\t\t\r\n\t\tfor(var key in params)\r\n\t\t\tif (key in defaultParams)\r\n\t\t\t\tdefaultParams[key] = params[key];\r\n\t\toptions = defaultParams;\r\n\t\tvar securityData = getSecurityCode(defaultParams.strTerminalID, defaultParams.strProvisionPassword );\r\n\t\tvar myStr = defaultParams.strTerminalID + defaultParams.strOrderID + defaultParams.strAmount + defaultParams.strSuccessURL + defaultParams.strErrorURL + defaultParams.strType + defaultParams.strInstallmentCount + defaultParams.strStoreKey + securityData;\r\n\t\tvar hashData = hex_sha1(myStr);\r\n\t\tvar postParams = {\r\n\t\t\tmode:defaultParams.strMode,\r\n\t\t\tapiversion:defaultParams.strApiVersion,\r\n\t\t\tterminalprovuserid:defaultParams.strTerminalProvUserID,\r\n\t\t\tterminaluserid:defaultParams.strTerminalUserID,\r\n\t\t\tterminalmerchantid:defaultParams.strTerminalMerchantID,\r\n\t\t\ttxntype:defaultParams.strType,\r\n\t\t\ttxnamount:defaultParams.strAmount,\r\n\t\t\ttxncurrencycode:defaultParams.strCurrencyCode,\r\n\t\t\ttxninstallmentcount:defaultParams.strInstallmentCount,\r\n\t\t\torderid:defaultParams.strOrderID,\r\n\t\t\tterminalid:defaultParams.strTerminalID,\r\n\t\t\tsuccessurl:defaultParams.strSuccessURL,\r\n\t\t\terrorurl:defaultParams.strErrorURL,\r\n\t\t\tcustomeripaddress:defaultParams.strCustomeripaddress,\r\n\t\t\tsecure3dhash:hashData,\r\n\t\t\tcustomeremailaddress:defaultParams.customeremailaddress,\r\n\t\t\tsecure3dsecuritylevel:\"3D_PAY\",\r\n\t\t\tcardnumber:defaultParams.cardnumber,\r\n\t\t\tcardexpiredatemonth:defaultParams.cardexpiredatemonth,\r\n\t\t\tcardexpiredateyear:defaultParams.cardexpiredateyear,\r\n\t\t\tcardcvv2:defaultParams.cardcvv2,\r\n\t\t}\r\n\t\tvar inputs = [];\r\n\t\tfor(var key in postParams){\r\n\t\t\tinputs.push(\"<textarea style='display:none;' name='\"+key+\"'>\"+postParams[key]+\"</textarea>\");\r\n\t\t}\r\n\t\tvar html = '<html>\\\r\n\t\t<body onload=\"document.getElementById(\\'myForm\\').submit()\">\\\r\n\t\t\t<form action=\"https://sanalposprov.garanti.com.tr/servlet/gt3dengine\" method=\"post\" name=\"myForm\" id=\"myForm\">\\\r\n\t\t\t'+inputs.join('')+'\\\r\n\t\t\t</form>\\\r\n\t\t</body>\\\r\n\t\t</html>';\r\n\t\tres.writeHead(200, {\"Content-Type\":\"text/html\"});\r\n\t\tres.end(html);\r\n\t}\r\n\t\r\n\tmakePayment(params,res);\r\n}\r\n\r\nvar getStatus = function(req,callback){\r\n\tif (!options.strSuccessURL)\r\n\t\treturn undefined;\r\n\tvar success = function(){\r\n\t\tvar formidable = require('formidable');\r\n\t\tvar form = new formidable.IncomingForm();\r\n\t\tform.parse(req, function(err, fields, files) {\r\n\t\t\tvar strMode = fields[\"mode\"]\r\n\t\t\tvar strVersion = fields[\"apiversion\"]\r\n\t\t\tvar strTerminalID = fields[\"clientid\"]\r\n\t\t\tvar strTerminalID_ = \"0\" + fields[\"clientid\"]\r\n\t\t\tvar strProvisionPassword = options.strProvisionPassword; // 'Terminal UserID sifresi\r\n\t\t\tvar strProvUserID = fields[\"terminalprovuserid\"]\r\n\t\t\tvar strUserID = fields[\"terminaluserid\"]\r\n\t\t\tvar strMerchantID = fields[\"terminalmerchantid\"]  //Uye syeri Numarası\r\n\t\t\tvar strIPAddress = fields[\"customeripaddress\"]\r\n\t\t\tvar strEmailAddress = fields[\"customeremailaddress\"]\r\n\t\t\tvar strOrderID = fields[\"orderid\"]\r\n\t\t\tvar strNumber = \"\" //Kart bilgilerinin bos gitmesi gerekiyor\r\n\t\t\tvar strExpireDate = \"\" //Kart bilgilerinin bos gitmesi gerekiyor\r\n\t\t\tvar strCVV2 = \"\" //Kart bilgilerinin bos gitmesi gerekiyor\r\n\t\t\tvar strAmount = fields[\"txnamount\"] // islem Tutarı\r\n\t\t\tvar strCurrencyCode = fields[\"txncurrencycode\"]\r\n\t\t\tvar strCardholderPresentCode = \"13\"; //3D Model islemde bu de er 13 olmalı\r\n\t\t\tvar strType = fields[\"txntype\"];\r\n\t\t\tvar strMotoInd = \"N\";\r\n\t\t\tvar strAuthenticationCode = encodeURIComponent(fields[\"cavv\"])\r\n\t\t\tvar strSecurityLevel = encodeURIComponent(fields[\"eci\"])\r\n\t\t\tvar strTxnID = encodeURIComponent(fields[\"xid\"])\r\n\t\t\tvar strMD = encodeURIComponent(fields[\"md\"])\r\n\t\t\tvar SecurityData = hex_sha1(strProvisionPassword + strTerminalID_)\r\n\t\t\tvar HashData = hex_sha1(strOrderID + strTerminalID + strAmount + SecurityData)\r\n\t\t\tvar strHostAddress = \"https://sanalposprov.garanti.com.tr/VPServlet\";\r\n\t\t\tvar strXML = \"<?xml version=\\\"1.0\\\" encoding=\\\"ISO-8859-9\\\"?>\" +\r\n\t\t\t\"<GVPSRequest>\" +\r\n\t\t\t\"<Mode>\" + strMode + \"</Mode>\" +\r\n\t\t\t\"<Version>\" + strVersion + \"</Version>\" +\r\n\t\t\t\"<ChannelCode></ChannelCode>\" +\r\n\t\t\t\"<Terminal><ProvUserID>\" + strProvUserID + \"</ProvUserID><HashData>\" + HashData +\r\n\t\t\t\"</HashData><UserID>\" + strUserID + \"</UserID><ID>\" + strTerminalID + \"</ID><MerchantID>\" + strMerchantID +\r\n\t\t\t\"</MerchantID></Terminal>\" +\r\n\t\t\t\"<Customer><IPAddress>\" + strIPAddress + \"</IPAddress><EmailAddress>\" + strEmailAddress +\r\n\t\t\t\"</EmailAddress></Customer>\" +\r\n\t\t\t\"<Card><Number></Number><ExpireDate></ExpireDate></Card>\" +\r\n\t\t\t\"<Order><OrderID>\" + strOrderID +\r\n\t\t\t\"</OrderID><GroupID></GroupID><Description></Description></Order>\" +\r\n\t\t\t\"<Transaction>\" +\r\n\t\t\t\"<Type>\" + strType + \"</Type><InstallmentCnt></InstallmentCnt><Amount>\" + strAmount +\r\n\t\t\t\"</Amount><CurrencyCode>\" + strCurrencyCode + \"</CurrencyCode><CardholderPresentCode>\" + strCardholderPresentCode +\r\n\t\t\t\"</CardholderPresentCode><MotoInd>\" + strMotoInd + \"</MotoInd>\" +\r\n\t\t\t\"<Secure3D><AuthenticationCode>\" + strAuthenticationCode +\r\n\t\t\t\"</AuthenticationCode><SecurityLevel>\" + strSecurityLevel + \"</SecurityLevel><TxnID>\" + strTxnID + \"</TxnID><Md>\" +\r\n\t\t\tstrMD + \"</Md></Secure3D>\" +\r\n\t\t\t\"</Transaction>\" +\r\n\t\t\t\"</GVPSRequest>\"\r\n\t\t\trequire('request').post({url:strHostAddress,form: {data:strXML}}, function(err,httpResponse,body){\r\n\t\t\t\tif (err){\r\n\t\t\t\t\tcallback(true);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tcallback(false,body);\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\tif (req.url.split('/').pop() == options.strSuccessURL.split('/').pop()){\r\n\t\tvar formidable = require('formidable');\r\n\t\tvar form = new formidable.IncomingForm();\r\n\t\tform.parse(req, function(err, fields, files) {\r\n\t\t\tcallback(false,fields);\r\n\t\t});\r\n\t\treturn true;\r\n\t}\r\n\telse if (req.url.split('/').pop() == options.strErrorURL.split('/').pop()){\r\n\t\tvar formidable = require('formidable');\r\n\t\tvar form = new formidable.IncomingForm();\r\n\t\tform.parse(req, function(err, fields, files) {\r\n\t\t\tcallback(true,fields);\r\n\t\t});\r\n\t\treturn false;\r\n\t}\r\n\tcallback(true);\r\n\treturn undefined;\r\n}\r\n\r\nexports.init = init;\r\nexports.getStatus = getStatus;"]}