Cadastro do script boleto em produção
Clique em Configurações e selecione Gestor de scripts:
Clique em + Adicionar script:
Preencha os campos de acordo com a tabela:
Campo | Valor |
---|---|
Nome | Insira "Boleto" |
Data inicial de exibição do Script | Deixe o campo em branco. |
Data final de exibição do Script | Deixe o campo em branco. |
Status do Script | Selecione "Script ativo". |
Prioridade do script | Insira "0" (zero). |
Posição do Script na página | Selecione "Body - Primeira linha". |
Páginas que o script será inserido | Selecione "Todas". |
Identificador de Página | Insira "*" (asterisco). |
A grafia dos valores deve ser igual a tabela.
Em Conteúdo do script, insira o seguinte script:
<script>
const boletoVariaveis = {
MerchantId: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
Integration:"Gateway",
Content_Type : "application/json",
SoftDescriptor : "SD",
redirect:'follow',
urlInvoiceRequest : "https://paymentconnectorwake.cieloecommerce.cielo.com.br/api/returnpaymentcodes/invoice"
};
if (document.querySelector('.pedido-pagamento span').textContent.toLowerCase().includes("boleto") == true) {
OpenLoadingModal();
GeraLinkRequestBoleto();
}
function GeraLinkRequestBoleto(){
const requestOptions = {
method: 'POST',
headers: {
[boletoVariaveis.MerchantId]: boletoVariaveis.MerchantId,
[boletoVariaveis.Integration]: boletoVariaveis.Integration,
[boletoVariaveis.SoftDescriptor]: boletoVariaveis.SoftDescriptor,
"Content-Type": boletoVariaveis.Content_Type
},
body: JSON.stringify({
loja: Fbits.Carrinho.Loja.Nome,
pedido: Fbits.Carrinho.PedidoId,
total: Fbits.Carrinho.ValorTotal,
email: Fbits.Carrinho.Usuario.Email,
}),
[boletoVariaveis.redirect]: boletoVariaveis.redirect,
};
fetch(boletoVariaveis.urlInvoiceRequest, requestOptions).then(response => response.text()).then(result => {CloseLoadingModal(); GeraLinkBoleto(result)}).catch(
error =>
GeraLinkRequestBoletoAfterRefresh()
);
}
function GeraLinkRequestBoletoAfterRefresh(){
OpenLoadingModal();
CloseLoadingModal()
var cookieBoletoJson = getCookie("cookieBoleto");
GeraLinkBoleto(cookieBoletoJson);
}
function SetaCookieBoleto(respostaObjeto){
var dataExpiracao = new Date();
dataExpiracao.setTime(dataExpiracao.getTime() + (72 * 60 * 60 * 1000)); // 72 horas
if (respostaObjeto !== null && respostaObjeto !== "") {
document.cookie = "cookieBoleto=" + respostaObjeto + "; expires=" + dataExpiracao.toUTCString();
}
}
function getCookie(nome) {
var nomeCookie = nome + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var cookies = decodedCookie.split(';');
for(var i = 0; i < cookies.length; i++) {
var cookie = cookies[i];
while (cookie.charAt(0) == ' ') {
cookie = cookie.substring(1);
}
if (cookie.indexOf(nomeCookie) == 0) {
return cookie.substring(nomeCookie.length, cookie.length);
}
}
return "";
}
function GeraLinkBoleto(dadosBoleto) {
SetaCookieBoleto(dadosBoleto);
const respostaObjeto = JSON.parse(dadosBoleto);
const paymentUrlParse = respostaObjeto.invoice.paymentUrl;
const linkBoleto = document.createElement('a');
linkBoleto.href = paymentUrlParse;
linkBoleto.target = '_blank';
linkBoleto.textContent = 'Abrir Boleto';
linkBoleto.style.fontWeight = 'bold';
linkBoleto.style.display = 'block';
linkBoleto.style.fontFamily = 'Arial, sans-serif';
linkBoleto.style.fontSize = '26px';
linkBoleto.style.marginTop = '10px';
const elements = document.querySelectorAll('.confirmacao-box.col-xs-12');
if (elements.length >= 2) {
const segundoElemento = elements[1];
segundoElemento.appendChild(linkBoleto.cloneNode(true));
} else {
console.log('Não há pelo menos dois elementos com a classe "confirmacao-box col-xs-12".');
}
}
function OpenLoadingModal() {
var loadingOverlay = document.createElement('div');
loadingOverlay.id = 'loadingOverlay';
setStyle(loadingOverlay, {
display: 'block',
position: 'fixed',
top: '0',
left: '0',
width: '100%',
height: '100%',
background: 'rgba(255, 255, 255, 0.7)',
zIndex: '9999'
});
var loadingSpinner = document.createElement('div');
loadingSpinner.className = 'spinner-border text-primary';
loadingSpinner.style.position = 'absolute';
loadingSpinner.style.top = '50%';
loadingSpinner.style.left = '50%';
loadingSpinner.style.transform = 'translate(-50%, -50%)';
loadingOverlay.appendChild(loadingSpinner);
document.body.appendChild(loadingOverlay);
}
function CloseLoadingModal() {
document.getElementById('loadingOverlay').remove();
}
function setStyle(element, styles) {
for (var property in styles) {
if (styles.hasOwnProperty(property)) {
element.style[property] = styles[property];
}
}
}
</script>
Insira o MerchantId
na linha 4.
Clique em Atualizar > Salvar > Publicar
Siga para a ativação do meio de pagamento.
Updated 21 days ago