Přeskočit na hlavní obsah

Implementace konkrétních funkcionalit

V následující sekci je popsána implementace konkrétních funkcionalit, které jsou dostupné v Checkout SDK.

Implementace Apple Pay

Nejvhodnějším způsobem, jak implementovat Apple Pay tlačítko je vytvoření funkce, která bude jako parametr přijímat referenci na instanci třídy ComgateCheckout a celá další logika se odehraje v této funkci.

V bloku then(...) vytváření instance ComgateCheckout dojde k volání této definované funkce: demo_createApplePay(checkoutInstance);

Ukázkový kód [Kód na GitHubu]

/**
* Create Apple Pay button
* @param {ComgateCheckout} checkoutInstance instance Comgate checkout
*/
function demo_createApplePay(checkoutInstance) {
checkoutInstance
.createApplePay({ // alternativní funkční zápis metody createApplePay({}), createApplePay()
// kompletní seznam parametrů je dostupný níže
style: {
// hodnoty dle dokumentace Apple Pay
style: "black", // (volitelné, výchozí: black, možnosti: black, white, white-outline) styl tlačítka
type: "pay", // (volitelné, výchozí: pay, možnosti: plain, buy, book, donate, ...) typ tlačítka
width: "400px", // výchozí: 100%
height: "45px" // výchozí: 100%
},
locale: "cs-CZ" // (volitelné, výchozí: cs-CZ, možnosti: en-US, de-DE, sk-SK, ...) jazyk rozhraní
})
.then(async (applepayInstance) => {
const res = await applepayInstance.canMakePayment();
if (res.result === true) {
applepayInstance.mount("#apple-pay-button-box");
} else {
console.log("Comgate Checkout: Apple Pay neni na tomto zarizeni dostupne");
}
})
.catch((error) => {
console.log("Comgate Checkout: Chyba při vytváření tlačítka Apple Pay.");
});
}

Implementace Google Pay

Velmi podobný způsob, jak nejvhodněji implementovat Google Pay tlačítko je taktéž vytvoření funkce, která bude jako parametr přijímat referenci na instanci třídy ComgateCheckout a celá další logika se odehraje v této funkci.

V bloku then(...) vytváření instance ComgateCheckout dojde k volání této definované funkce: demo_createGooglePay(checkoutInstance);

Ukázkový kód [Kód na GitHubu]

/**
* Create Google Pay button
* @param {ComgateCheckout} checkoutInstance instance Comgate checkout
*/
function demo_createGooglePay(checkoutInstance) {
checkoutInstance
.createGooglePay({ // alternativní funkční zápis metody createGooglePay({}), createGooglePay()
// kompletní seznam parametrů je dostupný níže
style: {
// hodnoty dle dokumentace Google Pay
style: "black", // (volitelné, výchozí: black, možnosti: black, white) styl tlačítka
type: "pay", // (volitelné, výchozí: pay, možnosti: plain, buy, book, donate, ... ) typ tlačítka
width: "400px", // výchozí: 100%
height: "45px" // výchozí: 100%
},
locale: "cs" // (volitelné, výchozí: cs, možnosti: en, de, sk, ...) jazyk rozhraní
})
.then(async (googlepayInstance) => {
const res = await googlepayInstance.canMakePayment();
if (res.result === true) {
googlepayInstance.mount("#google-pay-button-box");
} else {
console.log("Comgate Checkout: Google Pay neni na tomto zarizeni dostupne");
}
})
.catch((error) => {
console.log("Comgate Checkout: Chyba při vytváření tlačítka Google Pay.");
});
}

Zasílání požadavků na server e-shopu

V případě, kdy došlo ke zvolení přístupu s dynamickým založením a zpracováním platby, je možné využít předpřipravené metody pro odesílání požadavků na váš server. Tato metoda je dostupná v objektu payload při volání callbacku onRequirePayment, nebo na samotné instanci třídy ComgateCheckout.

Pro přístup k metodě přímo na instanci ComgateCheckout je nutné si uložit referenci na vytvořenou instanci do proměnné například ve scopu listeneru ComgateCheckoutReady (viz příklad výše, pro vytvoření instance pro "Dynamické založení a zpracování platby").

Ukázkový kód - request metodou POST [Kód na GitHubu]

// POST request na server API e-shopu
checkoutInstanceRef
.eshopRequest({
method: "POST",
url: "https://eshop.cz/api/create-transaction",
validStatus: 201, // (volitelné, výchozí: 200) HTTP status kód, který je považován za úspěšný
checkSuccessParam: true, // (volitelné, výchozí: false) response je JSON a obsahuje parametr 'success', který musí být true
body: { // odeslat jako POST JSON body (jen POST)
param: "value",
param2: "value2"
},
query: { // odeslat jako GET parametry v URL (POST i GET)
param: "value",
param2: "value2"
}
})
.then((response) => {
// response serveru musí být podporována knihovnout Axios pro automatické rozparsování
// OK
})
.catch((error) => {
// request se nezdařil
console.log("Checkout eshopRequest ERROR: ", error);
payload.reject();
});

Ukázkový kód - request metodou GET [Kód na GitHubu]

// GET request na server API e-shopu
checkoutInstanceRef
.eshopRequest({
method: "GET",
url: "https://eshop.cz/api/create-transaction",
validStatus: 201, // (volitelné, výchozí: 200) HTTP status kód, který je považován za úspěšný
checkSuccessParam: true, // (volitelné, výchozí: false) response je JSON a obsahuje parametr 'success', který musí být true
query: { // odeslat jako GET parametry v URL (POST i GET)
param: "value",
param2: "value2"
}
})
.then((response) => {
// response serveru musí být podporována knihovnout Axios pro automatické rozparsování
// OK
})
.catch((error) => {
// request se nezdařil
console.log("Checkout eshopRequest ERROR: ", error);
payload.reject();
});
  • Implementace Apple Pay
  • Implementace Google Pay
  • Zasílání požadavků na server e-shopu