https://hotpay.pl/documentation_v3/tech_paybylink.pdf api - hotpay
Mam w planie uruchomić niedługo taki mały serwis płatny. Chciałbym aby płatności po zapłaceniu przez uzytkonika przelewem wbijały się do bazy danych tak abym wiedział kto zapłącił a kto nie. Mam takie pytanie czy ja dobrze rozkminiam system płatności. Bo wiem, że muszę skorzystać z api bramki płatności. Teraz tak
Mam plik .htaccess i w nim
RewriteRule ^hotpay/([0-9a-zA-Z]+)/([0-9a-zA-Z]+) hotpay.php?id=$1&uid=$2
plik konta takie jak się uztkonik loguje do pobieram jego dane z bazy danych
$sql = ('select userid,username from uzytkownicy where userid='$id' and username='$uid'); $result = mysqli_query($connect, $sql) or die(mysqli_error()); while($row = mysqli_fetch_object($result)) { echo '<li><a href="hotpay/$row->userid/$row->username">Zapalc z hotpay</a></li>'; } }
i teraz czy dobrze to rozkmniniłem
To jest api hotpay
<form id="order" action="https://platnosc.hotpay.pl/" method="post"> <input required name="SEKRET" value="SEKRET_USLUGI" type="hidden"> <input required name="KWOTA" value="1" type="hidden"> <input required name="NAZWA_USLUGI" value="XXX" type="hidden"> <input required name="ADRES_WWW" value="XXX" type="hidden"> <input required name="ID_ZAMOWIENIA" value="XXX" type="hidden"> <input name="EMAIL" value="" type="hidden"> <input name="DANE_OSOBOWE" value="" type="hidden"> <button type="submit">DALEJ</button> </form> 5.3 Od.biór notyfikacji Płatności obsługiwane są za pośrednictwem komunikacji POST. Poniższy kod opisuje przykład dotyczy obsługi notyfikacji w PHP <?php /* */ $HASH_Z_USTAWIEN="XXX"; $_POST["ID_PLATNOSCI"] - unikalne id płatności $_POST["ID_ZAMOWIENIA"] - id zamówienia podane podczas inicjacji $_POST["STATUS"] - FAILURE / SUCCESS / PENDING $_POST["SEKRET"] - sekret danej usługi $_POST["HASH"] - hash funkcji skrótu sh256, składającej się z hash("sha256","HASHZUSTAWIEN;".$_POST["KWOTA"].";".$_POST["ID_PLAT Strona 7 NOSCI"]." ;".$_POST["ID_ZAMOWIENIA"].";".$_POST["STATUS"].";".$_POST["SEKRET "]) I"]) && ){ if(hash("sha256",$HASH_Z_USTAWIEN.";".$_POST["KWOTA"].";".$_POST[" ID_PLATNOSCI"].";".$_POST["ID_ZAMOWIENIA"].";".$_POST["STATUS"]."; ".$_POST["SEKRET"]) == $_POST["HASH"]){ //komunikacja poprawna if($_POST["STATUS"]=="SUCCESS"){ //płatność zaakceptowana }else if($_POST["STATUS"]=="FAILURE"){ //odrzucone } } }
czy dobrze to rozumiem, że tu trzeba przypisać zmienne np
$kwota = $_POST["KWOTA"];
$platnosci = $_POST["ID_PLATNOSCI"];
$idzamowienia = $_POST["ID_ZAMOWIENIA"];
$status = $_POST["STATUS"];
$sekret = $_POST["SEKRET"];
$hash = $_POST["HASH"];
hash("sha256","HASHZUSTAWIEN;".$_POST["KWOTA"].";".$_POST["ID_PLAT
Strona 7
NOSCI"]."
;".$_POST["ID_ZAMOWIENIA"].";".$_POST["STATUS"].";".$_POST["SEKRET
"])
żeby pobrać id i nazwe uztkownika trzeba w pliku zrobić coś takiego
$id = $_GET['id']; $username = $_GET['uid']; $kwota = $_POST["KWOTA"]; $platnosci = $_POST["ID_PLATNOSCI"]; $idzamowienia = $_POST["ID_ZAMOWIENIA"]; $status = $_POST["STATUS"]; $sekret = $_POST["SEKRET"]; $hash = $_POST["HASH"]; hash("sha256","HASHZUSTAWIEN;".$_POST["KWOTA"].";".$_POST["ID_PLAT Strona 7 NOSCI"]." ;".$_POST["ID_ZAMOWIENIA"].";".$_POST["STATUS"].";".$_POST["SEKRET "]) $HASH_Z_USTAWIEN="XXX"; ){ if(hash("sha256",$HASH_Z_USTAWIEN.";".$_POST["KWOTA"].";".$_POST[" ID_PLATNOSCI"].";".$_POST["ID_ZAMOWIENIA"].";".$_POST["STATUS"]."; ".$_POST["SEKRET"]) == $_POST["HASH"]){ //komunikacja poprawna if($_POST["STATUS"]=="SUCCESS"){ i tu np $sql = "INSERT INTO platnosci(`id`,`username`,`kwota`, `id_paltnosci`,`id_zamowienia`,`status`, `sekret`,`hash`) VALUES('$id','$username', '$kwota','$id_platnosci','$id_zamowienia', '$status', $sekret', '$hash')"; $sql = ('update users and set status='zaplacone' where userid="$id"'); ; }else if($_POST["STATUS"]=="FAILURE"){ } } }
Dzięki