RakNet00
Wiek: 25 Na forum: 3126 dni Posty: 66
Witam. Mam sms api od liveserver tylko nie mam poj?cia jak je zrobi? do komendy. Chodzi o to, ?e wysy?amy sms, wpisujemy kod i jak kod jest poprawny to dostajemy np. $$. Jak na jeden numer wyslemy sms to dostajemy 5.000$ a jak na jeszcze inny numer to 10.000$. Pomo?e mi kto??
Kod: #include <a_samp>
#include <a_http>
#include <sscanf2> // plugin sscanf dostepny pod linkiem http://gtao.pl.com/showthread.php?t=120356
#define ID_KLIENTA "TUTAJ_WKLEJ_SWOJE_ID"
#define PIN "TUTAJ_WKLEJ_PIN"
new
pKodZwrotny[MAX_PLAYERS][9]; // Przechowuje wprowadzony przez gracza kod zwrotny
public OnFilterScriptInit()
{
aktywujPremium(0);
return 1;
}
// Funkcja wywoluj?ca zapytanie HTTP. Wstawiamy j? w miejscu gdzie ma dodawa? p?atn? zawarto?? dla gracza.
stock aktywujPremium(playerid)
{
new string[128];
format(string, 128, "client_id=" ID_KLIENTA "&pin=" PIN "&code=%s", pKodZwrotny[playerid]);
HTTP(playerid, HTTP_POST, "rec.liveserver.pl/api?channel=sms&return_method=seperator", string, "responseHTTP");
}
// Funkcja sprawdzaj?ca odpowied? HTTP od g?ownego serwera.
forward responseHTTP(playerid, response_code, data[]);
public responseHTTP(playerid, response_code, data[])
{
if(response_code != 200)
{
printf("B?ad pobierania danych ( %d )", response_code);
return 0;
}
// Odbieranie danych w formacie.
// STATUS ID_KLIENTA KOD_ZWROTNY NUMER_TELEFONU NUMER_DOCELOWY CZAS_UNIXTIME ILOSC_ODCZYTAN DODATKOWY_TEKST
// rdata[0] - STATUS - "OK" lub "INVALID"
// rdata[1] - ID_KLIENTA - Id klienta z panelu.
// rdata[2] - KOD_ZWROTNY - Kod zwrtony potwierdzaj?cy zgodno?? odpowiedzi z zapytaniem.
// rdata[3] - NUMER_TELEFONU - Numer telefonu klienta.
// rdata[4] - NUMER_DOCELOWY - Numer na kt?ry zosta? wys?any sms.
// rdata[5] - CZAS_UNIXTIME - Czas w formacie Unixtime w kt?rym momencie zosta? wys?any sms.
// rdata[6] - ILOSC_ODCZYTAN - Ilo?? poprzednich odczyta? kodu.
// rdata[7] - DODATKOWY_TEKST - Dodatkowy tekst podany w tre?ci smsa.
new rdata[8][151];
sscanf(data, "p< >s[16]s[16]s[32]s[16]s[16]s[16]s[8]s[151]", rdata[0], rdata[1], rdata[2], rdata[3], rdata[4], rdata[5], rdata[6], rdata[7]);
if(!strcmp(rdata[0], "INVALID", false))
{
print("B??d sprawdzania kodu");
return 0;
}
if(strcmp(rdata[1], ID_KLIENTA, false) != 0 || strcmp(rdata[2], pKodZwrotny[playerid], false) != 0)
{
print("B?ad sprawdzania danych");
return 0;
}
// Przyk?adowe wykorzystanie pobranych danych.
if(strval(rdata[6]) != 0)
{
print("Kod ju? zosta? wykorzystany!");
return 0;
}
// Je?li nie korzystaj? pa?stwo z r??nych us?ug SMS. sprawdzanie warto?ci rdata[7] nie jest konieczne.
if(!strcmp(rdata[7], "PREMIUM", false))
{
switch(strval(rdata[4]))
{
case 70068:
{
printf("ID %d dosta? premium poziom 1");
}
case 92558:
{
printf("ID %d dosta? premium poziom 2");
}
}
}
return 1;
}