Dodawanie nowego serwisu obsługującego płatności SMS

  1. Wstawiamy do bazy do tabeli ss_transaction_services nowy wiersz. Opis kolumn:
    • id - id serwisu obsługującego płatności
    • name - nazwa serwisu obsługującego płatności
    • data - dodatkowe dane, które użytownik może edytować w panelu admina ( np. API )
    • data_hidden - dodatkowe dane, których użytownik nie może edytować w panelu admina
    • sms - czy usługa obsługuje płatności SMS
    • transfer - czy usługa obsługuje płatności przelewem
  2. Wstawiamy do tabeli ss_sms_numbers nowe wiersze. Opis kolumn:
    • number - numer na który klienci sklepu będą mogli wysyłać SMSy
    • tariff - taryfa, którą wart będzie kod zwrotny uzyskany poprzez wysłanie sms na powyższy numer
    • service - którego serwisu tyczą się powyższe dwie wartości ( podajemy tu id serwisu, które podaliśmy we wcześniejszym zapytaniu )
  3. Tworzymy nowy plik *.php, który będzie zawierał klasę, której zadaniem będzie obsługa API serwisu płatności. Nazwa pliku jest dowolna.

    Poniżej przedstawiony jest kod ( wraz z komentarzami ) przykładowego pliku obsługującego API płatności
    <?php

    // Rejestrujemy nasze API, aby sklep wiedział, że może z niego skorzystać
    // Pierwszy argument metody to id serwisu obsługującego płatność
    // ( to, które podaliśmy w tabeli `transaction_services` kolumna `id` )
    // Drugi argument metody to nazwa klasy
    $heart->register_payment_module("exmple""API_EXAMPLE");

    class 
    API_EXAMPLE {

        
    // Stała, której należy przypisać tę samą wartość,
        // którą podaliśmy jako pierwszy argument metody register_payment_api
        
    const SERVICE_ID "example";
        
        protected 
    $sms_code;

        function 
    __construct() {
            
    parent::__construct();
            
            
    // Tablica data zawiera dane serwisu płatności
            // ( te które podaliśmy w tabeli `transaction_services` w kolumnach `data` oraz `data_hidden` )
            // Przypisujemy do zmiennej sms_code wartosc z tablicy data
            
    $this->sms_code $this->data['sms_text'];
        }

        
    //
        // Funkcja, której zadaniem jest zweryfikowanie poprawości kodu SMS ( $return_code ),
        // wysłanego na konkretny numer ( $number )
        //
        // $return_code - kod do weryfikacji
        // $number - numer na który został wysłany SMS
        // -----------------------------
        // Funkcja powinna zwracać jedną z poniższych wartości:
        //  IPayment_Sms::OK
        //  IPayment_Sms::BAD_CODE
        //  IPayment_Sms::BAD_NUMBER
        //  IPayment_Sms::BAD_API
        //  IPayment_Sms::BAD_EMAIL
        //  IPayment_Sms::BAD_DATA
        //  IPayment_Sms::SERVER_ERROR
        //  IPayment_Sms::MISCONFIGURATION
        //  IPayment_Sms::ERROR
        //  IPayment_Sms::NO_CONNECTION
        //  IPayment_Sms::UNKNOWN
        //
        
    public function verify_sms($return_code$number) {
            
    // Sam proces weryfikacji kodu zwrotnego jest inny dla każdego serwisu.
            // Jego dokładna dokumentacja powinna znajdować się na stronie serwisu.
            
    $status file_get_contents("http://adres_weryfikatora_api.pl/skrypt.php?kod=".urlencode($sms_code)."&sms=".urlencode($sms_number)."&email=".urlencode($this->data['email']));

            if( 
    $status == "0" ) {
                return 
    IPayment_Sms::BAD_CODE;
            }
            
            if( 
    $status == "1" ) {
                return 
    IPayment_Sms::OK;
            }
            
            if( 
    $status == "2" ) {
                return 
    IPayment_Sms::BAD_EMAIL;
            }
            
            if( 
    $status == "3" ) {
                return 
    IPayment_Sms::BAD_DATA;
            }
            
            return 
    IPayment_Sms::ERROR;
        }
        
        
    //
        // Funkcja, ktora ma zwracac tresc, ktora uzytkownik ma wpisac
        // podczas wysylania smsa
        //
        
    public function getSmsCode()
        {
            return 
    $this->sms_code;
        }

    }

    ?>
  4. Metoda verify_sms powinna zwrócić tablicę, której index status ma przyjąć jedną z poniższych wartości:
    • OK - gdy wszystko przebiegło bezproblemowo, kod sms został zweryfikowany prawidłowo.
    • BAD_CODE - błędny kod zwrotny.
    • SERVER_ERROR - błąd serwisu obsługującego płatności.
    • BAD_API - gdy podane API/ID konta przez użytkownika jest błędne.
    • NO_CONNECTION - brak połączenia z serwisem obsługującym płatności.
    • ERROR - nieznany błąd.
  5. Plik php wrzucamy do folderu includes/verification