UNPKG

hurbis-pagamento-v1

Version:

Biblioteca de pagamento utilizando PagSeguro (UOL).

508 lines 26.7 kB
var hurbis; (function (hurbis) { var pagamento; (function (pagamento) { "use strict"; })(pagamento = hurbis.pagamento || (hurbis.pagamento = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var pagamento; (function (pagamento) { var pagseguro; (function (pagseguro) { "use strict"; pagseguro.CAMINHO_BASE_RECURSO_PRODUCAO = "https://stc.pagseguro.uol.com.br"; pagseguro.CAMINHO_BASE_RECURSO_DESENVOLVIMENTO = "https://stc.sandbox.pagseguro.uol.com.br"; //#endregion })(pagseguro = pagamento.pagseguro || (pagamento.pagseguro = {})); })(pagamento = hurbis.pagamento || (hurbis.pagamento = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var pagamento; (function (pagamento) { var pagseguro; (function (pagseguro) { "use strict"; var TipoDocumento; (function (TipoDocumento) { TipoDocumento[TipoDocumento["CPF"] = 1] = "CPF"; TipoDocumento[TipoDocumento["CNPJ"] = 2] = "CNPJ"; })(TipoDocumento = pagseguro.TipoDocumento || (pagseguro.TipoDocumento = {})); var TipoFrete; (function (TipoFrete) { TipoFrete[TipoFrete["PAC"] = 1] = "PAC"; TipoFrete[TipoFrete["Sedex"] = 2] = "Sedex"; TipoFrete[TipoFrete["Nenhum"] = 3] = "Nenhum"; })(TipoFrete = pagseguro.TipoFrete || (pagseguro.TipoFrete = {})); var TipoMeioPagamento; (function (TipoMeioPagamento) { TipoMeioPagamento[TipoMeioPagamento["CartaoCredito"] = 1] = "CartaoCredito"; TipoMeioPagamento[TipoMeioPagamento["Boleto"] = 2] = "Boleto"; TipoMeioPagamento[TipoMeioPagamento["Debito"] = 3] = "Debito"; })(TipoMeioPagamento = pagseguro.TipoMeioPagamento || (pagseguro.TipoMeioPagamento = {})); var TipoFormaPagamento; (function (TipoFormaPagamento) { TipoFormaPagamento[TipoFormaPagamento["CartaoCredito"] = 1] = "CartaoCredito"; TipoFormaPagamento[TipoFormaPagamento["Boleto"] = 2] = "Boleto"; TipoFormaPagamento[TipoFormaPagamento["Debito"] = 3] = "Debito"; TipoFormaPagamento[TipoFormaPagamento["Saldo"] = 4] = "Saldo"; TipoFormaPagamento[TipoFormaPagamento["DepositoConta"] = 7] = "DepositoConta"; })(TipoFormaPagamento = pagseguro.TipoFormaPagamento || (pagseguro.TipoFormaPagamento = {})); var CodigoFormaPagamento; (function (CodigoFormaPagamento) { CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoVisa"] = 101] = "CartaoCreditoVisa"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoMasterCard"] = 102] = "CartaoCreditoMasterCard"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoAmericanExpress"] = 103] = "CartaoCreditoAmericanExpress"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoDiners"] = 104] = "CartaoCreditoDiners"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoHipercard"] = 105] = "CartaoCreditoHipercard"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoAura"] = 106] = "CartaoCreditoAura"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoElo"] = 107] = "CartaoCreditoElo"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoPersonalCard"] = 109] = "CartaoCreditoPersonalCard"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoBrasilCard"] = 112] = "CartaoCreditoBrasilCard"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoFORTBRASIL"] = 113] = "CartaoCreditoFORTBRASIL"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoVALECARD"] = 115] = "CartaoCreditoVALECARD"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoCabal"] = 116] = "CartaoCreditoCabal"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoMais"] = 117] = "CartaoCreditoMais"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoGRANDCARD"] = 119] = "CartaoCreditoGRANDCARD"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoSorocred"] = 120] = "CartaoCreditoSorocred"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoUpPolicard"] = 122] = "CartaoCreditoUpPolicard"; CodigoFormaPagamento[CodigoFormaPagamento["CartaoCreditoBaneseCard"] = 123] = "CartaoCreditoBaneseCard"; CodigoFormaPagamento[CodigoFormaPagamento["BoletoBradesco"] = 201] = "BoletoBradesco"; CodigoFormaPagamento[CodigoFormaPagamento["BoletoSantander"] = 202] = "BoletoSantander"; CodigoFormaPagamento[CodigoFormaPagamento["DebitoBradesco"] = 301] = "DebitoBradesco"; CodigoFormaPagamento[CodigoFormaPagamento["DebitoItau"] = 302] = "DebitoItau"; CodigoFormaPagamento[CodigoFormaPagamento["DebitoBancoBrasil"] = 304] = "DebitoBancoBrasil"; CodigoFormaPagamento[CodigoFormaPagamento["DebitoBanrisul"] = 306] = "DebitoBanrisul"; CodigoFormaPagamento[CodigoFormaPagamento["SaldoPagSeguro"] = 401] = "SaldoPagSeguro"; CodigoFormaPagamento[CodigoFormaPagamento["DepositoEmContaBancoBrasil"] = 701] = "DepositoEmContaBancoBrasil"; CodigoFormaPagamento[CodigoFormaPagamento["DepositoEmContaHSBC"] = 702] = "DepositoEmContaHSBC"; })(CodigoFormaPagamento = pagseguro.CodigoFormaPagamento || (pagseguro.CodigoFormaPagamento = {})); var TipoTransacao; (function (TipoTransacao) { TipoTransacao[TipoTransacao["CHECKOUT"] = 1] = "CHECKOUT"; TipoTransacao[TipoTransacao["TRANSFER"] = 2] = "TRANSFER"; TipoTransacao[TipoTransacao["FUNDS_ADDITION"] = 3] = "FUNDS_ADDITION"; TipoTransacao[TipoTransacao["WITHDRAW"] = 4] = "WITHDRAW"; TipoTransacao[TipoTransacao["CHARGING"] = 5] = "CHARGING"; TipoTransacao[TipoTransacao["DONATATION"] = 6] = "DONATATION"; TipoTransacao[TipoTransacao["BONUS"] = 7] = "BONUS"; TipoTransacao[TipoTransacao["BONUS_REPASS"] = 8] = "BONUS_REPASS"; TipoTransacao[TipoTransacao["OPERATIONAL"] = 9] = "OPERATIONAL"; TipoTransacao[TipoTransacao["POLITICAL_DONATATION"] = 10] = "POLITICAL_DONATATION"; TipoTransacao[TipoTransacao["PAGAMENTO_PRE_APROVADO"] = 11] = "PAGAMENTO_PRE_APROVADO"; TipoTransacao[TipoTransacao["BONUS_CAMPAIGN"] = 12] = "BONUS_CAMPAIGN"; TipoTransacao[TipoTransacao["SECONDARY"] = 13] = "SECONDARY"; TipoTransacao[TipoTransacao["VALIDATOR"] = 14] = "VALIDATOR"; })(TipoTransacao = pagseguro.TipoTransacao || (pagseguro.TipoTransacao = {})); var TipoStatus; (function (TipoStatus) { TipoStatus[TipoStatus["Nenhum"] = 0] = "Nenhum"; TipoStatus[TipoStatus["AguardandoPagamento"] = 1] = "AguardandoPagamento"; TipoStatus[TipoStatus["EmAnalise"] = 2] = "EmAnalise"; TipoStatus[TipoStatus["Paga"] = 3] = "Paga"; TipoStatus[TipoStatus["Disponivel"] = 4] = "Disponivel"; TipoStatus[TipoStatus["EmDisputa"] = 5] = "EmDisputa"; TipoStatus[TipoStatus["Devolvida"] = 6] = "Devolvida"; TipoStatus[TipoStatus["Cancelada"] = 7] = "Cancelada"; })(TipoStatus = pagseguro.TipoStatus || (pagseguro.TipoStatus = {})); //#endregion })(pagseguro = pagamento.pagseguro || (pagamento.pagseguro = {})); })(pagamento = hurbis.pagamento || (hurbis.pagamento = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var pagamento; (function (pagamento) { var pagseguro; (function (pagseguro) { "use strict"; var Util = /** @class */ (function () { function Util() { } Util.recuperarDetalheCartaoCredito = function (opcoes, bandeira) { if (opcoes.MASTERCARD != null && opcoes.MASTERCARD.name == bandeira.toUpperCase()) { return opcoes.MASTERCARD; } if (opcoes.VISA != null && opcoes.VISA.name == bandeira.toUpperCase()) { return opcoes.VISA; } if (opcoes.AMEX != null && opcoes.AMEX.name == bandeira.toUpperCase()) { return opcoes.AMEX; } if (opcoes.AURA != null && opcoes.AURA.name == bandeira.toUpperCase()) { return opcoes.AURA; } if (opcoes.BRASILCARD != null && opcoes.BRASILCARD.name == bandeira.toUpperCase()) { return opcoes.BRASILCARD; } if (opcoes.DINERS != null && opcoes.DINERS.name == bandeira.toUpperCase()) { return opcoes.DINERS; } if (opcoes.ELO != null && opcoes.ELO.name == bandeira.toUpperCase()) { return opcoes.ELO; } if (opcoes.HIPERCARD != null && opcoes.HIPERCARD.name == bandeira.toUpperCase()) { return opcoes.HIPERCARD; } if (opcoes.PERSONALCARD != null && opcoes.PERSONALCARD.name == bandeira.toUpperCase()) { return opcoes.PERSONALCARD; } if (opcoes.PLENOCARD != null && opcoes.PLENOCARD.name == bandeira.toUpperCase()) { return opcoes.PLENOCARD; } if (opcoes.SOROCRED != null && opcoes.SOROCRED.name == bandeira.toUpperCase()) { return opcoes.SOROCRED; } if (opcoes.VALECARD != null && opcoes.VALECARD.name == bandeira.toUpperCase()) { return opcoes.VALECARD; } return null; }; Util.recuperarParcelaCartaoCredito = function (opcoes, bandeira) { switch (bandeira.toLowerCase()) { case "amex": return opcoes.amex; case "aura": return opcoes.aura; case "brasilcard": return opcoes.brasilcard; case "diners": return opcoes.diners; case "elo": return opcoes.elo; case "hipercard": return opcoes.hipercard; case "mastercard": return opcoes.mastercard; case "personalcard": return opcoes.personalcard; case "plenocard": return opcoes.plenocard; case "sorocred": return opcoes.sorocred; case "visa": return opcoes.visa; case "valecard": return opcoes.valecard; } return null; }; return Util; }()); pagseguro.Util = Util; })(pagseguro = pagamento.pagseguro || (pagamento.pagseguro = {})); })(pagamento = hurbis.pagamento || (hurbis.pagamento = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var pagamento; (function (pagamento) { "use strict"; var Script = /** @class */ (function () { function Script() { } Script.PAGSEGURO_PRODUCAO = "pagseguro.producao"; Script.PAGSEGURO_DESENVOLVIMENTO = "pagseguro.desenvolvimento"; Script.itens = [ { nome: Script.PAGSEGURO_PRODUCAO, arquivos: [hurbis.pagamento.pagseguro.CAMINHO_BASE_RECURSO_PRODUCAO + "/pagseguro/api/v2/checkout/pagseguro.directpayment.js"] }, { nome: Script.PAGSEGURO_DESENVOLVIMENTO, arquivos: [hurbis.pagamento.pagseguro.CAMINHO_BASE_RECURSO_DESENVOLVIMENTO + "/pagseguro/api/v2/checkout/pagseguro.directpayment.js"] } ]; return Script; }()); pagamento.Script = Script; })(pagamento = hurbis.pagamento || (hurbis.pagamento = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var pagamento; (function (pagamento) { "use strict"; var Modulo = /** @class */ (function () { function Modulo() { } Modulo.inicializar = function () { hurbis.comum.GestorModulo.registrarModulo(Modulo.DEFINICAO); hurbis.comum.GestorModulo.configurarModulo({ moduloDefinicao: Modulo.DEFINICAO, objeto: ["$hbsGestorScriptProvider", function ($hbsScript) { $hbsScript.configurar(pagamento.Script.itens); }] }); hurbis.comum.GestorModulo.inicializarModulo({ moduloDefinicao: Modulo.DEFINICAO, objeto: ["$hbsPagamentoConfig", "$hbsGestorScript", function ($hbsPagamentoConfig, $hbsScript) { var configuracao = $hbsPagamentoConfig.getConfiguracao(); if (configuracao.pagSeguro != null) { if (configuracao.pagSeguro.producao) { $hbsScript.carregar([pagamento.Script.PAGSEGURO_PRODUCAO]); } else { $hbsScript.carregar([pagamento.Script.PAGSEGURO_DESENVOLVIMENTO]); } } }] }); }; Modulo.DEFINICAO = { nome: "hurbis.pagamento", requisitos: [ "hurbis.comum" ] }; /// propriedade obrigatória para inicialização return Modulo; }()); pagamento.Modulo = Modulo; Modulo.inicializar(); })(pagamento = hurbis.pagamento || (hurbis.pagamento = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var pagamento; (function (pagamento) { "use strict"; var ConfiguracaoProvider = /** @class */ (function () { function ConfiguracaoProvider() { var _this = this; this.getConfiguracao = function () { return _this._configuracao; }; //#region Serviço this.$get = [function () { return { getConfiguracao: _this.getConfiguracao }; }]; } ConfiguracaoProvider.prototype.configurar = function (configuracao) { this._configuracao = configuracao; }; //#endregion ConfiguracaoProvider.inicializar = function () { hurbis.comum.GestorModulo.registrarFuncionalidade({ moduloDefinicao: pagamento.Modulo.DEFINICAO, nome: "$hbsPagamentoConfig", tipo: hurbis.comum.FuncionalidadeTipo.Provedor, objeto: [ConfiguracaoProvider] }); }; return ConfiguracaoProvider; }()); pagamento.ConfiguracaoProvider = ConfiguracaoProvider; ConfiguracaoProvider.inicializar(); })(pagamento = hurbis.pagamento || (hurbis.pagamento = {})); })(hurbis || (hurbis = {})); var hurbis; (function (hurbis) { var pagamento; (function (pagamento) { "use strict"; var PagamentoPagSeguroService = /** @class */ (function () { function PagamentoPagSeguroService($resource, $q, $injector, $hbsPagamentoConfig) { this.$resource = $resource; this.$q = $q; this.$injector = $injector; this.configuracao = $hbsPagamentoConfig.getConfiguracao(); } Object.defineProperty(PagamentoPagSeguroService.prototype, "Sessao", { get: function () { return JSON.parse(sessionStorage.getItem(this.configuracao.pagSeguro.cookieNomeSessionId)); }, set: function (valor) { sessionStorage.setItem(this.configuracao.pagSeguro.cookieNomeSessionId, JSON.stringify(valor)); this.atualizarSessaoPagSeguro(); }, enumerable: true, configurable: true }); PagamentoPagSeguroService.prototype.atualizarSessaoPagSeguro = function () { PagSeguroDirectPayment.setSessionId(this.Sessao.id); }; PagamentoPagSeguroService.prototype.converterMinutoParaMilisegundo = function (tempo) { return tempo * 60 * 1000; }; PagamentoPagSeguroService.prototype.sessaoValida = function () { if (this.Sessao == null) { return false; } var dataHoraAtual = new Date(); var tempoAtual = dataHoraAtual.getTime() + this.converterMinutoParaMilisegundo(dataHoraAtual.getTimezoneOffset()); // Após desserializar a sessão, a propriedade dataHora é retornada como texto. Necessário transformá-la em objeto novamente. var dataSessao = new Date(this.Sessao.dataHora); var tempoDecorrido = tempoAtual - (dataSessao.getTime() + this.converterMinutoParaMilisegundo(dataSessao.getTimezoneOffset())); // Tempo maior do que 25 minutos return tempoDecorrido < this.converterMinutoParaMilisegundo(25); }; PagamentoPagSeguroService.prototype.executarMetodo = function (metodo) { var resultado = null; if (Array.isArray(metodo)) { resultado = this.$injector.invoke(metodo); } else { resultado = metodo(); } return resultado; }; /** * Iniciar sessão junto ao servidor do PagSeguro. Necessário configurar rotina pagSeguro.recuperarSessaoServidor. * Método é chamado automaticamente ao acionar alguma rotina que dependa da sessão. */ PagamentoPagSeguroService.prototype.iniciarSessaoAsync = function () { var _this = this; return this.$q(function (resolve, reject) { if (_this.sessaoValida()) { _this.atualizarSessaoPagSeguro(); // Necessário porque as bibliotecas do PagSeguro não trabalham com Promise. // Uma lógica manual é implementada onde de tempos em tempos é realizada uma verificação para identificar se a rotina foi concluída. setTimeout(function () { resolve(); }, 1000); return; } if (_this.configuracao.pagSeguro.recuperarSessaoServidor == null) { throw "Rotina recuperarSessaoServidor não informada na configuração."; } _this.executarMetodo(_this.configuracao.pagSeguro.recuperarSessaoServidor).then(function (resultado) { _this.Sessao = resultado; resolve(); }, function (erro) { reject(erro); }); }); }; /** * Recupera identificador único do comprador/cliente para realizar operações. */ PagamentoPagSeguroService.prototype.getIdentificadorComprador = function () { return PagSeguroDirectPayment.getSenderHash(); }; /** * Recupera os meios de pagamento disponíveis para o valor informado. * @param valor Valor do produto/serviço. */ PagamentoPagSeguroService.prototype.getMeiosPagamento = function (valor) { var _this = this; return this.$q(function (resolve, reject) { _this.iniciarSessaoAsync().then(function () { PagSeguroDirectPayment.getPaymentMethods({ amount: valor, success: function (resultado) { resolve(resultado); }, error: function (erro) { reject(erro); } }); }, function (erro) { reject(erro); }); }); }; /** * Retorna a bandeira do cartão. * @param binCartao Seis primeiros números do cartão. */ PagamentoPagSeguroService.prototype.getBandeira = function (binCartao) { var _this = this; return this.$q(function (resolve, reject) { _this.iniciarSessaoAsync().then(function () { PagSeguroDirectPayment.getBrand({ cardBin: binCartao, success: function (resultado) { resolve(resultado); }, error: function (erro) { reject(erro); } }); }, function (erro) { reject(erro); }); }); }; /** * Recupera token gerado pelo PagSeguro para o cartão de crédito informado. * @param cartao Dados do cartão. */ PagamentoPagSeguroService.prototype.getCartaoToken = function (cartao) { var _this = this; return this.$q(function (resolve, reject) { _this.iniciarSessaoAsync().then(function () { PagSeguroDirectPayment.createCardToken({ brand: cartao.brand, cardNumber: cartao.cardNumber, cvv: cartao.cvv, expirationMonth: cartao.expirationMonth, expirationYear: cartao.expirationYear, success: function (resultado) { resolve(resultado); }, error: function (erro) { reject(erro); } }); }, function (erro) { reject(erro); }); }); }; /** * Retorna a lista de parcelas com seus respectivos detalhes. * @param informacaoParcelamento Informações do parcelamento. */ PagamentoPagSeguroService.prototype.getParcelas = function (informacaoParcelamento) { var _this = this; return this.$q(function (resolve, reject) { _this.iniciarSessaoAsync().then(function () { PagSeguroDirectPayment.getInstallments({ brand: informacaoParcelamento.brand, amount: informacaoParcelamento.amount, maxInstallmentNoInterest: informacaoParcelamento.maxInstallmentNoInterest, success: function (resultado) { resolve(resultado); }, error: function (erro) { reject(erro); } }); }, function (erro) { reject(erro); }); }); }; PagamentoPagSeguroService.inicializar = function () { hurbis.comum.GestorModulo.registrarFuncionalidade({ moduloDefinicao: pagamento.Modulo.DEFINICAO, nome: "$hbsPagamentoPagSeguro", tipo: hurbis.comum.FuncionalidadeTipo.Servico, objeto: ["$resource", "$q", "$injector", "$hbsPagamentoConfig", PagamentoPagSeguroService] }); }; return PagamentoPagSeguroService; }()); pagamento.PagamentoPagSeguroService = PagamentoPagSeguroService; PagamentoPagSeguroService.inicializar(); })(pagamento = hurbis.pagamento || (hurbis.pagamento = {})); })(hurbis || (hurbis = {})); //# sourceMappingURL=hurbis-pagamento-v1.js.map