Comparing version 0.1.2 to 0.1.3
@@ -1,572 +0,7 @@ | ||
'use strict'; | ||
function _defineProperty(obj, key, value) { | ||
if (key in obj) { | ||
Object.defineProperty(obj, key, { | ||
value: value, | ||
enumerable: true, | ||
configurable: true, | ||
writable: true | ||
}); | ||
} else { | ||
obj[key] = value; | ||
} | ||
return obj; | ||
} | ||
var defineProperty = _defineProperty; | ||
function _objectSpread(target) { | ||
for (var i = 1; i < arguments.length; i++) { | ||
var source = arguments[i] != null ? arguments[i] : {}; | ||
var ownKeys = Object.keys(source); | ||
if (typeof Object.getOwnPropertySymbols === 'function') { | ||
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { | ||
return Object.getOwnPropertyDescriptor(source, sym).enumerable; | ||
})); | ||
} | ||
ownKeys.forEach(function (key) { | ||
defineProperty(target, key, source[key]); | ||
}); | ||
} | ||
return target; | ||
} | ||
var objectSpread = _objectSpread; | ||
function _classCallCheck(instance, Constructor) { | ||
if (!(instance instanceof Constructor)) { | ||
throw new TypeError("Cannot call a class as a function"); | ||
} | ||
} | ||
var classCallCheck = _classCallCheck; | ||
function _defineProperties(target, props) { | ||
for (var i = 0; i < props.length; i++) { | ||
var descriptor = props[i]; | ||
descriptor.enumerable = descriptor.enumerable || false; | ||
descriptor.configurable = true; | ||
if ("value" in descriptor) descriptor.writable = true; | ||
Object.defineProperty(target, descriptor.key, descriptor); | ||
} | ||
} | ||
function _createClass(Constructor, protoProps, staticProps) { | ||
if (protoProps) _defineProperties(Constructor.prototype, protoProps); | ||
if (staticProps) _defineProperties(Constructor, staticProps); | ||
return Constructor; | ||
} | ||
var createClass = _createClass; | ||
var NAME = '%c Auttar '; | ||
var BACKGROUND = 'background:#bc0909 ; padding: 2px; border-radius: 2px; color: #fff '; | ||
function logInfo(msg) { | ||
console.log(NAME, BACKGROUND, msg); // eslint-disable-line no-console | ||
} | ||
var privateVariables = { | ||
transactions: { | ||
credit: { | ||
base: 112, | ||
installment: 113, | ||
installmentWithInterest: 114 | ||
}, | ||
debit: { | ||
base: 101, | ||
voucher: 106 | ||
}, | ||
cancel: 128, | ||
confirm: 6, | ||
requestCancel: 191 | ||
}, | ||
return: { | ||
success: 0, | ||
timeOut: 1, | ||
notAuthorizes: 5, | ||
internetError: 10, | ||
intertefError: 12, | ||
error: 20, | ||
ecommerceError: 30 | ||
}, | ||
errorCodes: { | ||
5300: 'Valor não informado', | ||
5301: 'Cartão inválido', | ||
5302: 'Cartão vencido', | ||
5303: 'Data de vencimento inválido', | ||
5304: 'Código de segurança inválido', | ||
5305: 'Taxa de serviço excede limite', | ||
5306: 'Operação não permitida', | ||
5307: 'Dados inválidos', | ||
5308: 'Valor mínimo da parcela inválido', | ||
5309: 'Número de parcelas inválido', | ||
5310: 'Número de parcelas excede limite', | ||
5311: 'Valor da entrada maior ou igual ao valor da transação', | ||
5312: 'Valor da parcela inválido', | ||
5313: 'Data inválida', | ||
5314: 'Prazo excede limite', | ||
5316: 'NSU inválido', | ||
5317: 'Operação cancelada pelo usuário', | ||
5318: 'Documento inválido (CPF ou CNPJ)', | ||
5319: 'Valor do documento inválido', | ||
5328: 'Erro na captura de dados do Pin-Pad', | ||
5329: 'Erro na captura do chip ou cartão removido antes da hora.', | ||
5364: 'Data de emissão do cartão inválida', | ||
5355: 'O tipo de financiamento informado não é coerente com o número de parcelas' | ||
}, | ||
ws: null, | ||
timeout: null, | ||
close: true, | ||
timeoutConn: null | ||
}; | ||
function _disconnect() { | ||
privateVariables.ws.close(); | ||
} | ||
function _clearTimeout() { | ||
privateVariables.close = false; | ||
clearTimeout(privateVariables.timeoutConn); | ||
} | ||
function _timeout() { | ||
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10000; | ||
privateVariables.close = true; | ||
privateVariables.timeoutConn = setTimeout(function () { | ||
if (privateVariables.close) { | ||
privateVariables.ws.close(); | ||
} else { | ||
_clearTimeout(); | ||
} | ||
}, time); | ||
} | ||
function _connect(host, payload) { | ||
return new Promise(function (resolve, reject) { | ||
try { | ||
if (privateVariables.ws === null) { | ||
privateVariables.ws = new WebSocket(host); | ||
} else if (privateVariables.ws.readyState === 2 || privateVariables.ws.readyState === 3) { | ||
_disconnect(); | ||
privateVariables.ws = new WebSocket(host); | ||
} | ||
} catch (e) { | ||
reject(e); | ||
} | ||
if (privateVariables.ws) { | ||
_timeout(); | ||
privateVariables.ws.onopen = function () { | ||
_clearTimeout(); | ||
privateVariables.ws.send(JSON.stringify(payload)); | ||
_timeout(60000); | ||
}; | ||
privateVariables.ws.onmessage = function (evtMsg) { | ||
_clearTimeout(); | ||
resolve(JSON.parse(evtMsg.data)); | ||
}; | ||
privateVariables.ws.onerror = function (evtError) { | ||
_clearTimeout(); | ||
reject(evtError); | ||
}; | ||
} | ||
}); | ||
} | ||
/** | ||
* @typedef {Object} AuttarCupomLinha | ||
* @property {string} linha | ||
/*! | ||
* auttarjs v0.1.3 | ||
* (c) Heitor Ramon Ribeiro <heitor.ramon@gmail.com> | ||
* Released under the MIT License. | ||
*/ | ||
/** @typedef {Object} AuttarSuccessResponse | ||
* @property {String} bandeira | ||
* @property {String} cartao | ||
* @property {String} codigoAprovacao | ||
* @property {String} codigoErro | ||
* @property {String} codigoRespAutorizadora | ||
* @property {Array} cupomCliente | ||
* @property {Array.<AuttarCupomLinha>} cupomEstabelecimento | ||
* @property {Array.<AuttarCupomLinha>} cupomReduzido | ||
* @property {Array} display | ||
* @property {Number} nsuAutorizadora | ||
* @property {Number} nsuCTF | ||
* @property {Number} operacao | ||
* @property {String} redeAdquirente | ||
* @property {Number} retorno | ||
* @property {String} valorTransacao | ||
*/ | ||
/** | ||
* @class Auttar WebSocket | ||
* @constructor {AuttarConstructor} | ||
*/ | ||
/** | ||
* @typedef {object} AuttarConstructor | ||
* @property {string} host - WebSocket Host URL | ||
* @property {boolean} debug - Método debug da classe | ||
* @property {string} orderId - Número de identificação da venda | ||
* @property {float} amount - Valor da venda | ||
* @property {AuttarSuccessResponse} ctfTrasaction - Objecto de resposta do websocket | ||
*/ | ||
var Auttar = | ||
/*#__PURE__*/ | ||
function () { | ||
/** | ||
* Construtor da classe | ||
* @param {AuttarConstructor} props | ||
*/ | ||
function Auttar(props) { | ||
classCallCheck(this, Auttar); | ||
this.__host = props.host || 'ws://localhost:2500'; | ||
this.debug = props.debug || false; | ||
this.orderId = props.orderId || ''; | ||
this.__amount = 0; | ||
if (props.amount) this.amount = props.amount; | ||
this.__transactionDate = new Date().toLocaleDateString('pt-BR', { | ||
year: '2-digit', | ||
month: '2-digit', | ||
day: '2-digit', | ||
timeZone: 'America/Sao_Paulo' | ||
}).replace(/\//g, ''); | ||
this.ctfTransaction = {}; | ||
this.__debugMessage = []; | ||
} | ||
createClass(Auttar, [{ | ||
key: "debugLog", | ||
value: function debugLog(message) { | ||
if (this.debug) { | ||
logInfo(message); | ||
} | ||
} | ||
}, { | ||
key: "classError", | ||
value: function classError(message) { | ||
this.debugMessage = { | ||
message: message, | ||
logLevel: 'error' | ||
}; | ||
return new Error(message); | ||
} | ||
}, { | ||
key: "credit", | ||
/** | ||
* Pagamento com cartão de crédito, podendo ser declarado | ||
* com parcelamento e se o juro é da administradora. | ||
* @param {number} installments - número de parcelas | ||
* @param {boolean} withInterest - juros pela administradora | ||
* @returns {Promise<AuttarSuccessResponse>} | ||
*/ | ||
value: function credit() { | ||
var _this = this; | ||
var installments = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; | ||
var withInterest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | ||
return new Promise(function (resolve, reject) { | ||
var requisition = { | ||
valorTransacao: _this.amount, | ||
documento: _this.orderId, | ||
operacao: privateVariables.transactions.credit.base, | ||
dataTransacao: _this.__transactionDate | ||
}; | ||
if (installments > 1) { | ||
requisition.operacao = privateVariables.transactions.credit.installment; | ||
requisition.numeroParcelas = installments; | ||
} | ||
if (installments > 1 && withInterest) { | ||
requisition.operacao = privateVariables.transactions.credit.installmentWithInterest; | ||
requisition.numeroParcelas = installments; | ||
} | ||
_this.debugMessage = { | ||
message: "Pagamento com cart\xE3o de cr\xE9dito. Opera\xE7\xE3o: ".concat(requisition.operacao, ". Valor ").concat(_this.amount, " centavos") | ||
}; | ||
_connect(_this.__host, requisition).then(function (response) { | ||
if (response.retorno > 0) { | ||
var errorMsg = privateVariables.errorCodes[response.codigoErro] || response.display.length ? response.display.map(function (m) { | ||
return m.mensagem; | ||
}).join(' ') : ' '; | ||
var error = _this.classError("Transa\xE7\xE3o n\xE3o conclu\xEDda ".concat(response.codigoErro, ": ").concat(errorMsg)); | ||
reject(error); | ||
} | ||
_this.ctfTransaction = objectSpread({}, response, { | ||
dataTransacao: _this.__transactionDate | ||
}); | ||
_this.debugMessage = { | ||
message: "Resposta do servidor -> ".concat(JSON.stringify(response)), | ||
logLevel: 'log' | ||
}; | ||
_this.debugMessage = { | ||
message: _this.ctfTransaction, | ||
logLevel: 'json' | ||
}; | ||
resolve(response); | ||
}).catch(function (e) { | ||
return _this.classError(e); | ||
}); | ||
}); | ||
} | ||
/** | ||
* Pagamento com cartão de crédito, podendo ser | ||
* declarado com parcelamento e se o juro é da administradora. | ||
* @param {boolean} isVoucher | ||
* @returns {Promise<AuttarSuccessResponse>} | ||
*/ | ||
}, { | ||
key: "debit", | ||
value: function debit() { | ||
var _this2 = this; | ||
var isVoucher = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; | ||
return new Promise(function (resolve, reject) { | ||
var operacao = isVoucher ? privateVariables.transactions.debit.voucher : privateVariables.transactions.debit.base; | ||
_this2.debugMessage = { | ||
message: "Pagamento com cart\xE3o de d\xE9bito. Opera\xE7\xE3o: ".concat(operacao, ". Valor ").concat(_this2.amount, " centavos") | ||
}; | ||
_connect(_this2.__host, { | ||
valorTransacao: _this2.amount, | ||
documento: _this2.orderId, | ||
dataTransacao: _this2.__transactionDate, | ||
operacao: operacao | ||
}).then(function (response) { | ||
if (response.retorno > 0) { | ||
var errorMsg = privateVariables.errorCodes[response.codigoErro] || response.display.length ? response.display.map(function (m) { | ||
return m.mensagem; | ||
}).join(' ') : ' '; | ||
var error = _this2.classError("Transa\xE7\xE3o n\xE3o conclu\xEDda ".concat(response.codigoErro, ": ").concat(errorMsg)); | ||
reject(error); | ||
} | ||
_this2.ctfTransaction = objectSpread({}, response, { | ||
dataTransacao: _this2.__transactionDate | ||
}); | ||
_this2.debugMessage = { | ||
message: "Resposta do servidor -> ".concat(JSON.stringify(response)), | ||
logLevel: 'log' | ||
}; | ||
_this2.debugMessage = { | ||
message: _this2.ctfTransaction, | ||
logLevel: 'json' | ||
}; | ||
resolve(response); | ||
}).catch(function (e) { | ||
return _this2.classError(e); | ||
}); | ||
}); | ||
} | ||
/** | ||
* Confirma a operação com o CTF | ||
* @returns {Promise<void>} | ||
*/ | ||
}, { | ||
key: "confirm", | ||
value: function confirm() { | ||
var _this3 = this; | ||
return new Promise(function (resolve, reject) { | ||
var operacao = privateVariables.transactions.confirm; | ||
_this3.debugMessage = { | ||
message: "Confirma\xE7\xE3o de pagamento da opera\xE7\xE3o realizada.\n Opera\xE7\xE3o: ".concat(_this3.ctfTransaction.operacao, "\n Data: ").concat(_this3.ctfTransaction.dataTransacao, "\n Valor: ").concat(_this3.amount, "\n Bandeira: ").concat(_this3.ctfTransaction.bandeira, "\n Cart\xE3o: ").concat(_this3.ctfTransaction.cartao) | ||
}; | ||
_connect(_this3.__host, { | ||
operacao: operacao | ||
}).then(function (response) { | ||
if (response.retorno > 0) { | ||
var errorMsg = privateVariables.errorCodes[response.codigoErro] || response.display.length ? response.display.map(function (m) { | ||
return m.mensagem; | ||
}).join(' ') : ' '; | ||
var error = _this3.classError("Transa\xE7\xE3o n\xE3o conclu\xEDda ".concat(response.codigoErro, ": ").concat(errorMsg)); | ||
reject(error); | ||
} | ||
_this3.ctfTransaction = Object.assign(_this3.ctfTransaction, response); | ||
_this3.debugMessage = { | ||
message: "Resposta do servidor -> ".concat(JSON.stringify(response)), | ||
logLevel: 'log' | ||
}; | ||
_this3.debugMessage = { | ||
message: response, | ||
logLevel: 'json' | ||
}; | ||
resolve(response); | ||
}).catch(function (e) { | ||
return _this3.classError(e); | ||
}); | ||
}); | ||
} | ||
/** | ||
* Inicia o processo de cancelamento de compra. | ||
* @returns {Promise<void>} | ||
*/ | ||
}, { | ||
key: "requestCancellation", | ||
value: function requestCancellation() { | ||
var _this4 = this; | ||
return new Promise(function (resolve, reject) { | ||
var operacao = privateVariables.transactions.requestCancel; | ||
_this4.debugMessage = { | ||
message: "Requisi\xE7\xE3o de cancelamento de compra.\n Opera\xE7\xE3o: ".concat(_this4.ctfTransaction.operacao, "\n Data: ").concat(_this4.ctfTransaction.dataTransacao, "\n Valor: ").concat(_this4.amount, "\n NSU: ").concat(_this4.ctfTransaction.nsuCTF) | ||
}; | ||
_connect(_this4.__host, { | ||
operacao: operacao | ||
}).then(function (response) { | ||
if (response.retorno > 0) { | ||
var errorMsg = privateVariables.errorCodes[response.codigoErro] || response.display.length ? response.display.map(function (m) { | ||
return m.mensagem; | ||
}).join(' ') : ' '; | ||
var error = _this4.classError("Transa\xE7\xE3o n\xE3o conclu\xEDda ".concat(response.codigoErro, ": ").concat(errorMsg)); | ||
reject(error); | ||
} | ||
_this4.debugMessage = { | ||
message: "Resposta do servidor -> ".concat(JSON.stringify(response)), | ||
logLevel: 'log' | ||
}; | ||
_this4.debugMessage = { | ||
message: responsea, | ||
logLevel: 'json' | ||
}; | ||
resolve(response); | ||
}).catch(function (e) { | ||
return _this4.classError(e); | ||
}); | ||
}); | ||
} | ||
/** | ||
* Realiza o cancelamento da compra. | ||
* @param {string} prop.dataTransacao | ||
* @param {number} prop.amount | ||
* @param {string} prop.nsuCTF | ||
* @returns {Promise<any>} | ||
*/ | ||
}, { | ||
key: "cancel", | ||
value: function cancel() { | ||
var _this5 = this; | ||
var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
return new Promise(function (resolve, reject) { | ||
var operacao = privateVariables.transactions.cancel; | ||
var tefOperacao = prop.operacao || _this5.ctfTransaction.operacao; | ||
var tefDataTransacao = prop.dataTransacao || _this5.ctfTransaction.dataTransacao; | ||
var tefAmount = prop.amount ? parseFloat(prop.amount) * 100 : _this5.ctfTransaction.valorTransacao; | ||
var tefNsuCTF = prop.nsuCTF || _this5.ctfTransaction.nsuCTF; | ||
_this5.debugMessage = { | ||
message: "Cancelamento de compra.\n Opera\xE7\xE3o: ".concat(tefOperacao, "\n Data: ").concat(tefDataTransacao, "\n Valor: ").concat(tefAmount, "\n NSU: ").concat(tefNsuCTF) | ||
}; | ||
_connect(_this5.__host, { | ||
operacao: operacao, | ||
valorTransacao: tefAmount, | ||
dataTransacao: tefDataTransacao, | ||
nsuCTF: tefNsuCTF | ||
}).then(function (response) { | ||
if (response.retorno > 0) { | ||
var errorMsg = privateVariables.errorCodes[response.codigoErro] || response.display[0].mensagem; | ||
var error = _this5.classError("Transa\xE7\xE3o n\xE3o conclu\xEDda ".concat(response.codigoErro, ": ").concat(errorMsg)); | ||
reject(error); | ||
} | ||
_this5.debugMessage = { | ||
message: "Resposta do servidor -> ".concat(JSON.stringify(response)), | ||
logLevel: 'log' | ||
}; | ||
_this5.debugMessage = { | ||
message: response, | ||
logLevel: 'json' | ||
}; | ||
resolve(response); | ||
}).catch(function (e) { | ||
return _this5.classError(e); | ||
}); | ||
}); | ||
} | ||
}, { | ||
key: "debugMessage", | ||
get: function get() { | ||
return this.__debugMessage; | ||
}, | ||
set: function set(value) { | ||
if (this.debug) { | ||
var debugLog = objectSpread({ | ||
logLevel: 'info', | ||
message: '' | ||
}, value, { | ||
date: new Date().toISOString() | ||
}); | ||
if (debugLog.logLevel === 'log' && debugLog.message) { | ||
return this.debugLog(debugLog.message); | ||
} | ||
this.__debugMessage.push(objectSpread({}, debugLog, { | ||
date: new Date().toISOString() | ||
})); | ||
if (debugLog.logLevel === 'info' && debugLog.message) { | ||
this.debugLog(debugLog.message); | ||
} | ||
} | ||
} | ||
}, { | ||
key: "amount", | ||
get: function get() { | ||
return this.__amount; | ||
} | ||
/** | ||
* Define o valor em para a classe em centavos | ||
* @param value | ||
*/ | ||
, | ||
set: function set(value) { | ||
if (typeof value === 'number' && value <= 0) { | ||
throw new Error('Não é possível definir um valor menor ou igual a zero.'); | ||
} else { | ||
this.__amount = parseFloat(value) * 100; | ||
} | ||
} | ||
}]); | ||
return Auttar; | ||
}(); | ||
module.exports = Auttar; | ||
"use strict";function _classCallCheck(a,e){if(!(a instanceof e))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,e){for(var o=0;o<e.length;o++){var r=e[o];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(a,r.key,r)}}function _createClass(a,e,o){return e&&_defineProperties(a.prototype,e),o&&_defineProperties(a,o),a}var NAME="%c Auttar ",BACKGROUND="background:#bc0909 ; padding: 2px; border-radius: 2px; color: #fff ";function logInfo(a){console.log(NAME,BACKGROUND,a)}var privateVariables={transactions:{credit:{base:112,installment:113,installmentWithInterest:114},debit:{base:101,voucher:106},cancel:128,confirm:6,requestCancel:191},return:{success:0,timeOut:1,notAuthorizes:5,internetError:10,intertefError:12,error:20,ecommerceError:30},errorCodes:{5300:"Valor não informado",5301:"Cartão inválido",5302:"Cartão vencido",5303:"Data de vencimento inválido",5304:"Código de segurança inválido",5305:"Taxa de serviço excede limite",5306:"Operação não permitida",5307:"Dados inválidos",5308:"Valor mínimo da parcela inválido",5309:"Número de parcelas inválido",5310:"Número de parcelas excede limite",5311:"Valor da entrada maior ou igual ao valor da transação",5312:"Valor da parcela inválido",5313:"Data inválida",5314:"Prazo excede limite",5316:"NSU inválido",5317:"Operação cancelada pelo usuário",5318:"Documento inválido (CPF ou CNPJ)",5319:"Valor do documento inválido",5328:"Erro na captura de dados do Pin-Pad",5329:"Erro na captura do chip ou cartão removido antes da hora.",5364:"Data de emissão do cartão inválida",5355:"O tipo de financiamento informado não é coerente com o número de parcelas"},ws:null,timeout:null,close:!0,timeoutConn:null};function _disconnect(){privateVariables.ws.close()}function _clearTimeout(){privateVariables.close=!1,clearTimeout(privateVariables.timeoutConn)}function _timeout(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e4;privateVariables.close=!0,privateVariables.timeoutConn=setTimeout(function(){privateVariables.close?privateVariables.ws.close():_clearTimeout()},a)}function _connect(a,e){return new Promise(function(o,r){try{null===privateVariables.ws?privateVariables.ws=new WebSocket(a):2!==privateVariables.ws.readyState&&3!==privateVariables.ws.readyState||(_disconnect(),privateVariables.ws=new WebSocket(a))}catch(a){r(a)}privateVariables.ws&&(_timeout(),privateVariables.ws.onopen=function(){_clearTimeout(),privateVariables.ws.send(JSON.stringify(e)),_timeout(6e4)},privateVariables.ws.onmessage=function(a){_clearTimeout(),o(JSON.parse(a.data))},privateVariables.ws.onerror=function(a){_clearTimeout(),r(a)})})}var Auttar=function(){function a(e){_classCallCheck(this,a),this.__host=e.host||"ws://localhost:2500",this.debug=e.debug||!1,this.orderId=e.orderId||"",this.__amount=0,e.amount&&(this.amount=e.amount),this.__transactionDate=(new Date).toLocaleDateString("pt-BR",{year:"2-digit",month:"2-digit",day:"2-digit",timeZone:"America/Sao_Paulo"}).replace(/\//g,""),this.ctfTransaction={},this.__debugMessage=[]}return _createClass(a,[{key:"debugLog",value:function(a){this.debug&&logInfo(a)}},{key:"classError",value:function(a){return this.debugMessage={message:a,logLevel:"error"},new Error(a)}},{key:"credit",value:function(){var a=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,o=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(r,n){var t={valorTransacao:a.amount,documento:a.orderId,operacao:privateVariables.transactions.credit.base,dataTransacao:a.__transactionDate};e>1&&(t.operacao=privateVariables.transactions.credit.installment,t.numeroParcelas=e),e>1&&o&&(t.operacao=privateVariables.transactions.credit.installmentWithInterest,t.numeroParcelas=e),a.debugMessage={message:"Pagamento com cartão de crédito. Operação: ".concat(t.operacao,". Valor ").concat(a.amount," centavos")},_connect(a.__host,t).then(function(e){if(e.retorno>0){var o=privateVariables.errorCodes[e.codigoErro]||e.display.length?e.display.map(function(a){return a.mensagem}).join(" "):" ",t=a.classError("Transação não concluída ".concat(e.codigoErro,": ").concat(o));n(t)}a.ctfTransaction=Object.assign({},e,{dataTransacao:a.__transactionDate}),a.debugMessage={message:"Resposta do servidor -> ".concat(JSON.stringify(e)),logLevel:"log"},a.debugMessage={message:a.ctfTransaction,logLevel:"json"},r(e)}).catch(function(e){return a.classError(e)})})}},{key:"debit",value:function(){var a=this,e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new Promise(function(o,r){var n=e?privateVariables.transactions.debit.voucher:privateVariables.transactions.debit.base;a.debugMessage={message:"Pagamento com cartão de débito. Operação: ".concat(n,". Valor ").concat(a.amount," centavos")},_connect(a.__host,{valorTransacao:a.amount,documento:a.orderId,dataTransacao:a.__transactionDate,operacao:n}).then(function(e){if(e.retorno>0){var n=privateVariables.errorCodes[e.codigoErro]||e.display.length?e.display.map(function(a){return a.mensagem}).join(" "):" ",t=a.classError("Transação não concluída ".concat(e.codigoErro,": ").concat(n));r(t)}a.ctfTransaction=Object.assign({},e,{dataTransacao:a.__transactionDate}),a.debugMessage={message:"Resposta do servidor -> ".concat(JSON.stringify(e)),logLevel:"log"},a.debugMessage={message:a.ctfTransaction,logLevel:"json"},o(e)}).catch(function(e){return a.classError(e)})})}},{key:"confirm",value:function(){var a=this;return new Promise(function(e,o){var r=privateVariables.transactions.confirm;a.debugMessage={message:"Confirmação de pagamento da operação realizada.\n Operação: ".concat(a.ctfTransaction.operacao,"\n Data: ").concat(a.ctfTransaction.dataTransacao,"\n Valor: ").concat(a.amount,"\n Bandeira: ").concat(a.ctfTransaction.bandeira,"\n Cartão: ").concat(a.ctfTransaction.cartao)},_connect(a.__host,{operacao:r}).then(function(r){if(r.retorno>0){var n=privateVariables.errorCodes[r.codigoErro]||r.display.length?r.display.map(function(a){return a.mensagem}).join(" "):" ",t=a.classError("Transação não concluída ".concat(r.codigoErro,": ").concat(n));o(t)}a.ctfTransaction=Object.assign(a.ctfTransaction,r),a.debugMessage={message:"Resposta do servidor -> ".concat(JSON.stringify(r)),logLevel:"log"},a.debugMessage={message:r,logLevel:"json"},e(r)}).catch(function(e){return a.classError(e)})})}},{key:"requestCancellation",value:function(){var a=this;return new Promise(function(e,o){var r=privateVariables.transactions.requestCancel;a.debugMessage={message:"Requisição de cancelamento de compra.\n Operação: ".concat(a.ctfTransaction.operacao,"\n Data: ").concat(a.ctfTransaction.dataTransacao,"\n Valor: ").concat(a.amount,"\n NSU: ").concat(a.ctfTransaction.nsuCTF)},_connect(a.__host,{operacao:r}).then(function(r){if(r.retorno>0){var n=privateVariables.errorCodes[r.codigoErro]||r.display.length?r.display.map(function(a){return a.mensagem}).join(" "):" ",t=a.classError("Transação não concluída ".concat(r.codigoErro,": ").concat(n));o(t)}a.debugMessage={message:"Resposta do servidor -> ".concat(JSON.stringify(r)),logLevel:"log"},a.debugMessage={message:responsea,logLevel:"json"},e(r)}).catch(function(e){return a.classError(e)})})}},{key:"cancel",value:function(){var a=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(o,r){var n=privateVariables.transactions.cancel,t=e.operacao||a.ctfTransaction.operacao,s=e.dataTransacao||a.ctfTransaction.dataTransacao,i=e.amount?100*parseFloat(e.amount):a.ctfTransaction.valorTransacao,c=e.nsuCTF||a.ctfTransaction.nsuCTF;a.debugMessage={message:"Cancelamento de compra.\n Operação: ".concat(t,"\n Data: ").concat(s,"\n Valor: ").concat(i,"\n NSU: ").concat(c)},_connect(a.__host,{operacao:n,valorTransacao:i,dataTransacao:s,nsuCTF:c}).then(function(e){if(e.retorno>0){var n=privateVariables.errorCodes[e.codigoErro]||e.display[0].mensagem,t=a.classError("Transação não concluída ".concat(e.codigoErro,": ").concat(n));r(t)}a.debugMessage={message:"Resposta do servidor -> ".concat(JSON.stringify(e)),logLevel:"log"},a.debugMessage={message:e,logLevel:"json"},o(e)}).catch(function(e){return a.classError(e)})})}},{key:"debugMessage",get:function(){return this.__debugMessage},set:function(a){if(this.debug){var e=Object.assign({logLevel:"info",message:""},a,{date:(new Date).toISOString()});if("log"===e.logLevel&&e.message)return this.debugLog(e.message);this.__debugMessage.push(Object.assign({},e,{date:(new Date).toISOString()})),"info"===e.logLevel&&e.message&&this.debugLog(e.message)}}},{key:"amount",get:function(){return this.__amount},set:function(a){if("number"==typeof a&&a<=0)throw new Error("Não é possível definir um valor menor ou igual a zero.");this.__amount=100*parseFloat(a)}}]),a}();module.exports=Auttar; | ||
//# sourceMappingURL=index.js.map |
@@ -1,578 +0,7 @@ | ||
(function (global, factory) { | ||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : | ||
typeof define === 'function' && define.amd ? define(factory) : | ||
(global.auttarjs = factory()); | ||
}(this, (function () { 'use strict'; | ||
function _defineProperty(obj, key, value) { | ||
if (key in obj) { | ||
Object.defineProperty(obj, key, { | ||
value: value, | ||
enumerable: true, | ||
configurable: true, | ||
writable: true | ||
}); | ||
} else { | ||
obj[key] = value; | ||
} | ||
return obj; | ||
} | ||
var defineProperty = _defineProperty; | ||
function _objectSpread(target) { | ||
for (var i = 1; i < arguments.length; i++) { | ||
var source = arguments[i] != null ? arguments[i] : {}; | ||
var ownKeys = Object.keys(source); | ||
if (typeof Object.getOwnPropertySymbols === 'function') { | ||
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { | ||
return Object.getOwnPropertyDescriptor(source, sym).enumerable; | ||
})); | ||
} | ||
ownKeys.forEach(function (key) { | ||
defineProperty(target, key, source[key]); | ||
}); | ||
} | ||
return target; | ||
} | ||
var objectSpread = _objectSpread; | ||
function _classCallCheck(instance, Constructor) { | ||
if (!(instance instanceof Constructor)) { | ||
throw new TypeError("Cannot call a class as a function"); | ||
} | ||
} | ||
var classCallCheck = _classCallCheck; | ||
function _defineProperties(target, props) { | ||
for (var i = 0; i < props.length; i++) { | ||
var descriptor = props[i]; | ||
descriptor.enumerable = descriptor.enumerable || false; | ||
descriptor.configurable = true; | ||
if ("value" in descriptor) descriptor.writable = true; | ||
Object.defineProperty(target, descriptor.key, descriptor); | ||
} | ||
} | ||
function _createClass(Constructor, protoProps, staticProps) { | ||
if (protoProps) _defineProperties(Constructor.prototype, protoProps); | ||
if (staticProps) _defineProperties(Constructor, staticProps); | ||
return Constructor; | ||
} | ||
var createClass = _createClass; | ||
var NAME = '%c Auttar '; | ||
var BACKGROUND = 'background:#bc0909 ; padding: 2px; border-radius: 2px; color: #fff '; | ||
function logInfo(msg) { | ||
console.log(NAME, BACKGROUND, msg); // eslint-disable-line no-console | ||
} | ||
var privateVariables = { | ||
transactions: { | ||
credit: { | ||
base: 112, | ||
installment: 113, | ||
installmentWithInterest: 114 | ||
}, | ||
debit: { | ||
base: 101, | ||
voucher: 106 | ||
}, | ||
cancel: 128, | ||
confirm: 6, | ||
requestCancel: 191 | ||
}, | ||
return: { | ||
success: 0, | ||
timeOut: 1, | ||
notAuthorizes: 5, | ||
internetError: 10, | ||
intertefError: 12, | ||
error: 20, | ||
ecommerceError: 30 | ||
}, | ||
errorCodes: { | ||
5300: 'Valor não informado', | ||
5301: 'Cartão inválido', | ||
5302: 'Cartão vencido', | ||
5303: 'Data de vencimento inválido', | ||
5304: 'Código de segurança inválido', | ||
5305: 'Taxa de serviço excede limite', | ||
5306: 'Operação não permitida', | ||
5307: 'Dados inválidos', | ||
5308: 'Valor mínimo da parcela inválido', | ||
5309: 'Número de parcelas inválido', | ||
5310: 'Número de parcelas excede limite', | ||
5311: 'Valor da entrada maior ou igual ao valor da transação', | ||
5312: 'Valor da parcela inválido', | ||
5313: 'Data inválida', | ||
5314: 'Prazo excede limite', | ||
5316: 'NSU inválido', | ||
5317: 'Operação cancelada pelo usuário', | ||
5318: 'Documento inválido (CPF ou CNPJ)', | ||
5319: 'Valor do documento inválido', | ||
5328: 'Erro na captura de dados do Pin-Pad', | ||
5329: 'Erro na captura do chip ou cartão removido antes da hora.', | ||
5364: 'Data de emissão do cartão inválida', | ||
5355: 'O tipo de financiamento informado não é coerente com o número de parcelas' | ||
}, | ||
ws: null, | ||
timeout: null, | ||
close: true, | ||
timeoutConn: null | ||
}; | ||
function _disconnect() { | ||
privateVariables.ws.close(); | ||
} | ||
function _clearTimeout() { | ||
privateVariables.close = false; | ||
clearTimeout(privateVariables.timeoutConn); | ||
} | ||
function _timeout() { | ||
var time = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10000; | ||
privateVariables.close = true; | ||
privateVariables.timeoutConn = setTimeout(function () { | ||
if (privateVariables.close) { | ||
privateVariables.ws.close(); | ||
} else { | ||
_clearTimeout(); | ||
} | ||
}, time); | ||
} | ||
function _connect(host, payload) { | ||
return new Promise(function (resolve, reject) { | ||
try { | ||
if (privateVariables.ws === null) { | ||
privateVariables.ws = new WebSocket(host); | ||
} else if (privateVariables.ws.readyState === 2 || privateVariables.ws.readyState === 3) { | ||
_disconnect(); | ||
privateVariables.ws = new WebSocket(host); | ||
} | ||
} catch (e) { | ||
reject(e); | ||
} | ||
if (privateVariables.ws) { | ||
_timeout(); | ||
privateVariables.ws.onopen = function () { | ||
_clearTimeout(); | ||
privateVariables.ws.send(JSON.stringify(payload)); | ||
_timeout(60000); | ||
}; | ||
privateVariables.ws.onmessage = function (evtMsg) { | ||
_clearTimeout(); | ||
resolve(JSON.parse(evtMsg.data)); | ||
}; | ||
privateVariables.ws.onerror = function (evtError) { | ||
_clearTimeout(); | ||
reject(evtError); | ||
}; | ||
} | ||
}); | ||
} | ||
/** | ||
* @typedef {Object} AuttarCupomLinha | ||
* @property {string} linha | ||
*/ | ||
/** @typedef {Object} AuttarSuccessResponse | ||
* @property {String} bandeira | ||
* @property {String} cartao | ||
* @property {String} codigoAprovacao | ||
* @property {String} codigoErro | ||
* @property {String} codigoRespAutorizadora | ||
* @property {Array} cupomCliente | ||
* @property {Array.<AuttarCupomLinha>} cupomEstabelecimento | ||
* @property {Array.<AuttarCupomLinha>} cupomReduzido | ||
* @property {Array} display | ||
* @property {Number} nsuAutorizadora | ||
* @property {Number} nsuCTF | ||
* @property {Number} operacao | ||
* @property {String} redeAdquirente | ||
* @property {Number} retorno | ||
* @property {String} valorTransacao | ||
*/ | ||
/** | ||
* @class Auttar WebSocket | ||
* @constructor {AuttarConstructor} | ||
*/ | ||
/** | ||
* @typedef {object} AuttarConstructor | ||
* @property {string} host - WebSocket Host URL | ||
* @property {boolean} debug - Método debug da classe | ||
* @property {string} orderId - Número de identificação da venda | ||
* @property {float} amount - Valor da venda | ||
* @property {AuttarSuccessResponse} ctfTrasaction - Objecto de resposta do websocket | ||
*/ | ||
var Auttar = | ||
/*#__PURE__*/ | ||
function () { | ||
/** | ||
* Construtor da classe | ||
* @param {AuttarConstructor} props | ||
*/ | ||
function Auttar(props) { | ||
classCallCheck(this, Auttar); | ||
this.__host = props.host || 'ws://localhost:2500'; | ||
this.debug = props.debug || false; | ||
this.orderId = props.orderId || ''; | ||
this.__amount = 0; | ||
if (props.amount) this.amount = props.amount; | ||
this.__transactionDate = new Date().toLocaleDateString('pt-BR', { | ||
year: '2-digit', | ||
month: '2-digit', | ||
day: '2-digit', | ||
timeZone: 'America/Sao_Paulo' | ||
}).replace(/\//g, ''); | ||
this.ctfTransaction = {}; | ||
this.__debugMessage = []; | ||
} | ||
createClass(Auttar, [{ | ||
key: "debugLog", | ||
value: function debugLog(message) { | ||
if (this.debug) { | ||
logInfo(message); | ||
} | ||
} | ||
}, { | ||
key: "classError", | ||
value: function classError(message) { | ||
this.debugMessage = { | ||
message: message, | ||
logLevel: 'error' | ||
}; | ||
return new Error(message); | ||
} | ||
}, { | ||
key: "credit", | ||
/** | ||
* Pagamento com cartão de crédito, podendo ser declarado | ||
* com parcelamento e se o juro é da administradora. | ||
* @param {number} installments - número de parcelas | ||
* @param {boolean} withInterest - juros pela administradora | ||
* @returns {Promise<AuttarSuccessResponse>} | ||
*/ | ||
value: function credit() { | ||
var _this = this; | ||
var installments = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; | ||
var withInterest = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; | ||
return new Promise(function (resolve, reject) { | ||
var requisition = { | ||
valorTransacao: _this.amount, | ||
documento: _this.orderId, | ||
operacao: privateVariables.transactions.credit.base, | ||
dataTransacao: _this.__transactionDate | ||
}; | ||
if (installments > 1) { | ||
requisition.operacao = privateVariables.transactions.credit.installment; | ||
requisition.numeroParcelas = installments; | ||
} | ||
if (installments > 1 && withInterest) { | ||
requisition.operacao = privateVariables.transactions.credit.installmentWithInterest; | ||
requisition.numeroParcelas = installments; | ||
} | ||
_this.debugMessage = { | ||
message: "Pagamento com cart\xE3o de cr\xE9dito. Opera\xE7\xE3o: ".concat(requisition.operacao, ". Valor ").concat(_this.amount, " centavos") | ||
}; | ||
_connect(_this.__host, requisition).then(function (response) { | ||
if (response.retorno > 0) { | ||
var errorMsg = privateVariables.errorCodes[response.codigoErro] || response.display.length ? response.display.map(function (m) { | ||
return m.mensagem; | ||
}).join(' ') : ' '; | ||
var error = _this.classError("Transa\xE7\xE3o n\xE3o conclu\xEDda ".concat(response.codigoErro, ": ").concat(errorMsg)); | ||
reject(error); | ||
} | ||
_this.ctfTransaction = objectSpread({}, response, { | ||
dataTransacao: _this.__transactionDate | ||
}); | ||
_this.debugMessage = { | ||
message: "Resposta do servidor -> ".concat(JSON.stringify(response)), | ||
logLevel: 'log' | ||
}; | ||
_this.debugMessage = { | ||
message: _this.ctfTransaction, | ||
logLevel: 'json' | ||
}; | ||
resolve(response); | ||
}).catch(function (e) { | ||
return _this.classError(e); | ||
}); | ||
}); | ||
} | ||
/** | ||
* Pagamento com cartão de crédito, podendo ser | ||
* declarado com parcelamento e se o juro é da administradora. | ||
* @param {boolean} isVoucher | ||
* @returns {Promise<AuttarSuccessResponse>} | ||
*/ | ||
}, { | ||
key: "debit", | ||
value: function debit() { | ||
var _this2 = this; | ||
var isVoucher = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; | ||
return new Promise(function (resolve, reject) { | ||
var operacao = isVoucher ? privateVariables.transactions.debit.voucher : privateVariables.transactions.debit.base; | ||
_this2.debugMessage = { | ||
message: "Pagamento com cart\xE3o de d\xE9bito. Opera\xE7\xE3o: ".concat(operacao, ". Valor ").concat(_this2.amount, " centavos") | ||
}; | ||
_connect(_this2.__host, { | ||
valorTransacao: _this2.amount, | ||
documento: _this2.orderId, | ||
dataTransacao: _this2.__transactionDate, | ||
operacao: operacao | ||
}).then(function (response) { | ||
if (response.retorno > 0) { | ||
var errorMsg = privateVariables.errorCodes[response.codigoErro] || response.display.length ? response.display.map(function (m) { | ||
return m.mensagem; | ||
}).join(' ') : ' '; | ||
var error = _this2.classError("Transa\xE7\xE3o n\xE3o conclu\xEDda ".concat(response.codigoErro, ": ").concat(errorMsg)); | ||
reject(error); | ||
} | ||
_this2.ctfTransaction = objectSpread({}, response, { | ||
dataTransacao: _this2.__transactionDate | ||
}); | ||
_this2.debugMessage = { | ||
message: "Resposta do servidor -> ".concat(JSON.stringify(response)), | ||
logLevel: 'log' | ||
}; | ||
_this2.debugMessage = { | ||
message: _this2.ctfTransaction, | ||
logLevel: 'json' | ||
}; | ||
resolve(response); | ||
}).catch(function (e) { | ||
return _this2.classError(e); | ||
}); | ||
}); | ||
} | ||
/** | ||
* Confirma a operação com o CTF | ||
* @returns {Promise<void>} | ||
*/ | ||
}, { | ||
key: "confirm", | ||
value: function confirm() { | ||
var _this3 = this; | ||
return new Promise(function (resolve, reject) { | ||
var operacao = privateVariables.transactions.confirm; | ||
_this3.debugMessage = { | ||
message: "Confirma\xE7\xE3o de pagamento da opera\xE7\xE3o realizada.\n Opera\xE7\xE3o: ".concat(_this3.ctfTransaction.operacao, "\n Data: ").concat(_this3.ctfTransaction.dataTransacao, "\n Valor: ").concat(_this3.amount, "\n Bandeira: ").concat(_this3.ctfTransaction.bandeira, "\n Cart\xE3o: ").concat(_this3.ctfTransaction.cartao) | ||
}; | ||
_connect(_this3.__host, { | ||
operacao: operacao | ||
}).then(function (response) { | ||
if (response.retorno > 0) { | ||
var errorMsg = privateVariables.errorCodes[response.codigoErro] || response.display.length ? response.display.map(function (m) { | ||
return m.mensagem; | ||
}).join(' ') : ' '; | ||
var error = _this3.classError("Transa\xE7\xE3o n\xE3o conclu\xEDda ".concat(response.codigoErro, ": ").concat(errorMsg)); | ||
reject(error); | ||
} | ||
_this3.ctfTransaction = Object.assign(_this3.ctfTransaction, response); | ||
_this3.debugMessage = { | ||
message: "Resposta do servidor -> ".concat(JSON.stringify(response)), | ||
logLevel: 'log' | ||
}; | ||
_this3.debugMessage = { | ||
message: response, | ||
logLevel: 'json' | ||
}; | ||
resolve(response); | ||
}).catch(function (e) { | ||
return _this3.classError(e); | ||
}); | ||
}); | ||
} | ||
/** | ||
* Inicia o processo de cancelamento de compra. | ||
* @returns {Promise<void>} | ||
*/ | ||
}, { | ||
key: "requestCancellation", | ||
value: function requestCancellation() { | ||
var _this4 = this; | ||
return new Promise(function (resolve, reject) { | ||
var operacao = privateVariables.transactions.requestCancel; | ||
_this4.debugMessage = { | ||
message: "Requisi\xE7\xE3o de cancelamento de compra.\n Opera\xE7\xE3o: ".concat(_this4.ctfTransaction.operacao, "\n Data: ").concat(_this4.ctfTransaction.dataTransacao, "\n Valor: ").concat(_this4.amount, "\n NSU: ").concat(_this4.ctfTransaction.nsuCTF) | ||
}; | ||
_connect(_this4.__host, { | ||
operacao: operacao | ||
}).then(function (response) { | ||
if (response.retorno > 0) { | ||
var errorMsg = privateVariables.errorCodes[response.codigoErro] || response.display.length ? response.display.map(function (m) { | ||
return m.mensagem; | ||
}).join(' ') : ' '; | ||
var error = _this4.classError("Transa\xE7\xE3o n\xE3o conclu\xEDda ".concat(response.codigoErro, ": ").concat(errorMsg)); | ||
reject(error); | ||
} | ||
_this4.debugMessage = { | ||
message: "Resposta do servidor -> ".concat(JSON.stringify(response)), | ||
logLevel: 'log' | ||
}; | ||
_this4.debugMessage = { | ||
message: responsea, | ||
logLevel: 'json' | ||
}; | ||
resolve(response); | ||
}).catch(function (e) { | ||
return _this4.classError(e); | ||
}); | ||
}); | ||
} | ||
/** | ||
* Realiza o cancelamento da compra. | ||
* @param {string} prop.dataTransacao | ||
* @param {number} prop.amount | ||
* @param {string} prop.nsuCTF | ||
* @returns {Promise<any>} | ||
*/ | ||
}, { | ||
key: "cancel", | ||
value: function cancel() { | ||
var _this5 = this; | ||
var prop = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
return new Promise(function (resolve, reject) { | ||
var operacao = privateVariables.transactions.cancel; | ||
var tefOperacao = prop.operacao || _this5.ctfTransaction.operacao; | ||
var tefDataTransacao = prop.dataTransacao || _this5.ctfTransaction.dataTransacao; | ||
var tefAmount = prop.amount ? parseFloat(prop.amount) * 100 : _this5.ctfTransaction.valorTransacao; | ||
var tefNsuCTF = prop.nsuCTF || _this5.ctfTransaction.nsuCTF; | ||
_this5.debugMessage = { | ||
message: "Cancelamento de compra.\n Opera\xE7\xE3o: ".concat(tefOperacao, "\n Data: ").concat(tefDataTransacao, "\n Valor: ").concat(tefAmount, "\n NSU: ").concat(tefNsuCTF) | ||
}; | ||
_connect(_this5.__host, { | ||
operacao: operacao, | ||
valorTransacao: tefAmount, | ||
dataTransacao: tefDataTransacao, | ||
nsuCTF: tefNsuCTF | ||
}).then(function (response) { | ||
if (response.retorno > 0) { | ||
var errorMsg = privateVariables.errorCodes[response.codigoErro] || response.display[0].mensagem; | ||
var error = _this5.classError("Transa\xE7\xE3o n\xE3o conclu\xEDda ".concat(response.codigoErro, ": ").concat(errorMsg)); | ||
reject(error); | ||
} | ||
_this5.debugMessage = { | ||
message: "Resposta do servidor -> ".concat(JSON.stringify(response)), | ||
logLevel: 'log' | ||
}; | ||
_this5.debugMessage = { | ||
message: response, | ||
logLevel: 'json' | ||
}; | ||
resolve(response); | ||
}).catch(function (e) { | ||
return _this5.classError(e); | ||
}); | ||
}); | ||
} | ||
}, { | ||
key: "debugMessage", | ||
get: function get() { | ||
return this.__debugMessage; | ||
}, | ||
set: function set(value) { | ||
if (this.debug) { | ||
var debugLog = objectSpread({ | ||
logLevel: 'info', | ||
message: '' | ||
}, value, { | ||
date: new Date().toISOString() | ||
}); | ||
if (debugLog.logLevel === 'log' && debugLog.message) { | ||
return this.debugLog(debugLog.message); | ||
} | ||
this.__debugMessage.push(objectSpread({}, debugLog, { | ||
date: new Date().toISOString() | ||
})); | ||
if (debugLog.logLevel === 'info' && debugLog.message) { | ||
this.debugLog(debugLog.message); | ||
} | ||
} | ||
} | ||
}, { | ||
key: "amount", | ||
get: function get() { | ||
return this.__amount; | ||
} | ||
/** | ||
* Define o valor em para a classe em centavos | ||
* @param value | ||
*/ | ||
, | ||
set: function set(value) { | ||
if (typeof value === 'number' && value <= 0) { | ||
throw new Error('Não é possível definir um valor menor ou igual a zero.'); | ||
} else { | ||
this.__amount = parseFloat(value) * 100; | ||
} | ||
} | ||
}]); | ||
return Auttar; | ||
}(); | ||
return Auttar; | ||
}))); | ||
/*! | ||
* auttarjs v0.1.3 | ||
* (c) Heitor Ramon Ribeiro <heitor.ramon@gmail.com> | ||
* Released under the MIT License. | ||
*/ | ||
!function(a,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(a=a||self).auttarjs=o()}(this,function(){"use strict";function a(a,o){for(var e=0;e<o.length;e++){var n=o[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(a,n.key,n)}}var o="%c Auttar ",e="background:#bc0909 ; padding: 2px; border-radius: 2px; color: #fff ";var n={transactions:{credit:{base:112,installment:113,installmentWithInterest:114},debit:{base:101,voucher:106},cancel:128,confirm:6,requestCancel:191},return:{success:0,timeOut:1,notAuthorizes:5,internetError:10,intertefError:12,error:20,ecommerceError:30},errorCodes:{5300:"Valor não informado",5301:"Cartão inválido",5302:"Cartão vencido",5303:"Data de vencimento inválido",5304:"Código de segurança inválido",5305:"Taxa de serviço excede limite",5306:"Operação não permitida",5307:"Dados inválidos",5308:"Valor mínimo da parcela inválido",5309:"Número de parcelas inválido",5310:"Número de parcelas excede limite",5311:"Valor da entrada maior ou igual ao valor da transação",5312:"Valor da parcela inválido",5313:"Data inválida",5314:"Prazo excede limite",5316:"NSU inválido",5317:"Operação cancelada pelo usuário",5318:"Documento inválido (CPF ou CNPJ)",5319:"Valor do documento inválido",5328:"Erro na captura de dados do Pin-Pad",5329:"Erro na captura do chip ou cartão removido antes da hora.",5364:"Data de emissão do cartão inválida",5355:"O tipo de financiamento informado não é coerente com o número de parcelas"},ws:null,timeout:null,close:!0,timeoutConn:null};function t(){n.close=!1,clearTimeout(n.timeoutConn)}function r(){var a=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1e4;n.close=!0,n.timeoutConn=setTimeout(function(){n.close?n.ws.close():t()},a)}function s(a,o){return new Promise(function(e,s){try{null===n.ws?n.ws=new WebSocket(a):2!==n.ws.readyState&&3!==n.ws.readyState||(n.ws.close(),n.ws=new WebSocket(a))}catch(a){s(a)}n.ws&&(r(),n.ws.onopen=function(){t(),n.ws.send(JSON.stringify(o)),r(6e4)},n.ws.onmessage=function(a){t(),e(JSON.parse(a.data))},n.ws.onerror=function(a){t(),s(a)})})}return function(){function t(a){!function(a,o){if(!(a instanceof o))throw new TypeError("Cannot call a class as a function")}(this,t),this.__host=a.host||"ws://localhost:2500",this.debug=a.debug||!1,this.orderId=a.orderId||"",this.__amount=0,a.amount&&(this.amount=a.amount),this.__transactionDate=(new Date).toLocaleDateString("pt-BR",{year:"2-digit",month:"2-digit",day:"2-digit",timeZone:"America/Sao_Paulo"}).replace(/\//g,""),this.ctfTransaction={},this.__debugMessage=[]}var r,c,i;return r=t,(c=[{key:"debugLog",value:function(a){var n;this.debug&&(n=a,console.log(o,e,n))}},{key:"classError",value:function(a){return this.debugMessage={message:a,logLevel:"error"},new Error(a)}},{key:"credit",value:function(){var a=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return new Promise(function(t,r){var c={valorTransacao:a.amount,documento:a.orderId,operacao:n.transactions.credit.base,dataTransacao:a.__transactionDate};o>1&&(c.operacao=n.transactions.credit.installment,c.numeroParcelas=o),o>1&&e&&(c.operacao=n.transactions.credit.installmentWithInterest,c.numeroParcelas=o),a.debugMessage={message:"Pagamento com cartão de crédito. Operação: ".concat(c.operacao,". Valor ").concat(a.amount," centavos")},s(a.__host,c).then(function(o){if(o.retorno>0){var e=n.errorCodes[o.codigoErro]||o.display.length?o.display.map(function(a){return a.mensagem}).join(" "):" ",s=a.classError("Transação não concluída ".concat(o.codigoErro,": ").concat(e));r(s)}a.ctfTransaction=Object.assign({},o,{dataTransacao:a.__transactionDate}),a.debugMessage={message:"Resposta do servidor -> ".concat(JSON.stringify(o)),logLevel:"log"},a.debugMessage={message:a.ctfTransaction,logLevel:"json"},t(o)}).catch(function(o){return a.classError(o)})})}},{key:"debit",value:function(){var a=this,o=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return new Promise(function(e,t){var r=o?n.transactions.debit.voucher:n.transactions.debit.base;a.debugMessage={message:"Pagamento com cartão de débito. Operação: ".concat(r,". Valor ").concat(a.amount," centavos")},s(a.__host,{valorTransacao:a.amount,documento:a.orderId,dataTransacao:a.__transactionDate,operacao:r}).then(function(o){if(o.retorno>0){var r=n.errorCodes[o.codigoErro]||o.display.length?o.display.map(function(a){return a.mensagem}).join(" "):" ",s=a.classError("Transação não concluída ".concat(o.codigoErro,": ").concat(r));t(s)}a.ctfTransaction=Object.assign({},o,{dataTransacao:a.__transactionDate}),a.debugMessage={message:"Resposta do servidor -> ".concat(JSON.stringify(o)),logLevel:"log"},a.debugMessage={message:a.ctfTransaction,logLevel:"json"},e(o)}).catch(function(o){return a.classError(o)})})}},{key:"confirm",value:function(){var a=this;return new Promise(function(o,e){var t=n.transactions.confirm;a.debugMessage={message:"Confirmação de pagamento da operação realizada.\n Operação: ".concat(a.ctfTransaction.operacao,"\n Data: ").concat(a.ctfTransaction.dataTransacao,"\n Valor: ").concat(a.amount,"\n Bandeira: ").concat(a.ctfTransaction.bandeira,"\n Cartão: ").concat(a.ctfTransaction.cartao)},s(a.__host,{operacao:t}).then(function(t){if(t.retorno>0){var r=n.errorCodes[t.codigoErro]||t.display.length?t.display.map(function(a){return a.mensagem}).join(" "):" ",s=a.classError("Transação não concluída ".concat(t.codigoErro,": ").concat(r));e(s)}a.ctfTransaction=Object.assign(a.ctfTransaction,t),a.debugMessage={message:"Resposta do servidor -> ".concat(JSON.stringify(t)),logLevel:"log"},a.debugMessage={message:t,logLevel:"json"},o(t)}).catch(function(o){return a.classError(o)})})}},{key:"requestCancellation",value:function(){var a=this;return new Promise(function(o,e){var t=n.transactions.requestCancel;a.debugMessage={message:"Requisição de cancelamento de compra.\n Operação: ".concat(a.ctfTransaction.operacao,"\n Data: ").concat(a.ctfTransaction.dataTransacao,"\n Valor: ").concat(a.amount,"\n NSU: ").concat(a.ctfTransaction.nsuCTF)},s(a.__host,{operacao:t}).then(function(t){if(t.retorno>0){var r=n.errorCodes[t.codigoErro]||t.display.length?t.display.map(function(a){return a.mensagem}).join(" "):" ",s=a.classError("Transação não concluída ".concat(t.codigoErro,": ").concat(r));e(s)}a.debugMessage={message:"Resposta do servidor -> ".concat(JSON.stringify(t)),logLevel:"log"},a.debugMessage={message:responsea,logLevel:"json"},o(t)}).catch(function(o){return a.classError(o)})})}},{key:"cancel",value:function(){var a=this,o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Promise(function(e,t){var r=n.transactions.cancel,c=o.operacao||a.ctfTransaction.operacao,i=o.dataTransacao||a.ctfTransaction.dataTransacao,d=o.amount?100*parseFloat(o.amount):a.ctfTransaction.valorTransacao,u=o.nsuCTF||a.ctfTransaction.nsuCTF;a.debugMessage={message:"Cancelamento de compra.\n Operação: ".concat(c,"\n Data: ").concat(i,"\n Valor: ").concat(d,"\n NSU: ").concat(u)},s(a.__host,{operacao:r,valorTransacao:d,dataTransacao:i,nsuCTF:u}).then(function(o){if(o.retorno>0){var r=n.errorCodes[o.codigoErro]||o.display[0].mensagem,s=a.classError("Transação não concluída ".concat(o.codigoErro,": ").concat(r));t(s)}a.debugMessage={message:"Resposta do servidor -> ".concat(JSON.stringify(o)),logLevel:"log"},a.debugMessage={message:o,logLevel:"json"},e(o)}).catch(function(o){return a.classError(o)})})}},{key:"debugMessage",get:function(){return this.__debugMessage},set:function(a){if(this.debug){var o=Object.assign({logLevel:"info",message:""},a,{date:(new Date).toISOString()});if("log"===o.logLevel&&o.message)return this.debugLog(o.message);this.__debugMessage.push(Object.assign({},o,{date:(new Date).toISOString()})),"info"===o.logLevel&&o.message&&this.debugLog(o.message)}}},{key:"amount",get:function(){return this.__amount},set:function(a){if("number"==typeof a&&a<=0)throw new Error("Não é possível definir um valor menor ou igual a zero.");this.__amount=100*parseFloat(a)}}])&&a(r.prototype,c),i&&a(r,i),t}()}); | ||
//# sourceMappingURL=index.umd.js.map |
{ | ||
"name": "auttarjs", | ||
"version": "0.1.2", | ||
"version": "0.1.3", | ||
"description": "Auttar WebSocket JS Class. An easy implementation of Auttar WebSocket Service.", | ||
@@ -45,2 +45,3 @@ "private": false, | ||
"babel-eslint": "^10.0.1", | ||
"bili": "^4.5.2", | ||
"del": "^2.2.2", | ||
@@ -58,14 +59,11 @@ "eslint": "^5.9.0", | ||
"nyc": "^13.1.0", | ||
"rollup": "^0.67.3", | ||
"rollup-plugin-babel": "^4.0.3", | ||
"rollup-plugin-commonjs": "^9.2.0", | ||
"rollup-plugin-node-resolve": "^3.4.0", | ||
"sinon": "^7.1.1" | ||
"typescript": "^3.3.3333" | ||
}, | ||
"scripts": { | ||
"lint": "eslint src", | ||
"build": "node build/buildDist", | ||
"build": "bili", | ||
"prepublish": "npm run build", | ||
"dev": "cd ./docs && npm run serve" | ||
} | ||
}, | ||
"files": ["dist"] | ||
} |
@@ -5,3 +5,3 @@ | ||
##### Exemplo Online | ||
## Exemplo Online | ||
@@ -11,14 +11,27 @@ Acesse [https://auttar-js.netlify.com](https://auttar-js.netlify.com) para acessar o exemplo online da implementação | ||
## Como Usar | ||
### NPM / Yarn | ||
```sh | ||
npm install auttarjs --save | ||
Com NPM | ||
```bash | ||
$ npm install auttarjs | ||
# For Yarn, use the command below. | ||
yarn add auttarjs | ||
``` | ||
Como CDN | ||
### CDN | ||
```html | ||
<script src="https://raw.githubusercontent.com/bloodf/auttar-js/master/dist/index.js"></script> | ||
<!-- For UNPKG use the code below. --> | ||
<script src="https://unpkg.com/auttarjs@latest/dist/index.js"></script> | ||
<!-- For JSDelivr use the code below. --> | ||
<script src="https://cdn.jsdelivr.net/npm/auttarjs@latest/dist/index.js"></script> | ||
<script> | ||
console.log(Auttar); | ||
</script> | ||
``` | ||
### API | ||
## API | ||
### Classe | ||
```JS | ||
@@ -29,21 +42,6 @@ import AuttarClass from 'auttarjs'; | ||
const Auttar = new AuttarClass({}); | ||
//Realizando pagamento com cartão de crédito. | ||
Auttar.credit(); | ||
//Realizando pagamento com cartão de débito. | ||
Auttar.debit(); | ||
//Realizando desfazimento total de operação | ||
Auttar.requestCancellation(); | ||
//Realizando cancelamento da última compra; | ||
Auttar.cancel(); | ||
//Realizando confirmação da operação | ||
Auttar.confirm(); | ||
``` | ||
### Parâmetros | ||
#### Construtor | ||
#### Argumentos | ||
##### Construtor | ||
|Propiedade|Tipo|Default| | ||
@@ -56,15 +54,16 @@ |--|--|--| | ||
#### credit | ||
### credit | ||
```JS | ||
credit(installments = 1, withInterest = false) | ||
Auttar.credit(installments = 1, withInterest = false) | ||
``` | ||
#### debit | ||
### debit | ||
```JS | ||
debit(isVoucher = false) | ||
Auttar.debit(isVoucher = false) | ||
``` | ||
#### cancel | ||
### cancel | ||
```JS | ||
cancel(prop = {}) | ||
Auttar.cancel(prop = {}) | ||
``` | ||
#### Argumentos | ||
|Propiedade|Tipo|Default| | ||
@@ -77,3 +76,3 @@ |--|--|--| | ||
### Exemplos | ||
## Exemplos | ||
```JS | ||
@@ -80,0 +79,0 @@ import AuttarClass from 'auttarjs'; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Native code
Supply chain riskContains native code (e.g., compiled binaries or shared libraries). Including native code can obscure malicious behavior.
Found 1 instance in 1 package
270283
21
21
803
104