Skocz do zawartości


 
Zdjęcie

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


  • Nie możesz rozpocząć nowego tematu
  • Proszę się zalogować aby odpowiedzieć
71 odpowiedzi na ten temat

#1

M_a_T
  • Forumowicze
  • 488 postów
  • Dołączył: 25-luty 08

Napisany 01 styczeń 2010 - 22:23

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  ||  baza noclegowa urloppik.pl


#2

Szymon80
  • Forumowicze
  • 385 postów
  • Dołączył: 12-kwiecień 09

Napisany 02 styczeń 2010 - 00:48

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");


#3

M_a_T
  • Forumowicze
  • 488 postów
  • Dołączył: 25-luty 08

Napisany 02 styczeń 2010 - 01:08

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

katalog stron nDir.pl  ||  baza noclegowa urloppik.pl


#4

kaszub
  • Forumowicze
  • 35 postów
  • Dołączył: 12-styczeń 10

Napisany 28 styczeń 2010 - 20:53

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??

#5

sh0tek
  • Forumowicze
  • 860 postów
  • Dołączył: 25-sierpień 09

Napisany 29 styczeń 2010 - 11:39

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 ?

#6

M_a_T
  • Forumowicze
  • 488 postów
  • Dołączył: 25-luty 08

Napisany 29 styczeń 2010 - 21:58

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  ||  baza noclegowa urloppik.pl


#7

Pyciak
  • Forumowicze
  • 548 postów
  • Dołączył: 05-sierpień 09

Napisany 30 styczeń 2010 - 15:15

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

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

#8

Szymon80
  • Forumowicze
  • 385 postów
  • Dołączył: 12-kwiecień 09

Napisany 30 styczeń 2010 - 17:42

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.

Edytowany przez Szymon80, 30 styczeń 2010 - 17:44.


#9

JereManU
  • Forumowicze
  • 529 postów
  • Dołączył: 18-wrzesień 07

Napisany 06 luty 2010 - 23:55

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?

Edytowany przez JereManU, 06 luty 2010 - 23:56.


#10

ravau
  • Forumowicze
  • 1173 postów
  • Dołączył: 28-marzec 05

Napisany 07 luty 2010 - 03:37

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

Dodaj stronę do darmowych katalogów,
Zjawiska Paranormalne - nie wszyscy poszukiwacze to idioci!


#11

Szymon80
  • Forumowicze
  • 385 postów
  • Dołączył: 12-kwiecień 09

Napisany 07 luty 2010 - 04:19

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 ?

#12

ravau
  • Forumowicze
  • 1173 postów
  • Dołączył: 28-marzec 05

Napisany 07 luty 2010 - 04:22

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?

Edytowany przez ravau, 07 luty 2010 - 04:23.

Dodaj stronę do darmowych katalogów,
Zjawiska Paranormalne - nie wszyscy poszukiwacze to idioci!


#13

Szymon80
  • Forumowicze
  • 385 postów
  • Dołączył: 12-kwiecień 09

Napisany 07 luty 2010 - 04:48

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

Edytowany przez Szymon80, 07 luty 2010 - 04:50.


#14

trzegard
  • Forumowicze
  • 147 postów
  • Dołączył: 14-styczeń 07

Napisany 07 luty 2010 - 11:18

Witam,

teraz jest ok. Dzięki.
U mnie śmiga, kody testowe: busola01 ---> busola15.

Pozdrawiam
Grzegorz

#15

kriss83
  • Forumowicze
  • 251 postów
  • Dołączył: 01-maj 08

Napisany 07 luty 2010 - 14:01

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 ?




0 użytkowników czyta ten temat

0 użytkowników, 0 gości, 0 anonimowych użytkowników

Polecamy