PageSourceSearch

https://badulakefestas.com.br/frontend/js/carrinho/paypal-complete-plataform.js

js badulakefestas.com.br collected 2026-09-26 18:31:05 UTC 11,322 bytes, 274 lines download raw bytes

1$(function(){
2    const isRepayment = $('body').hasClass('CatalogoPedidos-repagar');
3    const paypalUrlCreate = $('#paypalUrlCreate').val();
4    const paypalPaymentId = $('#paypalPaymentID');
5    const paypalPayertID = $('#paypalPayertID');
6    const paypalContainer = $('#paypal-button-container');
7    const paypalCardContainer = $('#paypal-card-container');
8    const paypalBox = (isRepayment ? $('#data-payment-cartao-de-credito') : $('#data-PayPal'));
9    const paypalBoxDesc = $('#data-PayPal-info');
10    const paymentBox = $('#final-payment-data');
11    const form = $('#PedidoAddForm');
12    const btnSubmit = $('.btn-final-submit');
13    const loadingPage = $('.loading-page');
14    const paypalReference = $('#paypalReference').val();
15    const bnCodeWallet = 'ECPPCP';
16    const bnCodeCard = 'BCDC';
17    
18    let msgSuccess = '';
19    let dataInfo = '';
20    let fundingCreated = false;
21    let cardCreated = false;
22
23    if(isRepayment) {
24        let name = $('#final-readable-nome').text().split(" ");
25        let firstName = name.shift();
26        let lastName = name.join(" ");
27        
28        dataInfo = {
29            partnerId: bnCodeCard,
30            email: $('#final-readable-email').text(),
31            cobrancaNome: firstName,
32            cobrancaSobrenome: lastName,
33            cobrancaTelefone: $('#final-readable-telefone').text(),
34            cobrancaTipo: $('#final-readable-tipo').text(),
35            cobrancaCpfcnpj: (($('#final-readable-tipo').text() == 'PJ') ? $('#final-readable-cnpj').text() : $('#final-readable-cpf').text()),
36            cobrancaEntrega: $('#PedidoCobrancaEnderecoEntrega').prop('checked'),
37            entregaNome: $('#final-readable-nome').text(),
38            entregaTelefone: $('#final-readable-telefone').text(),
39            entregaCep: $('#final-readable-cep').text(),
40            entregaEndereco: $('#final-readable-endereco').text(),
41            entregaNumero: $('#final-readable-numero').text(),
42            enttregaComplemento: $('#final-readable-info').text(),
43            entregaBairro: $('#final-readable-bairro').text(),
44            entregaCidade: $('#final-readable-cidade').text(),
45            entregaEstado: $('#final-readable-estado').text()
46        };  
47    }
48
49    const validatePaymentValues = (finalValueScreen, finalValueReal) => {
50        let valid = true;
51
52        if(typeof finalValueScreen != "undefined") {
53            if(typeof finalValueReal['Amount'] !== "undefined" && finalValueReal['Amount']['total_pedido'] !== null) {
54
55                const finalValueScreenFormatted = finalValueScreen.replace("R$ ", "").replace(".", "").replace(",", ".");
56                const finalValueRealFormatted = finalValueReal['Amount']['total_pedido'];
57
58                if(finalValueScreenFormatted != finalValueRealFormatted){
59                    valid = false;
60                }
61            }
62        }
63
64        return valid;
65    }
66
67    const errorPaypal = () => {
68        if(typeof msgSuccess !== 'undefined') {
69            $.message.hide(msgSuccess);
70        }
71
72        const msgError = $.message.show('error', {
73            vars:{
74                'title': 'Não foi possível concluir seu pedido',
75                'content': 'Teve novamente em alguns instantes'
76            }
77        });
78
79        if($('.box-cart-final-step').find('.list-shipping-item.active').length > 0){
80            $('.box-cart-final-step').find('.list-shipping-item.active').trigger('click');
81        }
82
83        setTimeout(function() {
84            $.message.hide(msgError);
85        }, 6000);
86    }
87
88    const startPaypal = (fundingSource, container) => {
89
90        paypal.Buttons({
91            fundingSource: fundingSource,
92            expandCardForm: true,
93            onClick() {
94                if($('#final-termo-aceite').length > 0){
95                    if($('#final-termo-aceite').prop('checked') == false){
96                        const msgTermAccepted = $.message.show('error', {
97                            vars:{
98                                'title': 'Atenção!',
99                                'content': 'Você precisar aceitar os termos para continuar a compra.'
100                            },
101                        });
102
103                        setTimeout(() => {
104                            $.message.hide(msgTermAccepted);
105                        }, 2000);
106
107                        return false;
108                    }
109                }
110
111                loadingPage.show();
112            },
113            async createOrder() {
114                const response = await fetch(paypalUrlCreate, {
115                    method: "POST",
116                    headers: {
117                        "Content-Type": "application/json",
118                    },
119                    body: JSON.stringify({
120                        reference: paypalReference,
121                        partnerId: dataInfo.partnerId,
122                        email: dataInfo.email,
123                        cobrancaNome: dataInfo.cobrancaNome,
124                        cobrancaSobrenome: dataInfo.cobrancaSobrenome,
125                        cobrancaTelefone: dataInfo.cobrancaTelefone,
126                        cobrancaTipo: dataInfo.cobrancaTipo,
127                        cobrancaCpfcnpj: dataInfo.cobrancaCpfcnpj,
128                        cobrancaEntrega: dataInfo.cobrancaEntrega,
129                        entregaNome: dataInfo.entregaNome,
130                        entregaTelefone: dataInfo.entregaTelefone,
131                        entregaCep: dataInfo.entregaCep,
132                        entregaEndereco: dataInfo.entregaEndereco,
133                        entregaNumero: dataInfo.entregaNumero,
134                        enttregaComplemento: dataInfo.enttregaComplemento,
135                        entregaBairro: dataInfo.entregaBairro,
136                        entregaCidade: dataInfo.entregaCidade,
137                        entregaEstado: dataInfo.entregaEstado
138                    })
139                });
140
141                loadingPage.hide();
142
143                const order = await response.json();
144
145                return order.id;
146            },
147            async onApprove(data) {
148                paypalPaymentId.val(data.orderID);
149                paypalPayertID.val(dataInfo.partnerId);
150
151                msgSuccess = $.message.show('masked-success', {
152                    hideOnClick:false,
153                    vars:{ 
154                        'title': 'Concluindo seu pedido. Aguarde ...',
155                        'content': '<div class="loading"></div>',
156                    }
157                });
158
159                $('html, body').animate({
160                    scrollTop: paymentBox.offset().top
161                }, 500);
162
163                if(!isRepayment) {
164                    CartModel.validate(form.toObject(), null, function(valid){
165                        if(valid['Status'] == 'success' || CartFinal.readMode) {
166                            let paymentValuesAreValid = validatePaymentValues(CartFinal.__getCartFinalTotalValue(), valid);
167
168                            if(!paymentValuesAreValid) {
169                                if(typeof msgSuccess !== 'undefined') {
170                                    $.message.hide(msgSuccess);
171                                }
172
173                                const msgErrorPaymentValues = $.message.show('error', {
174                                    vars:{
175                                        'title': 'Algo deu errado ao finalizar a compra.',
176                                        'content': 'Não foi possível concluir seu pedido, tente novamente'
177                                    }
178                                });
179
180                                if($('.box-cart-final-step').find('.list-shipping-item.active').length > 0){
181                                    $('.box-cart-final-step').find('.list-shipping-item.active').trigger('click');
182                                }
183
184                                setTimeout(function() {
185                                    $.message.hide(msgErrorPaymentValues);
186                                }, 4000);
187                            } else {
188                                form.submit();
189                            }
190                        } else {
191                            $.message.hide(msgSuccess);
192                            errorPaypal();
193                        }
194                    });	
195                } else {
196                    form.submit();
197                }
198            },
199            onError(error) {
200                errorPaypal();
201            }
202        }).render(container);
203    }
204
205    $(document).on('click', '.list-payment-item', function() {
206        let paypalFundingSource = null;
207        let containerPaypal = '';
208        
209        const isFundingCard = $(this).find('div.icon-payment-cartao-de-credito').length;
210        const isFundingPaypal = $(this).find('div.icon-payment-paypal').length;
211
212        const hideElements = () => {
213            paypalBoxDesc.hide();
214            paypalCardContainer.hide();
215            paypalContainer.hide();
216            btnSubmit.hide();
217        }
218
219        if(isRepayment && (isFundingCard || isFundingPaypal)) {
220            $('#data-payment-cartao-de-credito').show();
221            $('#data-payment-paypal').hide();
222        }
223
224        if(!isRepayment) {
225            dataInfo = {
226                partnerId: bnCodeCard,
227                email: $('#final-email').val(),
228                cobrancaNome: $('#final-nome').val(),
229                cobrancaSobrenome: $('#final-sobrenome').val(),
230                cobrancaTelefone: $('#final-telefone').val(),
231                cobrancaTipo: $('#final-tipo').val(),
232                cobrancaCpfcnpj: (($('#final-tipo').val() == 'PJ') ? $('#final-cnpj').val() : $('#final-cpf').val()),
233                cobrancaEntrega: $('#PedidoCobrancaEnderecoEntrega').prop('checked'),
234                entregaNome: $('#final-entrega-nome').val(),
235                entregaTelefone: $('#final-entrega-telefone').val(),
236                entregaCep: $('#PedidoCep').val(),
237                entregaEndereco: $('#PedidoEndereco').val(),
238                entregaNumero: $('#PedidoNumero').val(),
239                enttregaComplemento: $('#final-address-add-info').val(),
240                entregaBairro: $('#PedidoBairro').val(),
241                entregaCidade: $('#PedidoCidade').val(),
242                entregaEstado: $('#PedidoEstado').val()
243            };
244        }
245
246        if(isFundingCard) {
247            hideElements();
248            paypalCardContainer.show();
249            if (cardCreated) {
250                return;
251            }
252            paypalFundingSource = paypal.FUNDING.CARD;
253            dataInfo.partnerId = bnCodeCard;
254            paypalBox.find('.payment-title').text('Cartão de Crédito');
255            containerPaypal = '#paypal-card-container';
256            cardCreated = true;
257        } else if(isFundingPaypal) {
258            hideElements();
259            paypalContainer.show();
260            if (fundingCreated) {
261                return;
262            }
263            paypalFundingSource = paypal.FUNDING.PAYPAL;
264            dataInfo.partnerId = bnCodeWallet;
265            paypalBox.find('.payment-title').text('PayPal');
266            containerPaypal = '#paypal-button-container';
267            fundingCreated = true;
268        } else {
269            btnSubmit.show();
270        }
271
272        startPaypal(paypalFundingSource, containerPaypal);
273    });
274});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.