Informacija apie susijungimą su sms.gw.lt žinučių perdavimo sistema

Turinys

  1. Siuntimas
    1. Teorija
    2. Pavyzdys su PHP5
  2. Informacijos priėmimas
    1. Žinučių priėmimas
    2. Pavyzdys su PHP4, PHP5
  3. Komunikavimo schema

1.1 Žinutės siuntimas

Perduodant informaciją apie siunčiamą žinutę nurodoma * - žinutės maksimalus ilgis 160 simbolių kuomet naudojama 7bit kodavimas

Siunčiama POST užklausa į smsgw serverį
URL: http://sms.gw.lt/dispatcher

Su parametrais:
Array
(
    [UID1] => x
    [UID2] => xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    [MSGS] => Array
        (
            [0] => Array
                (
                    [TO] => 37060089089
                    [TEXT] => Testinis tekstas
                )

            [1] => Array
                (
                    [TO] => 01010101
                    [TEXT] => Antra žinutė
                )

        )

)
Šio pavyzdžio užklausa atrodo taip:
POST /dispatcher HTTP/1.0
Host: sms.gw.lt
Content-Length: 189
Content-Type: application/x-www-form-urlencoded

UID1=x&UID2=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
&MSGS%5B0%5D%5BTO%5D=37060089089&MSGS%5B0%5D%5BTEXT%5D=Testinis+tekstas
&MSGS%5B1%5D%5BTO%5D=01010101&MSGS%5B1%5D%5BTEXT%5D=Antra+%C5%BEinut%C4%97
Pavyzdyje siunčiama antra žinutė su klaida, nurodome neteisingą gavėjo numerį

Į užklausą atsakoma masyvu kurį iškodavę php funkcija unserialize gautume tokį masyvą:
Array
(
    [MSGS] => Array
        (
            [0] => Array
                (
                    [ERR] => 77
                    [SMSID] => 44754
                )

            [1] => Array
                (
                    [ERR] => 67
                    [SMSID] => 0
                )

        )

)
Arba jei kyla problemų taip:
Array
(
    [MSGS] => Array
        (
        )

    [ERR] => 68
)
ERR - nurodo klaidos kodą

68 - Vartotojas neatpažintas
66 - Pasiektas kredito limitas
67 - Blogas gavėjo nr
69 - Pasiektas dienos limitas
77 - (Ne klaida) Žinutė patalpinta į eilę

SMSID - Žinutei suteikiamas identifikacinis numeris būklės stebėjimui

1.2 Pavyzdys su PHP5

PHP5 kodo pavyzdys su komentarais faile: siuntimas.zip

2.1 Žinučių, būklės pakitimo priėmimas

smsgw sistema kreipsis į jūsų serverį, kad praneštu apie: Šie tarpiniai pranešimai saugomi smsgw duomenų bazėje, jei įvyktų klaida arba ryšio sutrikimas pranešimai nebūtų prarandami, nes jūsų skriptas turi patvirtinti duomenų priėmimą, nepatvirtinus žinutės neištrinamos

Pranešimai perduodami jūsų skriptui HTTP POST metodu.

Įsisitikinę, kad turite leidimus rašymui į failą
<?php
		file_put_contents('testams.txt', print_r($_POST,true), FILE_APPEND);
?>
galite pažiūreti kaip atrodo perduodami parametrai:
	
//testams.txt:

Array
(
    [msgs] => Array
        (
            [0] => Array
                (
                    [id] => 110331
                    [time] => 2008-04-20 04:25:07
                    [type] => INSMS
                    [msg] => Array
                        (
                            [SMSID] => 87944
                            [TIME] => 2008-04-20 04:25:06
                            [TEXT] => test
                            [SENDER] => 37062466736
                        )

                )

            [1] => Array
                (
                    [id] => 111341
                    [time] => 2008-04-20 05:53:19
                    [type] => INSMS
                    [msg] => Array
                        (
                            [SMSID] => 87975
                            [TIME] => 2008-04-04 05:53:17
                            [TEXT] => test
                            [SENDER] => 37062466736
                        )

                )
                
            [2] => Array
                (
                    [id] => 111654
                    [time] => 2008-04-20 07:19:17
                    [type] => STATUS
                    [msg] => Array
                        (
                            [SMSID] => 56465
                            [STATUS] => 7
                        )

                )
                
            [3] => Array
                (
                    [id] => 111856
                    [time] => 2008-04-20 07:24:55
                    [type] => INCALL
                    [msg] => Array
                        (
                            [TELNR] => 37060055222
                            [TIME] => 2008-04-20 07:24:54
                        )

                )
                
                

)
1(0),2(1) pranešimas atėjusios žinutės pavyzdys
3(2) - žinutės būklės pranešimas (7 - žinutė išsiųsta, 6 - atmesta)
4(3) - apie užregistruota įeinantį skambutį

2.2 Pavyzdys su PHP5, PHP4

priemimas.zip

3 Komunikavimo schema