Płatności CashBill
Transkrypt
Płatności CashBill
Dokumentacja techniczna 1.0 Płatności CashBill - SOAP Dokumentacja wdrożenia systemu Płatności CashBill w oparciu o komunikację według protokołu SOAP CashBill Spółka Akcyjna ul. Rejtana 20, 41-300 Dąbrowa Górnicza Tel.: +48 032 764-18-42 Fax: +48 032 764-18-40 Infolinia: 0 801 011 802 e-mail: [email protected] NIP: 629-241-08-01 KRS: 0000323297 REGON: 241048572 kapitał zakładowy 5 000 000 zł opłacony w całości Płatności CashBill - SOAP Spis treści 1 Zgłoszenie uruchomienia usługi................................................................................................... 3 2 Proces przeprowadzenia płatności............................................................................................... 3 3 Statusy transakcji........................................................................................................................... 4 4 Usługa powiadamiania (Notification service)...............................................................................4 4.1 Dostępne komunikaty............................................................................................................... 5 5 Usługa zarządzania sesjami (SOAP)............................................................................................. 6 5.1 Operacja openSession............................................................................................................... 6 5.2 Operacja closeSession............................................................................................................... 7 5.3 Operacja forwardFor.................................................................................................................. 7 6 Usługa zarządzania operatorami płatności (SOAP).....................................................................8 6.1 Operacja availablePaymentChannels...................................................................................... 8 6.2 Operacja startTransaction........................................................................................................ 9 7 Usługa zarządzania transakcjami...............................................................................................10 7.1 Operacja getDetails................................................................................................................. 11 8 Historia zmian............................................................................................................................... 12 2 Płatności CashBill - SOAP 1 Zgłoszenie uruchomienia usługi W celu uruchomienia usługi należy określić: adres ip komputera, z którego wykonywane będą połączenia do usług systemu NeoPAY; adres URL, na który będą wysyłane komunikaty z systemu NeoPAY; Po otrzymaniu tych danych zostanie wygenerowany i przesłany identyfikator sklepu oraz tajny klucz, który posłuży do autoryzacji wszelkich operacji wykonywanych przez sklep. 2 Proces przeprowadzenia płatności Poniższy diagram przedstawia pełny proces przeprowadzenia transakcji przy pomocy systemu NeoPAY. Linie ciągłe oznaczają komunikację przy pomocy kanału serwer – serwer, przerywane to droga przeglądarki klienta. Etykiety nad liniami określają rodzaj operacji przeprowadzanej przy pomocy protokołu SOAP. Proces przeprowadzenia płatności 3 Płatności CashBill - SOAP 3 Statusy transakcji Każda z transakcji posiada status określający jej stan w procesie jej obsługi. Możliwe statusy transakcji to: Status Opis Start Transakcja zostało rozpoczęta, klient nie dokonał jeszcze płatności. NegativeAuthorization Operator płatności nie autoryzował transakcji, status jest ostateczny i nie może ulec zmianie. Abort Klient zrezygnował z dokonania płatności, status jest ostateczny i nie może ulec zmianie. Fraud Operator płatności określił transakcje jako próbę wyłudzenia, jej realizacja zostaje wstrzymana. Status jest ostateczny i nie może ulec zmianie. PositiveAuthorization Transakcja została wstępnie pozytywnie autoryzowana przez operatora płatności, jej ostateczny status zostanie określony w późniejszym okresie. PositiveFinish Operator płatności ostatecznie pozytywnie potwierdził poprawność przeprowadzonej transakcji, status jest ostateczny i nie może ulec zmianie. Tabela 1: Statusy transakcji 4 Usługa powiadamiania (Notification service) System NeoPAY komunikuje się z systemem sklepu przy pomocy usługi powiadamiania. Adres URL, na którym została ona uruchomiona po stronie sklepu musi zostać określony podczas zgłoszenia uruchomienia usługi i jest niezmienny dla każdej transakcji (w przeciwieństwie do adresów URL powrotu przeglądarki klienta). Komunikacja z systemem sklepu odbywa się przy pomocy protokołu http. Jako, że dane, które są przesyłane w procesie komunikacji nie są wrażliwe nie jest wymagane stosowanie ich szyfrowania (jak ma to miejsce w przypadku komunikacji w przeciwną stronę: sklep → system NeoPAY). Pojedyncze powiadomienie składa się z: nazwy komunikatu atrybutów komunikatu Usługa powiadamiania (Notification service) 4 Płatności CashBill - SOAP podpisu pozwalającego sprawdzić wiarygodność komunikatu Komunikat zostaje wysłany do systemu sklepu jako żądanie GET, składa się z następujących zmiennych: Zmienna Opis cmd nazwa komunikatu; args atrybuty komunikatu przedzielone znakiem ',' (przecinek); sign podpis wykonany przy pomocy funkcji podpisującej (patrz niżej) Funkcja podpisująca sign = md5(cmd + arg + tajnyKlucz) md5 jest funkcją skrótu MD5, tajnyKlucz to klucz nadany w procesie zgłoszenia uruchomienia usługi, + to operacja konkatenacji napisów. 4.1 Dostępne komunikaty Komunikat Opis transactionStatusChanged Komunikat wysyłany w przypadku zmiany statusu transakcji. Jedyny argument jaki przekazuje to identyfikator transakcji. Po poprawnym odebraniu komunikatu sklep winien odpowiedzieć wystawiając na wyjście ciąg znaków w postaci: OK Każda inna odpowiedź zostanie zinterpretowana jako wystąpienie błędu w czasie odbioru komunikatu. W takim przypadku komunikat zostanie wysłany ponownie, aż do uzyskania poprawnego potwierdzenia. Usługa powiadamiania (Notification service) 5 Płatności CashBill - SOAP Przykładowy komunikat http://adres_sklepu/kom.html?cmd=transactionStatusChanged& args=asd34sf&sign=c8143d45bf2f76fd38a6a9d77feb1a79 5 Usługa zarządzania sesjami (SOAP) Usługa pozwala na rozpoczęcie sesji w systemie Płatności CashBill. WSDL dla tej usługi jest dostępny pod adresem URL: https://pay.cashbill.pl/soap/session/?wsdl 5.1 Operacja openSession Żądanie rozpoczęcia autoryzowanej sesji z dowolną usługą systemu Neopay. Każda autoryzowana operacja wymaga przekazania zwróconego przez openSession identyfikatora sesji za pomocą dołączenia odpowieniego nagłówka (opis niżej). Sesja jest otwarta do czasu jej zamknięcia przy pomocy operacji closeSession lub w przypadku wykrycia próby jej przejęcia (np. przez wysłanie komunikatu z poprawnym identyfikatorem sesji ale z innego adresu ip niż została wykonana operacja openSession). Zaleca się otwierać nową sesję dla każdego ciągu logicznie powiązanych operacji (np. odpytanie o dostępne kanały płatności i następnie wykonacie operacji rozpoczęcia transakcji). komunikat wejściowy openSessionRequest Pole Typ shopId shopIdType 1 Unikalny identyfikator sklepu nadany w procesie rejestracji secretPhrase secretPhrase 1 Tajny klucz sklepu nadany w procesie rejestracji Usługa zarządzania sesjami (SOAP) Rozmiar Opis 6 Płatności CashBill - SOAP komunikat wyjściowy openSessionResponse Pole Typ openSessionResponse sessionIdType Rozmiar Opis 1 Identyfikator sesji używany do autentykacji kolejnych żądań wysyłanych do usług systemu Płatności CashBill 5.2 Operacja closeSession Zakończnie otwartej sesji. Zaleca się wykonanie operacji zamknięcia sesji po każdym zakończeniu ciągu logicznie powiązanych operacji. Nagłówek wejściowy validateSessionRequestHeader Pole Typ validateSession sessionIdType Rozmiar Opis 1 Identyfikator sesji nadany w procesie autoryzacji 5.3 Operacja forwardFor Uruchomienie trybu „przekazywania dalej” (wymagany sklep działający w trybie FORWARDER). W trybie tym sklep może wykonywać wszelkie operacje jakby był sklepem o innym identyfikatorze. Jeden sklep działający w trybie FORWARDED może mieć przypisany szereg sklepów, dla których wykonuje operację „przekazywania dalej”. Nagłówek wejściowy validateSessionRequestHeader Pole Typ validateSession sessionIdType Rozmiar Opis 1 Identyfikator sesji nadany w procesie autoryzacji Komunikat wejściowy forwardFor Pole Typ forwardFor shopIdType Usługa zarządzania sesjami (SOAP) Rozmiar Opis 1 Identyfikator sklepu, którego żądania mają być przekazywane przez sklep główny (tylko dla sklepów działających w trybie FORWARDER) 7 Płatności CashBill - SOAP 6 Usługa zarządzania operatorami płatności (SOAP) Usługa udostępnia operacje pozwalające na dostęp do opisów i właściwości operatorów płatności oraz na rozpoczęcie transakcji. WSDL dla tej usługi jest dostępny pod adresem URL: https://pay.cashbill.pl/soap/paymentChannel?wsdl 6.1 Operacja availablePaymentChannels Pobranie dostępnych dla danego sklepu kanałów płatności. Lista kanałów płatności może się zmieniać w czasie działania systemu dlatego zaleca się wykonanie operacji availablePaymentChannels przed każdym zaprezentowaniem klientowi listy dostępnych kanałów płatności. Każdy kanał płatności posiada status (może się on zmieniać w czasie działana systemu). Określa on aktualną dostępność kanału płatności. Dostępne statusy to: Status Opis AVAILABLE Kanał dostępny, autoryzacja płatności tym kanałem może zostać odroczona w czasie o maksymalnie jeden dzień roboczy od momentu jej prawidłowego autoryzowania przez operatora płatności. AVAILABLE_ONLINE Kanał dostępny w trybie umożliwiającym wykonanie natychmiastowej płatności. Czas oczekiwania na autoryzację płatności wynosi kilka minut. DISABLED Kanał niedostępny (nie umożliwia aktualnie rozpoczęcia płatności). Kanał o takim statusie może być prezentowany klientowi końcowemu, jednak z zaznaczeniem, że jest on chwilowo niedostępny. Tabela 2: Statusy dostępności kanału płatności Nagłówek wejściowy validateSessionRequestHeader Pole Typ validateSession sessionIdType Rozmiar Opis 1 Usługa zarządzania operatorami płatności (SOAP) Identyfikator sesji nadany w procesie autoryzacji 8 Płatności CashBill - SOAP Komunikat wyjściowy availablePaymentChannelsResponse Pole Typ Rozmiar Opis id paymentChannelIdType 1 Identyfikator kanału płatności type xsd:token 1 Typ kanału płatności (patrz niżej) status xsd:token 1 Aktualny status kanału płatności group xsd:token 0..1 Grupa logiczna, do której należy kanał płatności currency ISOCodeType 1..* Lista dostępnych walut details paymentChannelDetailsType 1..* Lista zawierająca szczegóły dotyczące kanału płatności w różnych językach Typ Opis CREDIT_CARD Karty kredytowe INSTANT_PAYMENT Płatności dokonywane w trybie natychmiastowym BANK_TRANSFER Nieautomatyczne przelewy bankowe OTHER Inne kanały płatności nie należące do grup przedstawionych powyżej (np. testowy kanał płatności) Tabela 3: Typy kanłów płatności 6.2 Operacja startTransaction Rozpoczęcie transakcji dla danego kanału płatności. Adresy URL powrotu przeglądarki klienta ustalają adres, na który zostanie przekierowana przeglądarka klienta po zakończeniu procesu płatności, jest on zależny od statusu zakończenia transakcji. Adresy te są wymagane dla każdej transakcji. Nagłówek wejściowy validateSessionRequestHeader Pole Typ validateSession sessionIdType Rozmiar Opis 1 Usługa zarządzania operatorami płatności (SOAP) Identyfikator sesji nadany w procesie autoryzacji 9 Płatności CashBill - SOAP Komunikat wejściowy startTransactionRequest Pole Typ Rozmiar Opis paymentChannelId paymentChannelIdType 1 Identyfikator kanału płatności otrzymany po wykonaniu żądania availablePaymentChannels title xsd:string 1 Tytuł transakcji description xsd:string 0..1 Opis transakcji amount amountType 1 Kwota transakcji positiveURL httpURL 1 Adres powrotu przeglądarki klienta po pozytywnym zakończeniu transakcji negativeURL httpURL 1 Adres powrotu przeglądarki klienta po negatywnym zakończeniu transakcji clientData clientDataType 0..1 Dodatkowe dane opisujące klienta Komunikat wyjściowy: startTransactionResponse Pole Typ Rozmiar Opis id transactionId 1 Identyfikator rozpoczętej transakcji form formType 1 Parametry formularza przekazującego klienta do operatora płatności 7 Usługa zarządzania transakcjami Usługa udostępnia operacje związane z zarządzaniem transakcjami, tj. pobranie informacji dotyczących szczegółów transakcji np. w celu jej weryfikacji. WSDL dla tej usługi jest dostępny pod adresem URL: https://pay.cashbill.pl/soap/transaction?wsdl Usługa zarządzania transakcjami 10 Płatności CashBill - SOAP 7.1 Operacja getDetails Pobranie informacji dotyczących transakcji o zadanym identyfikatorze Nagłówek wejściowy: validateSessionRequestHeader Pole Typ validateSession sessionIdType Rozmiar Opis 1 Identyfikator sesji nadany w procesie autoryzacji Komunikat wejściowy: getDetails Pole Typ getDetails TransactionId Rozmiar Opis 1 Identyfikator transakcji Komunikat wyjściowy: getDetailsResponse Pole Typ id transactionId 1 Identyfikator transakcji amount amountType 1 Kwota transakcji title xsd:string 1 Tytuł transakcji description xsd:string 1 Opis transakcji status statusType 1 Aktualny status transakcji paymentChannel paymentChannelIdType 1 Kanał płatności, przy pomocy którego została wykonana transakcja time xsd:dateTime 1 Data rozpoczęcia transakcji Usługa zarządzania transakcjami Rozmiar Opis 11 Płatności CashBill - SOAP 8 Historia zmian data zmiany 16.11.2012 Nowa wersja dokumentacji Historia zmian 12