Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Po dodaniu certyfikatu (https) nie działa proces aktywacji
Forum PHP.pl > Forum > PHP
pezet40
Witam. Dodałem certyfikat na swojej stronie, adres zmienił się na https i wszystko działa, strona poprawnie reaguje, tylko po zapłaceniu przez użytkownika za pomocą dotpay nie aktywuje mu automatycznie konta... oto kod odpowiedzialny za to:

  1. //Proces aktywacji konta
  2. $zapytanie = mysql_query("UPDATE cms_users SET aktywacja = 1 WHERE id=".$NumerUzytkownika."");
  3. $przekierowanie2 = "".$domena2."/index.php?akcja=aktywacja";
  4. echo ('<META HTTP-EQUIV="refresh" CONTENT="0; URL=' .$przekierowanie2. '">');


a tutaj fragment kodu z pliku .htaccess

  1. AddHandler application/x-httpd-php54 php
  2. RewriteEngine On
  3. RewriteBase /
  4.  
  5. RewriteEngine On
  6. RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
  7. RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
  8.  
  9. RewriteEngine On
  10. RewriteCond %{HTTPS} !=on
  11. RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L


błagam o pomoc gdyż drugi dzień się męcze...
phpion
O ile pamietam to systemy płatności przesyłają do Ciebie dane POSTem. Możliwe, ze kierujesz ich na adres http albo z/bez www w wyniku czego .htaccess dokonuje przekierowania gubiąc przy tym dane z POSTa. Pod adresem którym odbierasz dane z DP daj sobie zrzut danych do pliku np. file_put_contents($plik, print_r($_POST, true)) i zobacz czy jakiekolwiek otrzymujesz.
Pyton_000
Albo spróbuj dodać parametr P do flag zawartych w []
pezet40
phpion jesteś wielki, grzebałem w kodzie strony, przejrzałem setki linijek kodu.... a sam popsułem w zwykłym pliku htaccess

po usunięciu tej linijki z pliku .htaccess aktywacja działa

  1. RewriteEngine On
  2. RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
  3. RewriteRule ^(.*)$ http://%1/$1 [L,R=301]


Tylko teraz drugi problem!
po wpisaniu adresu www.mojadomena.pl pięknie przekierowuje na https://mojadomena.pl
ale po wpisaniu https://www.mojadomena.pl nic nie przekierowuje a na dodatek na stronie głównej specjalnych czcionek mi nie czyta przez co strona się rozjeżdza... Dziwne nie?

W jaki BEZPIECZNY sposób zrezygnować całkowicie z www aby drugi przypadek przekierowywał na https
vokiel
Tak czy inaczej sprawdź ustawienia w dotPay, bo może masz tam ustawione http lub www, popraw adres i wtedy sprawdzaj dalej.

Poza tym standardowe przekierowanie z www na bez-www z uwzględnieniem http(s).
Kod
  # Set "protossl" to "s" if we were accessed via https://.  This is used later
  # if you enable "www." stripping or enforcement, in order to ensure that
  # you don't bounce between http and https.
  RewriteRule ^ - [E=protossl]
  RewriteCond %{HTTPS} on
  RewriteRule ^ - [E=protossl:s]

  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]


Samo przekierowanie http => https możesz zrobić na poziomie vhostów (wszystko z http od razu przekierować na https):
Kod
<VirtualHost *:80>
    ServerName foo.com
    ProxyPass / https://foo.com/
</VirtualHost>
pezet40
W panelu administracyjnym dotpay nie mam kompletnie żadnych ustawień jeżeli chodzi o linki, czy integrację z serwisem
Po prostu mój skrypt przy każdej transakcji wysyła Id konta, kwotę itd. i stąd się księguję

Ale dziękuję za pomoc. Teraz przy "standardowym" przekierowaniu wszystko działa jak chciałem... I nie mam "www" i działa aktywacja

Prośba, sprawdzcie teraz czy mój htacces jest poprawny:

  1. AddHandler application/x-httpd-php54 php
  2. RewriteEngine On
  3. RewriteBase /
  4.  
  5. RewriteRule ^ - [E=protossl]
  6. RewriteCond %{HTTPS} on
  7. RewriteRule ^ - [E=protossl:s]
  8.  
  9. RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  10. RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
  11.  
  12. <IfModule mod_expires.c>
  13. ExpiresActive On
  14. ExpiresByType image/gif "access plus 1 month"
  15. ExpiresByType image/jpeg "access plus 1 month"
  16. ExpiresByType image/png "access plus 1 month"
  17. ExpiresByType text/css "access plus 1 week"
  18. ExpiresByType text/javascript "access plus 1 week"
  19. ExpiresByType application/javascript "access plus 1 week"
  20. ExpiresByType application/x-javascript "access plus 1 week"
  21. ExpiresByType image/x-icon "access plus 1 year"
  22. ExpiresByType image/svg+xml "access plus 1 year"
  23. ExpiresByType image/vnd.microsoft.icon "access plus 1 year"
  24. ExpiresByType application/font-woff "access plus 1 year"
  25. ExpiresByType application/x-font-woff "access plus 1 year"
  26. ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
  27. ExpiresByType font/opentype "access plus 1 year"
  28. ExpiresByType font/ttf "access plus 1 year"
  29. ExpiresByType font/otf "access plus 1 year"
  30. ExpiresByType application/x-font-ttf "access plus 1 year"
  31. ExpiresByType application/x-font-otf "access plus 1 year"
  32. </IfModule>
  33.  


Jeszcze raz dziękuję wszystkim za pomoc i Pozdrawiam
Pyton_000
Btw. jesli w panelu DotPay nie ma to musisz przekazywac w formularzu ten URL na który potem dotplay zwraca info o statusie. Tak przynajmniej jest w cywilizowanych metodach płatności smile.gif
pezet40
Pyton masz rację, tak jest... ale w Total commanderze wyszukuje w plikach serwisu (serwis pisany na zlecenie setki plikow php) ciagu znakow "www" i nie ma linkow odnosnie platnosci w dotpay... W bazie danych to samo, nie widze linijek z przedrostkiem "www"

Ale tak wiem, nic się z powietrza nie bierze musi to gdzieś być... chybaże dotpay na sztywno interpretuje adresy jako "www"

Pozdrawiam
Pyton_000
Nie, znajdź miejsce gdzie masz płatnośc uzytkownika i klika zapłać. Tam gdzies powinien być Form z adresem do dotpay a jako pole hiidden jakaś zmienna. Być może po prostu jest tam wstawiona zmienna środowiskowa i z automatu wstawia link + dokleja tylko nazwę pliku który odbiera te dane. Więc możesz szukać samej nazwy pliku któy odbiera status płatności.
pezet40
Mam przed sobą button "zapłać" wziąłem źródło strony i kod odpowiedzialny za płatność, zrobiłem to przed kliknieciem bo po kliknieciu mam link https://ssl.dotpay.pl/ dla którego nie moge podejrzec zrodla strony
(w miejscu 000000 jest mój id konta dotpay)
  1. <div class="AktywacjaBoxTresc">
  2. <form action="https://ssl.dotpay.pl" method="post">
  3. <input name="id" type="hidden" value="000000">
  4. <input name="p_info" type="hidden" value="e-Media Marketing Sp. z o.o" />
  5. <input name="lang" type="hidden" value="pl">
  6. <input name="opis" type="hidden" value="Aktywacja konta">
  7. <input name="typ" type="hidden" value="3" />
  8. <input name="URL" type="hidden" value="https://mojadomena.pl/index.php?akcja=dotpay" />
  9. <input name="URLC" type="hidden" value="https://mojadomena.pl/urlc_rejestracja.php" />
  10. <input name="buttontext" type="hidden" value="Powrót do serwisu MojaDomena.pl." />
  11. <input name="amount" type="hidden" value="19" />
  12. <input name="control" type="hidden" value="182207" />
  13. <input type="submit" name="b1" class="b1" value="" />
  14. </form>
  15. </div>


Nie widzę tu linku powrotnego który aktywuje konta w bazie danych... Więc nie wiem czy ten kod coś daje... A może był tu przedrostek www zanim nie zmodyfikowałem pliku htacess bo w sumie teraz poprawnie działa
viking
Dotpay miał na pewno link powrotny ustawiany w panelu konta.
vokiel
A czym są te URLe?

  1. <input name="URL" type="hidden" value="https://mojadomena.pl/index.php?akcja=dotpay" />
  2. <input name="URLC" type="hidden" value="https://mojadomena.pl/urlc_rejestracja.php" />
pezet40
dotpay ma aż 3 możliwości konfigurowania płatności... ja mam poprzez formularz całkowicie generowany po mojej stronie... ale oczywiście mogę na dotpayu stworzyć bezpośredni LINK ale mam wdrożoną metodę formularza...

Vokiel masz racje te są chyba powrotne ale czy obydwa? Musze poczytac czym sie rozni pierwszy od drugiego... ale pozatym pierwszy link nie ma odwolania bezposrednio dp pliku php bo konczy się słowem "dotpay"

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.