hurbis-pagamento-v1
Version:
Biblioteca de pagamento utilizando PagSeguro (UOL).
508 lines • 26.7 kB
JavaScript
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