1. Informacje ogólne¶
Google Pay™ to system elektronicznego portfela pozwalający w intuicyjny sposób dokonać płatności z wykorzystaniem numeru karty zapisanego w bezpieczny sposób w usługach Google. W ramach płatności Google Pay nie jest wymagane wprowadzanie numerów karty podczas transakcji a dostęp do mechanizmu płatności możliwy jest z każdego urządzenia.
Po wybraniu metody płatności Google Pay w sklepie, klientowi pojawia się na ekranie formatka, na której potwierdza swoje konto Google oraz kartę, którą ma zamiar użyć w celu zapłaty za zamówienie. Jeśli Klient nie posiadał wcześniej zarejestrowanej karty, może tego dokonać w trakcie dokonywania płatności.
Ważne
Jeśli do wyboru kanału płatniczego korzystasz ze strony Dotpay, bądź też w celu realizacji płatności przekierowujesz płacącego do Dotpay, nie musisz wykonywać żadnych zmian technicznych. Pamiętaj aby kanał Google Pay był dla Ciebie dostępny, Twoje konto musi mieć możliwość realizacji płatności kartami. Jeśli go nie masz, skontaktuj się z Działem Handlowym Dotpay.
Niniejsza instrukcja dotyczy tylko Partnerów, którzy chcą przycisk płatności z Google umieścić w koszyku własnego sklepu.
2. Opis funkcjonalności¶
2.1. Bezpieczeństwo¶
Dane karty przechowywane są na koncie Google, które jest wielowarstwowo zabezpieczone, a przede wszystkim nie są udostępniane Sklepowi.
2.1.1. Proces płatności Google Pay - diagram¶
2.1.2. Opis procesu płatności:¶
Klient wybiera formę płatności Google Pay
Akceptant przekazuje do serwera Google zapytanie o token
Google przekazuje odpowiedź z wartością tokena transakcji
Otrzymany token Akceptant koduje za pomocą Base64
Zakodowany token Akceptant przekazuje do Dotpay w parametrze
gp_token
wraz z pozostałymi niezbędnymi do inicjacji płatności danymiPo stronie Dotpay następuje odszyfrowanie danych kartowych
Dotpay wykonuje próbę obciążenia karty w banku wystawcy karty
Informacja o wyniku próby obciążenia przekazywana jest zwrotnie do Dotpay
Dotpay wysyła do Akceptanta potwierdzenie realizacji płatności zgodnie z ustawieniami konta (np. notyfikacja URLC, powiadomienie email)
Akceptant potwierdza Klientowi status transakcji.
3. Integracja płatności Google Pay™¶
Integracja Google Pay sprowadza się do wykonania trzech kroków:
Integracja z Google Pay
Odebranie tokenu karty płatniczej
Wysłanie żądanie do Dotpay z podaniem kompletu niezbędnych danych oraz tokenem pozyskanym z Google Pay, zakodowanym wcześniej funkcją Base64
Aby rozpocząć przetwarzanie płatności Google Pay, należy najpierw zintegrować się bezpośrednio z Google. Po zakończeniu integracji można dodać przycisk Google Pay do strony realizacji transakcji i przetwarzać zaszyfrowane dane klientów.
3.1. Zapoznaj się z dokumentacją Google Pay¶
Informacja
W celu implementacji płatności z Google Pay bezpośrednio na stronie sklepu, należy najpierw zapoznać się z poniższą dokumentacja: https://developers.google.com/pay/api/web/guides/tutorial
Przed uruchomieniem produkcyjnym Google Pay każdy sprzedawca powinien wcześniej zarejestrować się w Google, zaakceptować Warunki korzystania z usługi i otrzymać od Google identyfikator sprzedawcy.
Jeśli potwierdzisz, że wszystkie wymagane kroki w integracji zostały wykonane z listy kontrolnej integracji, wówczas możesz poprosić Google o dostęp produkcyjny.
3.2. Pobranie niezbędnych informacji z Dotpay¶
W celu poprawnej konfiguracji Google Pay na stronie Akceptanta, należy pobrać z Dotpay niezbędne informacje, które pomogą skonfigurować usługę.
Można się w tym celu posłużyć Api Dotpay do pobierania listy kanałów, które dodatkowo pozwala na zwrócenie dla danego sklepu ( id
) właściwych parametrów do konfiguracji usługi.
Informacja
Opis metody pozwalającej na pobranie listy kanałów oraz ich konfiguracji, znajduje się w Dokumentacji technicznej implementacji płatności Dotpay przy okazji opisu parametru channel
.
Przykład:
GET https://ssl.dotpay.pl/t2/payment_api/channels/?id=123456&amount=100.00¤cy=PLN&lang=pl&format=json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | channels: [
{
"id": 260,
"name": "Google Pay",
"logo": "https://ssl.dotpay.pl/test_payment/cloudfs2/magellan_media/payment_channel_logo/5c8637e8eb0a1937424941cd/",
"group": "credit_cards",
"group_name": "Karty płatnicze",
"short_name": "Google Pay",
"is_disable": "False",
"is_not_online": "False",
"warranty_available": false,
"form_names": [
"personal_data",
"agreement"
],
"config": {
"type": "google_pay",
"data": {
"gp_gateway": "dotpay",
"gp_script_url": "https://pay.google.com/gp/p/js/pay.js",
"gp_environment": "TEST",
"gp_gateway_merchant_id": "123456",
"gp_protocol_version": "ECv2",
"gp_api_version": "2",
"gp_auth_methods": [ "PAN_ONLY" ],
"gp_merchant_name": "My Company Name",
"gp_currency_code": "PLN",
"gp_merchant_id": "04619821273743693712",
"gp_total_price": "150.00",
"gp_card_brands": [ "MASTERCARD","VISA" ],
"gp_api_version_minor": "0"
}
}
},
]
|
3.3. Konfiguracja Google Pay¶
3.3.1. Krok 1 Google Pay: Określ wersję Google Pay API¶
Użyto danych dla Google Pay, zgodnie z Api Dotpay - konfiguracja kanałów :
config: { data: { gp_api_version, gp_api_version_minor } }
const baseRequest = {
apiVersion: 2, // 'gp_api_version' from Dotpay Api
apiVersionMinor: 0 // 'gp_api_version_minor' from Dotpay Api
};
3.3.2. Krok 2 Google Pay: Wybierz metodę tokenizacji płatności¶
Użyto danych dla Google Pay, zgodnie z Api Dotpay - konfiguracja kanałów :
config: { data: { gp_gateway, gp_gateway_merchant_id } }
const tokenizationSpecification = {
type: 'PAYMENT_GATEWAY',
parameters: {
'gateway': 'dotpay', // 'gateway' from Dotpay Api
'gatewayMerchantId': '123456' // 'gp_gateway_merchant_id' from Dotpay Api
}
};
3.3.3. Krok 3 Google Pay: Określ obsługiwane sieci kart płatniczych¶
Użyto danych dla Google Pay, zgodnie z Api Dotpay - konfiguracja kanałów :
config: { data: { gp_card_brands } }
const allowedCardNetworks = ["MASTERCARD", "VISA"]; // 'gp_card_brands' from Dotpay Api
const allowedCardAuthMethods = ["PAN_ONLY"]; // 'gp_auth_methods' from Dotpay Api
3.3.4. Krok 4 Google Pay: Opisz dozwolone formy płatności¶
Postępuj zgodnie z opisem tego kroku w dokumentacji Google Pay
3.3.5. Krok 5 Google Pay: Wczytaj bibliotekę JavaScript Google Pay API¶
Użyto danych dla Google Pay, zgodnie z Api Dotpay - konfiguracja kanałów :
config: { data: { gp_script_url } }
<script
async
src="https://pay.google.com/gp/p/js/pay.js"
onload="console.log('TODO: add onload function')">
</script>
<!-- use the value from Dotpay Api (param: 'gp_script_url') to 'src' -->
Określenie typu środowiska Google Pay.
Użyto danych dla Google Pay, zgodnie z Api Dotpay - konfiguracja kanałów :
config: { data: { gp_environment } }
const paymentsClient =
new google.payments.api.PaymentsClient({environment: 'PRODUCTION'}); // 'gp_environment' from Dotpay Api
3.4. Odebranie tokenu karty płatniczej¶
Po wywołaniu poprawnie skonfigurowanego skryptu Google Pay, do sklepu zwrotnie zostanie przesłany token podobny do poniższego:
{ "signature":"MEQCIFCJnLAb5FNt7x0OBu8xOyWQ2+2jqAhj+lP1vhjaJHVNAiBGDTp2OT93Mc1W52zUQaZ+UR0Zb44++9A7sga4aQAIVQ\u003d\u0034d", "intermediateSigningKey":{ "signedKey":"{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/2u5JqEr0QqKSR/mATqeKkLcUVJVuN8T9ePL9nVKXXDSCksbg5r7jf0b4r5dA3+2lCPUy3lFMoMILxZV3aGxHg\\u003d\\u003d\",\"keyExpiration\":\"1550936472498\"}", "signatures":[ "MEYCIQDuO/OWef7yHqS7giNytFPEvOFX12HFXtBDP1zTEV+0iQIhAN1otbxYwkjApDBRAH5MZkpzXcKYMCMIHhD2OnnOqCmW" ] }, "protocolVersion":"ECv2", "signedMessage":"{\"encryptedMessage\":\"fFsjd2QBg11M/h9ZHQtXd+yhsaa3XXPeZwYKAF+RF2t8FvmRvJ0o1sVmLrxM743UrcZtihjiuvMGP0pia0jpZ6plSiiPQfy6gX+/41mfUYhQ4ICpJa5AXZvAN4Q0btwLeCrpaB0kfF2PFEF2lURsMluymM8dhZtGUffGRnhpZIPawuH3QHAaJfb/bdjhi5xKbKH9X+aMLYC7C6ZjtHm9Ano/pjqEufjb3aGSoVaXOBNy1xYst+CLTOLKvLo8O5GnvZIjxw7w5tMOtG//ZW3Xe4BXWO7K9xFVjaFl+5S0pZEcg9auz8UQHmnVu8u0PvJvQJA2tY9PXSeRrfQ1MOeJugW9wuXX8cTD4lzDy3y4MF2CnarRDD8iFl/CdMza5EV8da7Z76AsAW7xJjmvJ6gtl2J/+rsMg+wPWGwQ044HSQ3PTgndWBYV45TOgWuc25GV9Om8zXrtDlZWkDiKKSdRer9ORJxtkJ5cBawc\\u003d\",\"ephemeralPublicKey\":\"BDHO5r+LJUb1+dOm1yGfm4w19EBaMXQJH5smFQwvVSmaWWLaDeBX9xQuUvCOmNBHi1zA1ATc1oROIVX9A1Rkq/w\\u003d\",\"tag\":\"fsPXn4u3L2nlceG7fPG2fnXtQwAUgR6lC6btBMvR1Lc\\u003d\"}" }
Jego zawartość należy przechwycić, zakodować przy użyciu funkcji Base64 a następnie umieścić w dodatkowym parametrze gp_token
, oraz przesłać go razem z innymi, standardowymi danymi płatności do Dotpay.
Przykład:
gp_token
= eyJzaWduYXR1cmUiOiJNRVFDSUZDSm5MQWI1Rk50N3gwT0J1OHhPeVdRMisyanFBaGorbFAxdmhqYUpIVk5BaUJHRFRwMk9UOTNNYzFXNTJ6VVFhWitVUjBaYjQ0Kys5QTdzZ2E0YVFBSVZRPTRkIiwiaW50ZXJtZWRpYXRlU2lnbmluZ0tleSI6eyJzaWduZWRLZXkiOiJ7XCJrZXlWYWx1ZVwiOlwiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFLzJ1NUpxRXIwUXFLU1IvbUFUcWVLa0xjVVZKVnVOOFQ5ZVBMOW5WS1hYRFNDa3NiZzVyN2pmMGI0cjVkQTMrMmxDUFV5M2xGTW9NSUx4WlYzYUd4SGdcXHUwMDNkXFx1MDAzZFwiLFwia2V5RXhwaXJhdGlvblwiOlwiMTU1MDkzNjQ3MjQ5OFwifSIsInNpZ25hdHVyZXMiOlsiTUVZQ0lRRHVPL09XZWY3eUhxUzdnaU55dEZQRXZPRlgxMkhGWHRCRFAxelRFViswaVFJaEFOMW90YnhZd2tqQXBEQlJBSDVNWmtwelhjS1lNQ01JSGhEMk9ubk9xQ21XIl19LCJwcm90b2NvbFZlcnNpb24iOiJFQ3YyIiwic2lnbmVkTWVzc2FnZSI6IntcImVuY3J5cHRlZE1lc3NhZ2VcIjpcImZGc2pkMlFCZzExTS9oOVpIUXRYZCt5aHNhYTNYWFBlWndZS0FGK1JGMnQ4RnZtUnZKMG8xc1ZtTHJ4TTc0M1VyY1p0aWhqaXV2TUdQMHBpYTBqcFo2cGxTaWlQUWZ5NmdYKy80MW1mVVloUTRJQ3BKYTVBWFp2QU40UTBidHdMZUNycGFCMGtmRjJQRkVGMmxVUnNNbHV5bU04ZGhadEdVZmZHUm5ocFpJUGF3dUgzUUhBYUpmYi9iZGpoaTV4S2JLSDlYK2FNTFlDN0M2Wmp0SG05QW5vL3BqcUV1ZmpiM2FHU29WYVhPQk55MXhZc3QrQ0xUT0xLdkxvOE81R252WklqeHc3dzV0TU90Ry8vWlczWGU0QlhXTzdLOXhGVmphRmwrNVMwcFpFY2c5YXV6OFVRSG1uVnU4dTBQdkp2UUpBMnRZOVBYU2VScmZRMU1PZUp1Z1c5d3VYWDhjVEQ0bHpEeTN5NE1GMkNuYXJSREQ4aUZsL0NkTXphNUVWOGRhN1o3NkFzQVc3eEpqbXZKNmd0bDJKLytyc01nK3dQV0d3UTA0NEhTUTNQVGduZFdCWVY0NVRPZ1d1YzI1R1Y5T204elhydERsWldrRGlLS1NkUmVyOU9SSnh0a0o1Y0Jhd2NcXHUwMDNkXCIsXCJlcGhlbWVyYWxQdWJsaWNLZXlcIjpcIkJESE81citMSlViMStkT20xeUdmbTR3MTlFQmFNWFFKSDVzbUZRd3ZWU21hV1dMYURlQlg5eFF1VXZDT21OQkhpMXpBMUFUYzFvUk9JVlg5QTFSa3Evd1xcdTAwM2RcIixcInRhZ1wiOlwiZnNQWG40dTNMMm5sY2VHN2ZQRzJmblh0UXdBVWdSNmxDNmJ0Qk12UjFMY1xcdTAwM2RcIn0ifQ==
Uwaga
Google Pay nie zezwala na konfigurację kart testowych w jego portfelu online. Symulacja płatności (również w ramach środowiska testowego) wymaga użycia rzeczywistych danych kartowych.
Pomimo podania rzeczywistych danych karty, przy płatności w trybie testowym nie zostaną one przekazane do Dotpay przez to karta nie zostanie również obciążona.
4. Tworzenie transakcji w Dotpay¶
Po prawidłowym odebraniu tokenu z Google Pay, można przystąpić do próby obciążenia karty Klienta. W tym celu należy wykonać prawidłowe "przekierowanie" albo za pomocą "api register order" ze sklepu Akceptanta do Dotpay z podaniem niezbędnych danych.
4.1. Przykład użycia parametrów inicjujących płatność w Dotpay¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <?php
$EnvironmentAddress = 'https://ssl.dotpay.pl/test_payment/'; // Dotpay test Environment
//$EnvironmentAddress = 'https://ssl.dotpay.pl/t2/'; //Dotpay production Environment
//-- Sample data sent to Dotpay with a card token in the 'gp_token' parameter --//
$ParametersArray = array(
'id' => 123456,
'type' => 4,
'channel' => 260,
'api_version' => 'dev',
'amount' => '100.00',
'currency' => 'PLN',
'description' => 'Order no. 567915976',
'control' => 'M1231MzaUdLQWR3',
'url' => 'https://www.example.com/thanks_page.php',
'urlc' => 'https://www.example.com/urlc_receiver.php',
'firstname' => 'Jan',
'lastname' => 'Nowak',
'email' => 'jan.nowak@example.com',
'gp_token' => 'eyJzaWduYXR1cmUiOiJNRVFDSUZDSm5MQWI1Rk50N3gwT0J1OHhPeVdRMisyanFBaGorbFAxdmhqYUpIVk5BaUJHRFRwMk9UOTNNYzFXNTJ6VVFhWitVUjBaYjQ0Kys5QTdzZ2E0YVFBSVZRPTRkIiwiaW50ZXJtZWRpYXRlU2lnbmluZ0tleSI6eyJzaWduZWRLZXkiOiJ7XCJrZXlWYWx1ZVwiOlwiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFLzJ1NUpxRXIwUXFLU1IvbUFUcWVLa0xjVVZKVnVOOFQ5ZVBMOW5WS1hYRFNDa3NiZzVyN2pmMGI0cjVkQTMrMmxDUFV5M2xGTW9NSUx4WlYzYUd4SGdcXHUwMDNkXFx1MDAzZFwiLFwia2V5RXhwaXJhdGlvblwiOlwiMTU1MDkzNjQ3MjQ5OFwifSIsInNpZ25hdHVyZXMiOlsiTUVZQ0lRRHVPL09XZWY3eUhxUzdnaU55dEZQRXZPRlgxMkhGWHRCRFAxelRFViswaVFJaEFOMW90YnhZd2tqQXBEQlJBSDVNWmtwelhjS1lNQ01JSGhEMk9ubk9xQ21XIl19LCJwcm90b2NvbFZlcnNpb24iOiJFQ3YyIiwic2lnbmVkTWVzc2FnZSI6IntcImVuY3J5cHRlZE1lc3NhZ2VcIjpcImZGc2pkMlFCZzExTS9oOVpIUXRYZCt5aHNhYTNYWFBlWndZS0FGK1JGMnQ4RnZtUnZKMG8xc1ZtTHJ4TTc0M1VyY1p0aWhqaXV2TUdQMHBpYTBqcFo2cGxTaWlQUWZ5NmdYKy80MW1mVVloUTRJQ3BKYTVBWFp2QU40UTBidHdMZUNycGFCMGtmRjJQRkVGMmxVUnNNbHV5bU04ZGhadEdVZmZHUm5ocFpJUGF3dUgzUUhBYUpmYi9iZGpoaTV4S2JLSDlYK2FNTFlDN0M2Wmp0SG05QW5vL3BqcUV1ZmpiM2FHU29WYVhPQk55MXhZc3QrQ0xUT0xLdkxvOE81R252WklqeHc3dzV0TU90Ry8vWlczWGU0QlhXTzdLOXhGVmphRmwrNVMwcFpFY2c5YXV6OFVRSG1uVnU4dTBQdkp2UUpBMnRZOVBYU2VScmZRMU1PZUp1Z1c5d3VYWDhjVEQ0bHpEeTN5NE1GMkNuYXJSREQ4aUZsL0NkTXphNUVWOGRhN1o3NkFzQVc3eEpqbXZKNmd0bDJKLytyc01nK3dQV0d3UTA0NEhTUTNQVGduZFdCWVY0NVRPZ1d1YzI1R1Y5T204elhydERsWldrRGlLS1NkUmVyOU9SSnh0a0o1Y0Jhd2NcXHUwMDNkXCIsXCJlcGhlbWVyYWxQdWJsaWNLZXlcIjpcIkJESE81citMSlViMStkT20xeUdmbTR3MTlFQmFNWFFKSDVzbUZRd3ZWU21hV1dMYURlQlg5eFF1VXZDT21OQkhpMXpBMUFUYzFvUk9JVlg5QTFSa3Evd1xcdTAwM2RcIixcInRhZ1wiOlwiZnNQWG40dTNMMm5sY2VHN2ZQRzJmblh0UXdBVWdSNmxDNmJ0Qk12UjFMY1xcdTAwM2RcIn0ifQ==',
'chk' => 'ba18d9890335b9d59a0e35a00c788214996a9f980a3b7e5d8d900306a7545dcb'
);
//-- generate a form --/
$RedirectionCode = '<form action="'.$EnvironmentAddress.'" method="POST" id="dotpay_redirection_form" accept-charset="UTF-8">'.PHP_EOL;
foreach ($ParametersArray as $key => $value) {
$RedirectionCode .= "\t".'<input name="'.$key.'" value="'.$value.'" type="hidden"/>'.PHP_EOL;
}
$RedirectionCode .= '</form>'.PHP_EOL.'<button id="dotpay_redirection_button" type="submit" form="dotpay_redirection_form" value="Submit">Confirm and Pay</button>'.PHP_EOL;
//-- print a form --/
echo $RedirectionCode;
?>
|
5. Integracja dla systemu Android¶
Google Pay umożliwia integrację płatności w systemie Android.
Aby zintegrować aplikację mobilną z metodą Google Pay, należy postępowac zgodnie instrukcjami zamieszczonymi na tej stronie: https://developers.google.com/pay/api/android
Żeby sprawdzić, czy wszystkie wymagane kroki w integracji z Androidem zostały wykonane należy skorzystać z listy kontrolnej dostępnej pod adresem: https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist
6. Informacje dodatkowe¶
6.1. Wskazówki dotyczące marki Google Pay¶
Wytyczne (przyciski, style, znaki), które pomogą prawidłowo umieszczać elementy marki Google Pay na stronach internetowych oraz aplikacjach mobilnych znajdują się pod adresem: https://developers.google.com/pay/api/web/guides/brand-guidelines
Skorzystaj z tych wskazówek by zachować spójność i być zgodnym z zalecaniami Google przy wdrażaniu Google Pay.
6.2. Tworzenie aplikacji mobilnej¶
Informacje na temat zaleceń przy tworzeniu aplikacji mobilnej z interfejsem Google Pay API dostępne są pod adresem:
https://developers.google.com/pay/api/android/guides/tutorial