<?php
/*
Wersja demonstracyjna przykładowego
wykorzystania SMS API MicroSMS.pl
Ostatnia aktualizaja: 2/20/2015
Dowiesz się tutaj jak wykorzystać API w celu
- Sprawdzenia kodu SMS z określonym numerem SMS (wartością wiadomości)
- Jak zbudować formularz obierania danych od klienta
Możliwe błedy to
- E,0 -> brak danych w API
- E,1 -> jeśli nie ma kodu, bądź nie ma 8 znaków
- E,2 -> jeśli użytokwnik bądź usługa nie istnieje bądź nie są w 1 profilu
- E,3 -> Jeśli nie ma numeru SMS
*/
/*
Jeśli Twój skrypt posiada błędy stworzone
przez programiste, poniższe polecenia mogą wywołać
dużą ilość wpisów na stronie dlatego, zaleca się
posiadać wyłączone te opcje, przy niesprawdzonych skryptach
do czasu wyeliminowania problemu.
*/
error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);
ini_set("display_errors", 1);
/*
Zmienna userid pozwala zidentyfikować partnera MicroSMS
Można ją znaleźć w panelu administracyjnym od razu po zalogowaniu, pod
imieniem i nazwiskiem. Np. (ID 1)
*/
$microsms['userid'] = 0;
/*
Zmienna serviceid pozwala na sprawdzenie, który prefiks SMS ma zostać
zweryfikowany. W przypadku kiedy userid oraz serviceid nie są ze sobą powiązane
partner otrzyma informację zwrotną z systemu w postaci E,2
serviceid jest to inaczej ID usługi konta premium dostępne jest po aktywaji przez
klienta i administratora, zakładka SMS Premium -> Konta
*/
$microsms['serviceid'] = 0;
/*
number pozwala na zweryfikowanie kwoty za jaką ma zostać wydany produkt
Pełna ich lista znajduje się w edycji usłui
*/
$microsms['number'] = 7055;
/*
Treść wiadomości SMS, na jaką klienci mają wysyłać wiadomości.
*/
$microsms['txt'] = 'MSMS.SUFIKS';
if( isset($_POST['send']) && isset($_POST['code']) ) {
$code = addslashes($_POST['code']);
/*
Weryfikujemy poprawność kodu SMS,
pamiętajmy, że MicroSMS wydaje jedynie
kody posiadające 8 znaków
*/
if (preg_match("/^[A-Za-z0-9]{8}$/", $code)) {
/*
Łączymy się z serwerem MicroSMS w celu
pobrania informacji nt. kodu
*/
$handle = fopen("http://microsms.pl/api/check.php?userid=" . $microsms['userid'] . "&number=" . $microsms['number'] . "&code=" . $code . '&serviceid=' . $microsms['serviceid'], 'r');
$check = fgetcsv($handle, 1024);
fclose($handle);
/*
Musimy zweryfikować, czy system przypadkiem
nie ma błedu i pełen poprawnie formularz dociera
do MicroSMS, jeśli na pierwszym tj. 0 miejscu znajduje
się odpowiedź E oznacza, to ERROR i któraś zmienna jest
błędnie uzupełniona
*/
if($check[0] != 'E') {
/*
W przypadku kiedy wszystkie warunki zostały
spełnione możemy wydać produkt
*/
if($check[0] == 1) {
$info = 'Gratulacje, zakupiłeś nowy produkt! ';
// Dalsza część swojego kodu...
} else {
$info = 'Podany kod jest nieprawidłowy.';
}
} else {
$info = 'Nieprawidłowo skonfigurowana usługa, skontaktuj się z administratorem sklepu.';
}
} else {
$info = 'Nieprawidłowy format kodu.';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="pl">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Przykładowy skrypt płatności SMS</title>
</head>
<body>
<style>
body { font-size: 11px; font-family: Tahoma, Arial, Verdana, Helvetica, sans-serif; font-weight: normal; }
#page { width: 600px; padding: 20px; margin-left: auto; margin-right: auto; border:1px solid #c6c6c6; }
.center { text-align: center; }
.alert-box { color:#555; border-radius:10px; font-family:Tahoma,Geneva,Arial,sans-serif;font-size:11px; padding:10px 10px 10px 36px; margin:10px; }
.alert-box span { font-weight:bold;text-transform:uppercase; }
.notice { background:#e3f7fc;border:1px solid #8ed9f6; }
.title { font-size: 20px; font-weight:bold; }
input[type=text], textarea {
-webkit-transition: all 0.30s ease-in-out;
-moz-transition: all 0.30s ease-in-out;
-ms-transition: all 0.30s ease-in-out;
-o-transition: all 0.30s ease-in-out;
outline: none;
padding: 3px 0px 3px 3px;
margin: 5px 1px 3px 0px;
border: 1px solid #DDDDDD;
}
.button {
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #d0451b), color-stop(1, #bc3315));
background:-moz-linear-gradient(top, #d0451b 5%, #bc3315 100%);
background:-webkit-linear-gradient(top, #d0451b 5%, #bc3315 100%);
background:-o-linear-gradient(top, #d0451b 5%, #bc3315 100%);
background:-ms-linear-gradient(top, #d0451b 5%, #bc3315 100%);
background:linear-gradient(to bottom, #d0451b 5%, #bc3315 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#d0451b', endColorstr='#bc3315',GradientType=0);
background-color:#d0451b;
display:inline-block;
cursor:pointer;
color:#ffffff;
font-family:arial;
font-size:13px;
padding:6px 12px;
text-decoration:none;
border:0px;
}
.button:hover {
background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #bc3315), color-stop(1, #d0451b));
background:-moz-linear-gradient(top, #bc3315 5%, #d0451b 100%);
background:-webkit-linear-gradient(top, #bc3315 5%, #d0451b 100%);
background:-o-linear-gradient(top, #bc3315 5%, #d0451b 100%);
background:-ms-linear-gradient(top, #bc3315 5%, #d0451b 100%);
background:linear-gradient(to bottom, #bc3315 5%, #d0451b 100%);
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#bc3315', endColorstr='#d0451b',GradientType=0);
background-color:#bc3315;
}
.button:active {
position:relative;
top:1px;
}
</style>
<div id="page">
<div class="center title">Zakup produktu - demo</div>
<br/>
<div class="center">
W celu zakupu produktu proszę wysłać SMS na numer <strong><?php echo $microsms['number']; ?></strong> o treści <strong><?php echo $microsms['txt']; ?></strong><br/>
Koszt wysłania wiadomości 9zł netto (11.07 zł z vat).<br/><br/>
<?php if(isset($info)) { ?>
<div class="alert-box notice"><?php echo $info; ?></div>
<?php } ?>
<form method="post" >
<input type="hidden" name="send" value="" />
<input name="code" placeholder="Kod sms" type="text" />
<button class="button" type="submit">Sprawdź kod</button>
</form>
<br/><br/>
Płatności zapewnia firma <a href="http://microsms.pl/">MicroSMS</a>. <br/>
Korzystanie z serwisu jest jednozanczne z akceptacją <a href="">regulaminu serwisu</a>.<br/>
Jeśli nie dostałeś kodu zwrotnego w ciągu 30 minut skorzystaj z <a href="http://microsms.pl/customer/complaint/">formularza reklamacyjnego</a><br/> W przypadku problemów z produktem skontaktuj się z administratorem sklepu [email protected]<br/>
<img src="http://microsms.pl/public/cms/img/banner.png">
</div>
</div>
</body>
</html>