Coder Social home page Coder Social logo

nexonyt / przelewy24-rest-api-private Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 142 KB

A simple application for implementing payments via the Przelewy24 gateway

HTML 8.58% PHP 38.92% JavaScript 52.50%
integration p24 payment payment-gateway przelewy24 rest rest-api przelewy24-rest

przelewy24-rest-api-private's Introduction

Przelewy24-REST-API

Alternatice

Struktura

  • startPayment.html - plik z prostym formularzem, który przekazuje dane do pliku PHP
  • transactionRegister.php - plik PHP, który wysyła żądanie rejestracji transakcji, przekazując następnie klienta na formatkę Przelewy24 do wyboru metod płatości
  • notification-receiver.js - endpoint podawany w żądaniu register, do przyjmowania notyfikacji z Przelewy24

Jak realizowana jest transakcja?

  1. Uzupełnienie danych przez klienta i wysłanie ich w żądaniu rejestracji transakcji (transactionRegister.php)
  2. Otrzymywany zwrotnie token oraz przekazywanie klienta na formatkę Przelewy24
  3. Wybór metody płatności przez klienta i opłata zamówienia
  4. Przy poprawnym opłaceniu, wysłanie przez P24 notyfikacji o opłaconej transakcji
  5. Odebranie przez skrypt notyfikacji, zapisanie do bazy danych (notification-receiver.js)
  6. Wysłanie żądania weryfikacji transakcji do Przelewy24 i zaksięgwanie środków.
  7. Przekazanie klienta zwrotnie na stronę podaną w żądaniu rejestracji transakcji

Rejestracja transakcji

Po tym gdy klient uzupełni dane i kliknie "Zapłać", następuje wysłanie żądania rejestracji transakcji w pliku transactionRegister.php. Takie żądanie zawiera wszystkie informacje pobrane od klienta oraz dodatkowe informacje m.in.:

  • urlReturn - adres URL na który zostanie przekierowany klient po opłaceniu transakcji. Tutaj należy podać adres twojej strony np. z podziękowaniem za zakup.
  • urlStatus - adres URL na który jest wysłana notyfikacja o transakcji. Tutaj należy umieścić ścieżkę na twoim serwerze, gdzie znajduje się plik notification-receiver.js.

Notyfikacja o transakcji i weryfikacja

Aby uruchomić plik notification-receiver.js gdy już znajdujemy się w odpowiednim folderze na hostignu należy zainstalować 7 pakietów npm:

  • npm install express
  • npm install body-parser
  • npm install mysql
  • npm install crypto
  • npm install axios

Important

Aby endpoint do odbierania notyfikacji działał prawidłowo, weryfikował transakcję oraz zapisaywał do bazy danych, należy zmienić w nim 7 parametrów.

W pliku notification-receiver.js należy zmienić:

  • P24_ID - twój ID konta w systemie Przelewy24
  • P24_CRC_KEY - twój klucz CRC
  • P24_API_KEY - twój klucz API Wszystkie klucze znajdują się po zalogowaniu do panelu Przelewy24 w zakładce "Moje konto", następnie "Moje dane". Poniżej znajduje się sekcja "Dane API i konfiguracja" gdzie znajdują się powyższe klucze.

Następnie w pliku notification-receiver.js w sekcji 4. Database Connection należy uzupełnić dane wymagane do połączenia z Twoją bazą danych na serwrze.

  • host - parametr hosta Twojej bazy danych (zazwyczaj localhost)
  • user - użytkownik logujący się do bazy danych
  • password - hasło użytkownika do bazy danych
  • database - nazwa bazy danych

Dodatkowo w zapytaniu SQL należy zmienić nazwę tabeli z domyślnej ustawionej notification na własną.

Uruchom polecenie node notification-receiver.js i sprawdź czy notyfikacja zostanie odebrana oraz żądanie weryfikacji wysłane. Transakcja powinna zmienić status na "Dokonana".

Pamiętaj! Aby na twoim serwerze uruchomić plik należy mieć zainstalowane pakiet node. Dodatkowo plik notification-receiver.js musi na Twoim serwerze działać nieprzerwanie w tle i być cały czas dostępny.

Baza danych

Skrypt notification-receiver.js po właściwym odebraniu notyfikacji, wysyła żądanie do bazy danych, gdzie umieszcza wszystkie dane o transakcji, które zostały odebrane w notyfikacji. Struktura bazy danych w której zapisywane są dane wygląda następująco:

+----------------+-------------------+------+-----+----------+-------------------+
| Name           | Type              | Null | Key | Default  | Extra             |
+----------------+-------------------+------+-----+----------+-------------------+
| id             | int(11)           | NO   | PRI | NULL     | auto_increment    |
| merchantId     | varchar(6)        | NO   |     | NULL     |                   |
| sessionId      | varchar(100)      | NO   |     | NULL     |                   |
| amount         | int(10)           | NO   |     | NULL     |                   |
| originAmount   | int(10)           | NO   |     | NULL     |                   |
| currency       | varchar(3)        | NO   |     | NULL     |                   |
| orderId        | bigint(255)       | NO   |     | NULL     |                   |
| methodId       | int(3)            | NO   |     | NULL     |                   |
| statement      | text              | NO   |     | NULL     |                   |
| sign           | varchar(255)      | NO   |     | NULL     |                   |
+----------------+-------------------+------+-----+----------+-------------------+

Flow transakcyjne czyli przebieg transakcji

Jak przebiega proces płatności Przelewy24 na podstawie dokuementacji. Klient w formularzu na stronie wprowadza swoje dane. Po kliknięciu zapłać dane są przekazywane do pliku, który wysyła żądanie rejestracji transakcji do Przelewy24, gdzie zwrotnie otrzymywany jest token.

Token umieszcza się w linku secure.przelewy24.pl/trnRequest/TOKEN na który dalej jest przekierowany klient. W tym momencie wyświetla się formatka płatności. Klient wybiera metodę i opłaca zamówienie. Gdy Przelewy24 otrzymają informację o pozytywnej transakcji, na podany w urlStatus endpoint, wysyłana jest notyfikacja. Zwrotnie na notyfikację, skrypt wysyła żądanie rejestracji transakcji oraz zapisuje dane do bazy danych.

Warning

Jeżeli notyfikacja przez skrypt nie zostanie odebrana i zwrotnie nie zostanie wysłane żądanie weryfikacji transakcji, transakcja pozostanie na statusie "Do wykorzystania". Status ten oznacza, że klient ma pełne prawo do środków i może zażądać ich zwrotu, ponieważ nie zostały one przekazane na nasze saldo. Transakcje należy zaksięgować, ponieważ środki mogą automatycznie zostać zwrócone.

Jeżeli skrypt wyśle żądanie rejestracji transakcji, transakcja zmieni status na "Dokonana". Środki zostaną przekazanę na saldo P24 oraz można przystąpić do realizacji usługi dla klienta.

Pełna dokumentacja REST Przelewy24: https://developers.przelewy24.pl/

Wsparcie i podziękowanie

Jeżeli skorzystałeś z kodu i był dla Ciebie przydatny, chętnie przyjmę od Ciebie mały datek w postaci kawki: https://buycoffee.to/nexonyt

Postaw mi kawę na buycoffee.to

Support i wszelka pomoc

W przypadku problemów z kodem lub innych błędów proszę o kontakt i zgłoszenie tego na: [email protected]

przelewy24-rest-api-private's People

Contributors

nexonyt avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.