• Ogłoszenia

    • jimmi

      Problemy z logowaniem się   24.12.2016

      Jeżeli masz problem z zalogowaniem spróbuj zamiast dotychczasowego loginu użyć "nazwy wyświetlanej" (screen name) lub adresu email
M_a_T

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

72 postów w tym temacie

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.


katalog stron ndir.pl
 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

Dzięki dodałem w odpowiednim miejscu i działa.


katalog stron ndir.pl
 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

a może podpowiesz jak udało ci się zaimplementować płatności SMS dla wersji 2.0. Jakich zmian dokonałeś że wszystko hula??

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

ogólnie w tej instrukcji jest trochę inaczej bo w miniaczu 2.0 jest co nieco zmienione

ale działałeś według instrukcji ? udało się bez problemu ? :) i wykonywałeś wszystko do końca jak tam ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

Wzorowałem się na instrukcji zawartej na stronie. W niektórych miejscach m.in. przy odwołaniach do bazy danych konieczna była lekka modyfikacja polegająca na wstawieniu kodu w inne miejsce.


katalog stron ndir.pl
 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

To może pokazałbyś forumowiczom co dokładnie zrobiłeś?

Uwierz, że sporo osób na to czeka :)

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

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.

Edytowane przez Szymon80

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

Napisano (edytowane)

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?

Edytowane przez JereManU

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

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

Udostępnij tego posta


Odnośnik do posta
Udostępnij na 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 ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

Napisano (edytowane)

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?

Edytowane przez ravau

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

Napisano (edytowane)

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ć.

Edytowane przez Szymon80

Udostępnij tego posta


Odnośnik do posta
Udostępnij na 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 ?

Udostępnij tego posta


Odnośnik do posta
Udostępnij na stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą dodawać komentarze

Dodaj konto

Dodaj nowe konto. To bardzo proste!


Zarejestruj nowe konto

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.


Zaloguj się teraz

  • Przeglądający   0 użytkowników

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