рддреИрдпрд╛рд░ Google рдкреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдореЙрдбреНрдпреВрд▓

рдХреЙрдорд░реЗрдб, рдореИрдВ Google рдкреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрдбреАрдореЗрдб рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЙрдбреНрдпреВрд▓ рдкреЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЖрдзреБрдирд┐рдХ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдирд┐рд░реНрдпрд╛рдд-рдЖрдпрд╛рдд рдХреЗ рд╕рд╛рде рдПрдирдкреАрдПрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЬреЛ рд╕реНрд╡рдЪреНрдЫ рдИрдПрд╕ 5 рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░реЗрдВ ред рдХреЛрдб рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВред рдореИрдВ рдпрд╣рд╛рдВ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рджреВрдВрдЧрд╛ред



рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рднреБрдЧрддрд╛рди рдмрдЯрди рдкрд░ Google рдкреНрд░рд▓реЗрдЦрди рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдирд╣реАрдВ рдерд╛, Google рдкреЗ рдПрдкреАрдЖрдИ рджреНрд╡рд╛рд░рд╛ рд▓реМрдЯрд╛рдП рдЧрдП рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рд╕реВрдЪреА рднреА рд╕рдмрд╕реЗ рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП, Google рд╡реЗрддрди рдХреЗ рд╕рд╛рде ApplePay рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд╡рд┐рдкрд░реАрдд, рдореБрдЭреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдереЛрдбрд╝рд╛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдерд╛ред

рдХрд╛рдо рдореЗрдВ рджреЛ рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ: рдкрд╣рд▓рд╛, рд╣рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдмрдЯрди рджрд┐рдЦрд╛рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ (рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ Google рдкреЗ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ), рдФрд░ рдлрд┐рд░ рднреБрдЧрддрд╛рди рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╕реНрд╡рдпрдВ рдХрд░реЗрдВред

1. рдмрдЯрди рдкреНрд░рджрд░реНрд╢рди

export function showGooglePayButton(options, callbacks) { //   const check = checkParams("showGooglePayButton", options, callbacks); if (!check) { return false; } else { options = check.options; } const paymentsClient = new google.payments.api.PaymentsClient({environment: options.environment}); //      ,   API callbacks.setPaymentClient(paymentsClient); const request = { apiVersion: 2, apiVersionMinor: 0, allowedPaymentMethods: [options.googleBaseCardPaymentMethod] }; paymentsClient.isReadyToPay(request) .then(function(response) { if (response.result) { callbacks.success(); return true; } else { console.log("    Google Pay  "); callbacks.fail(); } }) .catch(function(err) { console.log("showGooglePayButton ERROR"); callbacks.fail(); }); } 

рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ, рд╣рдо рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ - googleBaseCardPaymentMethod рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдгред

googleBaseCardPaymentMethod рдПрдХ рдРрд╕реА рд╡рд╕реНрддреБ рд╣реИ рдЬреЛ рднреБрдЧрддрд╛рди рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддреА рд╣реИ ( рдпрд╣рд╛рдБ рдЕрдиреБрдорддрд┐ рджреА рдЧрдИ рдЦреЛрдЬ рдкрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг)ред рдпрджрд┐ рдпрд╣ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╣рдо рдХреЛрдб рдореЗрдВ рдорд╛рдирдХ рд╕реЗрдЯрд░ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдореЗрдВ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╡рд╕реНрддреБ рд▓реМрдЯрд╛рддрд╛ рд╣реИ:

 const setGoogleBaseCardPaymentMethod = () => { return { type: "CARD", parameters: { allowedAuthMethods: ["PAN_ONLY", "CRYPTOGRAM_3DS"], allowedCardNetworks: ["AMEX", "DISCOVER", "JCB", "MASTERCARD", "VISA"] } } }; 

рдкрд░реНрдпрд╛рд╡рд░рдг рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг, рдЙрддреНрдкрд╛рджрди рдпрд╛ рдкрд░реАрдХреНрд╖рдг рд╣реИ

рд╕рдлрд▓рддрд╛ рдХреЙрд▓рдмреИрдХ рдХреЗ рдХреЙрд▓ рдкрд░, рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЦреАрдВрдЪрд╛ рд╣реБрдЖ) рдмрдЯрди рджрд┐рдЦрд╛рддреЗ рд╣реИрдВред рдпрд╣ рдЖрдкрдХреА рдкрд╕рдВрдж рд╣реИред рдмрд╕ рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ Google рдХреЛ рдЕрдкрдиреЗ рдЧрд╛рдЗрдб рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

2. рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг

Google рдкреЗ рдмрдЯрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдПрдкреАрдЖрдИ рдиреЗ рдкреЗрдореЗрдВрдЯрдХреНрд▓рд╛рдЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ рд╣реИ, рдЬреЛ рдЕрдм, рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде, рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЗрдП рдЕрдиреНрдп рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рджреЗрдЦреЗрдВ:

googleBaseCardPaymentMethod - рдКрдкрд░ рджреЗрдЦреЗрдВ
googlePayPublicKey, merc_id, merc_name - Google рдкреЗ рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдкрдВрдЬреАрдХреГрдд рд╡реНрдпрд╛рдкрд╛рд░реА рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдкреИрд░рд╛рдореАрдЯрд░реНрд╕ рд╣рдореЗрдВ рдорд┐рд▓рддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рд╕рдлрд▓рддрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХреЙрд▓рдмреИрдХ рд╡рд┐рдлрд▓ рдХрд░рддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)ред

рдЗрд╕рд▓рд┐рдП, рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рднреБрдЧрддрд╛рди рдХрд┐рдП рдЧрдП рднреБрдЧрддрд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рднреБрдЧрддрд╛рди рдХреЗ рд╕рд╛рде рд▓реЛрдбрдбрд╛рдпрдореЗрдЯ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

 const getGooglePaymentDataRequest = () => { const cardPaymentMethod = Object.assign( {}, baseMethod, { tokenizationSpecification: token } ); const paymentDataRequest = { apiVersion: 2, apiVersionMinor: 0, allowedPaymentMethods : [cardPaymentMethod], /* for demo (enviroment TEST): merchantInfo : { merchantId: '12345678901234567890', merchantName: 'JOHN SMITH' }, */ /* for prod (enviroment PRODUCTION): merchantInfo : { merchantId: options.merc_id, merchantName: options.merc_name }, */ merchantInfo : { merchantId: options.merc_id, merchantName: options.merc_name }, transactionInfo : { currencyCode: options.currency, totalPriceStatus: 'FINAL', totalPrice: "" + options.sum } }; return paymentDataRequest; }; 

рдПрдХ рдкрд░реАрдХреНрд╖рдг рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП, Google рдЕрдкрдиреА рдорд░реНрдЪреЗрдВрдЯрдЗрдиреНрдлреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рд╡реНрдпрд╛рдкрд╛рд░реА рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рд╡реНрдпрд╛рдкрд╛рд░реА рдирд╛рдо рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдореЗрдВ рдПрдХ рдЯреЛрдХрди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

 const token = { /* for demo (enviroment TEST): parameters: { "protocolVersion": "ECv1", "publicKey": yourTestPublicKey } */ /* for prod (enviroment PRODUCTION): parameters: { "protocolVersion": "ECv1", "publicKey": params.googlePayPublicKey } */ type: 'DIRECT', parameters: { "protocolVersion": "ECv1", "publicKey": options.googlePayPublicKey } }; 

тЖТ рдпрд╣рд╛рдБ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝реЗрдВ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдмрди рдЬрд╛рддрд╛ рд╣реИ, рд▓реЛрдбрдкрд╛рдпрдореЗрдВрдЯрдбреИрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП , Google рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рд╣реЗрдЬреЗ рдЧрдП рдХрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдлреНрд░реЗрдо рдЦреЛрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдлреНрд░реЗрдо рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:

 paymentsClient.loadPaymentData(paymentDataRequest) .then(function(paymentData) { const googleToken = JSON.parse(paymentData.paymentMethodData.tokenizationData.token); // your own client-back ajax request here } 

рд╡рд┐рдзрд┐ рдХреЗ рд╕рдлрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдмрд╛рдж (рдЕрд░реНрдерд╛рдд, рд╕рд╣реЗрдЬреЗ рдЧрдП рдХрд╛рд░реНрдб рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рдФрд░ рд╕рддреНрдпрд╛рдкрди рдкрд╛рд╕ рдХрд░рдирд╛), рд╣рдо Google рдкреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреБрдЧрддрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдмреИрдХ-рдПрдВрдб рдХреЗ рд▓рд┐рдП AJAX рдЕрдиреБрд░реЛрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдЕрдиреБрд░реЛрдз рдореЗрдВ, рд╣рдореЗрдВ googleToken рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ , рдЬреЛ Google рд╕реЗ рдЖрдпрд╛ рдерд╛, рд╕рд╛рде рд╣реА рд╕рд╛рде рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдВрдЬреА рднреАред

рдпрд╣реА рд╣реИ, рд╣рдорд╛рд░реЗ Google рднреБрдЧрддрд╛рди рдХрд╛ рднреБрдЧрддрд╛рди рдкреАрда рдкрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмрд╛рдж рд╣реБрдЖ рд╣реИ!

Source: https://habr.com/ru/post/hi433140/


All Articles