|
| 1 | +(function paypalOnload() { |
| 2 | + window._pppContinue = new Promise((resolve, reject) => { |
| 3 | + // https://developer.paypal.com |
| 4 | + // /docs/integration/paypal-plus/mexico-brazil/integrate-a-payment-selection-page/ |
| 5 | + const pppParams = { |
| 6 | + approvalUrl: window._paypalApprovalUrl, |
| 7 | + disallowRememberedCards: Boolean(window._paypalDisallowRemembered), |
| 8 | + placeholder: 'ppplus', |
| 9 | + mode: window._paypalEnv, |
| 10 | + disableContinue: 'pppContinue', |
| 11 | + enableContinue: 'pppContinue', |
| 12 | + onContinue(rememberedCards, payerId, paymentId) { |
| 13 | + resolve({ |
| 14 | + credit_card: { |
| 15 | + token: rememberedCards || '', |
| 16 | + }, |
| 17 | + intermediator_buyer_id: payerId, |
| 18 | + open_payment_id: window._paypalPaymentId |
| 19 | + + '/' + paymentId |
| 20 | + + '/' + window._paypalInvoiceNumber, |
| 21 | + }); |
| 22 | + }, |
| 23 | + onError(err) { |
| 24 | + reject(err); |
| 25 | + }, |
| 26 | + onLoad() { |
| 27 | + const $loading = document.getElementById('pppLoading'); |
| 28 | + if ($loading) { |
| 29 | + $loading.remove(); |
| 30 | + } |
| 31 | + }, |
| 32 | + }; |
| 33 | + |
| 34 | + if (window.storefrontApp) { |
| 35 | + const customer = window.storefrontApp.customer; |
| 36 | + if (customer) { |
| 37 | + pppParams.payerEmail = customer.main_email; |
| 38 | + pppParams.payerTaxId = customer.doc_number; |
| 39 | + pppParams.payerTaxIdType = customer.registry_type === 'j' ? 'BR_CNPJ' : 'BR_CPF'; |
| 40 | + pppParams.country = customer.doc_country || 'BR'; |
| 41 | + if (pppParams.country === 'BR') { |
| 42 | + pppParams.language = 'pt_BR'; |
| 43 | + } |
| 44 | + if (customer.name && customer.name.given_name) { |
| 45 | + pppParams.payerFirstName = customer.name.given_name; |
| 46 | + if (customer.name.middle_name && customer.name.family_name) { |
| 47 | + pppParams.payerLastName = customer.name.middle_name + ' ' + customer.name.family_name; |
| 48 | + } else if (customer.name.middle_name || customer.name.family_name) { |
| 49 | + pppParams.payerLastName = customer.name.middle_name || customer.name.family_name; |
| 50 | + } |
| 51 | + } |
| 52 | + if (Array.isArray(customer.phones) && customer.phones[0]) { |
| 53 | + pppParams.payerPhone = customer.phones[0].number.toString(); |
| 54 | + } |
| 55 | + } |
| 56 | + } |
| 57 | + |
| 58 | + window._pppApp = window.PAYPAL.apps.PPP(pppParams); |
| 59 | + }); |
| 60 | +}()); |
0 commit comments