Skocz do zawartości

[Problem] Obsługa płatności w otwarty mini mod 2.0


Rekomendowane odpowiedzi

Witam.

Mam problem z obsługą płatności w moim katalogu. Używam skryptu otwartymini mod v2.0. Zaimplementowałem płatności postępując zgodnie z instrukcją na tej stronie. Co prawda podany opis dotyczy wersji otwarty mini 1.0, ale udało mi się dopasować modyfikację do otwarty mini mod 2.0, prócz właśnie jednej rzeczy. Mam problem z tym, że po podaniu kodu SMS nie jest on usuwany z bazy danych i można go wykorzystywać wielokrotnie. Co muszę zrobić aby raz wpisany i wysłany kod był automatycznie usuwany z bazy danych?

Pozdrawiam.

tania rejestracja domen pl - ranking cen
 

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 71
  • Dodano
  • Ostatniej odpowiedzi

a w odpowiedznie miejsce wstawiłeś zapytanie do bazy z poleceniem usunięcia kodu ?

mysql_query("DELETE FROM ".$prefix."kody WHERE `kod`='".$_POST['kod']."' LIMIT 1");

Odnośnik do komentarza
Udostępnij na innych stronach

  • 4 tygodnie później...

No dobra, to mże ja pokaże o co chodzi w tym wszystkim.

Płatności działają w 100% na modzie 2.0 by General_Dept.

Ogólnie wzorowałem się na poradniku z bloga Jacka Krużyckiego, ale jest tam błąd który powoduje niepełne działanie tego skryptu.

Autor (Piotr Tarnowski ) wzorował się na skrypcie udostępnionym przez Dotpay.

Ja ten błąd naprawiłem i działa wszystko poprawnie.

Oto poradnik jak dodać płatności do otwarty mini mod 2.0

Sciągnij paczkę z plikiem kody.php i wprzuć ten plik *.php do folderu otwarty_admin.

Pliki jakie będziemy modyfikować to:

- otwarty_disp/funkcje.php

- otwarty_disp/op.php

- otwarty_admin/admin_functions.php

Edytujemy plik otwarty_disp/funkcje.php

Znajdź

<input type="submit" value="<?=$new2?>" class="button" /><br />

i powyżej wklej

<span style="font-weight:bold;">Kod płatnoci:</span><br />
<input name="kod" value="<?=$_POST[kod]?>" class="formdodaj" size="8" type="text" /><br />TEKST O KOSZTACH I NUMERZE NA KTÓRY TRZEBA WYSŁAĆ SMS'A

Znajdź

function addok_link_form($name,$cat_id,$sub_id,$title,$desc,$keyw,$err)

Zamień na

function addok_link_form($name,$cat_id,$sub_id,$title,$desc,$keyw,$kod,$err)

Edytujemy plik otwarty_disp/op.php

Znajdź

mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url', uri='$uri', pr='0', relacji='1', akt='$akt', mail='$_POST[email]', rss='$_POST[rss]', link_zwrotny='$_POST[link_zwrotny]', platny='1' ");

i poniżej w nowej linii wklej

mysql_query("DELETE FROM ".$prefix."kody WHERE kod='".$_POST['kod']."' LIMIT 1");

uwaga! również w drugim warunku trzeba dokleić to zapytanie.

Znajdź

$info = "SprawdĽ czy zgłaszane dane s? poprawne";

Dodaj poniżej

if ($stop1==' ') $info = "<span style=\"color: red;font-weight:bold;\">Podaj prawidłowy kod zakupiony przez SMS.</span> ";

Znajdź

if ($cfg[u5]==1 AND $check_sid[ident]=="") { $stop1="<span class=\"op\">Sesja wygasła</span>";

Dodaj poniżej

$res = "SELECT * FROM ".$prefix."kody  WHERE kod='".$_POST['kod']."'  LIMIT 1"; 
$odp = mysql_query("$res");  
if (mysql_num_rows($odp) == 0) { $stop1 = ' '; }

Znajdź

if($cfg[pm]==1) addok_link_form($_POST[url],$_POST[cat_id],$_POST[sub_id],$_POST[tytul],$_POST[opis],$_POST[slowa],$err,$_POST[email]);
else addok_link_form($_POST[url],$_POST[cat_id],$_POST[sub_id],$_POST[tytul],$_POST[opis],$_POST[slowa],$err);
disp_footer();

Zamień na

if($cfg[pm]==1) addok_link_form($_POST[url],$_POST[cat_id],$_POST[sub_id],$_POST[tytul],$_POST[opis],$_POST[slowa],$_POST[kod],$err,$_POST[email]);
else addok_link_form($_POST[url],$_POST[cat_id],$_POST[sub_id],$_POST[tytul],$_POST[opis],$_POST[slowa],$_POST[kod],$err);
disp_footer();

Identycznie zrób z niższą funkcją

function addok_link($stop)

Edytujemy plik otwarty_admin/admin_functions.php

Znajdź

$header_info='<a href="index.php?a=cfg">Konfiguracja</a> | <a href="display.php">Wygl?d</a> | <a href="index.php?a=xml_import">XML import</a> | <a href="xml_export.php?a=mapy_stron">XML export</a> | <a href="sesje.php?a=online">Sesje</a> | <a href="blokowane.php?blok=adresy&a=lista">Blokowane</a> | <a href="../">Home</a> | <a href="index.php?a=logout">Wyloguj się</a>';

Zamień na

$header_info='<a href="kody.php">Kody SMS</a> | <a href="index.php?a=cfg">Konfiguracja</a> | <a href="display.php">Wygl?d</a> | <a href="index.php?a=xml_import">XML import</a> | <a href="xml_export.php?a=mapy_stron">XML export</a> | <a href="sesje.php?a=online">Sesje</a> | <a href="blokowane.php?blok=adresy&a=lista">Blokowane</a> | <a href="../">Home</a> | <a href="index.php?a=logout">Wyloguj się</a>';

Teraz wejdz do bazy danych poprzez PHPMyAdmin i stwórz dodatkową tabelę

CREATE TABLE `otwarty_kody` ( `id` INT( 8 ) NOT NULL
AUTO_INCREMENT PRIMARY KEY , `kod` VARCHAR( 11 ) NOT NULL )
ENGINE = MYISAM;

Powinno wszystko działać a jak coś będzie nie tak to piszczie w tym wątku.

Można dodatkowo zrobić włącznie i wyłączanie płatności w PA ale to jak ktoś będzie chciał to sam może do tego dojść. Ja mam to u siebie zaimplementowane i dizała bez żadnych problemów.

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

U mnie wyskakuje:
Fatal error: Call to undefined function ile() in /home/*****/otwarty_disp/funkcje.php on line 16

A 16 linia to:

$ile = ile(); $cfg = cfg(); $tpl = tpl();

Gdzie może leżeć problem?

a masz funkcję

function ile()

w pliku funkcje.php?

u mnie po twojej instrukcji niby dziala, ale nie przypisuje kategorii do wpisu, i w panelu admina trzeba samemu jakas kategorie przypisac

No to trochę dziwne bo nie powinno tak się dziać. A wcześniej dodawało poprawnie ?

Odnośnik do komentarza
Udostępnij na innych stronach

wczesniej dzialalo poprawnie.. moglbys mi przyblizyc, ktore funkcje/linie kodu za to odpowiadaja? to bym poszukal bledu,

musi byc jakis logiczny blad po wprowadzeniu zmian

aha, i powiedz mi co mialo dokladnie oznaczac w instrukcji stwierdzenie:

"uwaga! również w drugim warunku trzeba dokleić to zapytanie."

nie wiedzialem i zrobilem na czuja w {} tylko w pierwszym warunku if (drugiego nie ma?) po else nie wstawiajac nic wiecej

edit: moze przy zamianie kodu gdzies czegos zabraklo?

Najlepszy portal branży gier liczbowych Lotto to: Wyniki Lotto NET

Odnośnik do komentarza
Udostępnij na innych stronach

w orginale jest tak

if($cfg[pm]==1)	mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url', uri='$uri', pr='-9', relacji='1', akt='$akt', mail='$_POST[email]', rss='$_POST[rss]', link_zwrotny='$_POST[link_zwrotny]' ");
				else mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url', uri='$uri', pr='-9', relacji='1', akt='$akt', rss='$_POST[rss]', link_zwrotny='$_POST[link_zwrotny]' ");

a po zmianie powinno być tak:

if($cfg[pm]==1)	{
mysql_query("DELETE FROM ".$prefix."kody WHERE kod='".$_POST['kod']."' LIMIT 1");
mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url', uri='$uri', pr='-9', relacji='1', akt='$akt', mail='$_POST[email]', rss='$_POST[rss]', link_zwrotny='$_POST[link_zwrotny]' ");
				 }else{
mysql_query("DELETE FROM ".$prefix."kody WHERE kod='".$_POST['kod']."' LIMIT 1");
mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url', uri='$uri', pr='-9', relacji='1', akt='$akt', rss='$_POST[rss]', link_zwrotny='$_POST[link_zwrotny]' ");	}

rzeczywiście mój błąd, nie przyjrzałem się czy są klamry.

Co do pierwszego problemu to jeszcze nie wiem. być może to również jakiś mój błąd przy wpisywaniu.

Jutro przeanalizuje dokładniej kod i przetestuje na orginalnym modzie 2.0. Dam znać.

Odnośnik do komentarza
Udostępnij na innych stronach

w orginale jest tak

if($cfg[pm]==1)	mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url', uri='$uri', pr='-9', relacji='1', akt='$akt', mail='$_POST[email]', rss='$_POST[rss]', link_zwrotny='$_POST[link_zwrotny]' ");
				else mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url', uri='$uri', pr='-9', relacji='1', akt='$akt', rss='$_POST[rss]', link_zwrotny='$_POST[link_zwrotny]' ");

a po zmianie powinno być tak:

if($cfg[pm]==1)	{
mysql_query("DELETE FROM ".$prefix."kody WHERE kod='".$_POST['kod']."' LIMIT 1");
mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url', uri='$uri', pr='-9', relacji='1', akt='$akt', mail='$_POST[email]', rss='$_POST[rss]', link_zwrotny='$_POST[link_zwrotny]' ");
				 }else{
mysql_query("DELETE FROM ".$prefix."kody WHERE kod='".$_POST['kod']."' LIMIT 1");
mysql_query("insert into ".$prefix."wpisy set data='".time()."', tytul='$_POST[tytul]', opis='$_POST[opis]', slowa='$_POST[slowa]', url='$url', uri='$uri', pr='-9', relacji='1', akt='$akt', rss='$_POST[rss]', link_zwrotny='$_POST[link_zwrotny]' ");	}

rzeczywiście mój błąd, nie przyjrzałem się czy są klamry.

Co do pierwszego problemu to jeszcze nie wiem. być może to również jakiś mój błąd przy wpisywaniu.

Jutro przeanalizuje dokładniej kod i przetestuje na orginalnym modzie 2.0. Dam znać.

dalbyś rade poukładać to w całość i zrobić nowego tutka ?

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności