Techninė profilaktika (Uždarbis.lt neveiks): 23-07 val.

Uždarbis.lt: Paysera įmokų surinkimas psl. pakeitus iš http į https - Uždarbis.lt

Peršokti prie turinio



IT paslaugų skelbimams skirta skiltis Dizaino ir programavimo paslaugos
Puslapis 1 iš 1
  • Jūs negalite kurti naujos temos
  • Jūs negalite atsakyti į šią temą

Narys yra atsijungęs ovsas1 

  • Užkietėjęs dalyvis
  • AkisAkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +104 -0
  • Pranešimai: 2.292
  • Kartu nuo: 2011-04-04
  • Vardas:Ovidijus

2019-12-02 14:37 (#1)

Paysera įmokų surinkimas psl. pakeitus iš http į https


Sveiki, atrodo, kad būtent po keitimo iš http į https webe nebeveikia paysera įmokų surinkimas. Ar gali taip būti?

webtopay.php failas:

Citata

class WebToPay_WebClient {
/**
* Gets page contents by specified URI. Adds query data if provided to the URI
* Ignores status code of the response and header fields
*
* @param string $uri
* @param array $queryData
*
* @return string
*
* @throws WebToPayException
*/
public function get($uri, array $queryData = array()) {
if (count($queryData) > 0) {
$uri .= strpos($uri, '?') === false ? '?' : '&';
$uri .= http_build_query($queryData, null, '&');
}
$url = parse_url($uri);
if ('https' == $url['scheme']) {
$host = 'ssl://'.$url['host'];
$port = 443;
} else {
$host = $url['host'];
$port = 80;
}
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp) {
throw new WebToPayException(sprintf('Cannot connect to %s', $uri), WebToPayException::E_INVALID);
}
if(isset($url['query'])) {
$data = $url['path'].'?'.$url['query'];
} else {
$data = $url['path'];
}
$out = "GET " . $data . " HTTP/1.0\r\n";
$out .= "Host: ".$url['host']."\r\n";
$out .= "Connection: Close\r\n\r\n";
$content = '';
fwrite($fp, $out);
while (!feof($fp)) $content .= fgets($fp, 8192);
fclose($fp);
list($header, $content) = explode("\r\n\r\n", $content, 2);
return trim($content);
}
}


Redirect.php failas:

Citata

function get_self_url() {

$s = substr(strtolower($_SERVER['SERVER_PROTOCOL']), 0,

strpos($_SERVER['SERVER_PROTOCOL'], '/'));

if (!empty($_SERVER["HTTPS"])) {

$s .= ($_SERVER["HTTPS"] == "on") ? "s" : "";

}

$s .= '://'.$_SERVER['HTTP_HOST'];

if (!empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] != '80') {

$s .= ':'.$_SERVER['SERVER_PORT'];

}

$s .= dirname($_SERVER['SCRIPT_NAME']);

return $s;

}




Ar čia yra padaryta, kad veiktų tik ant http? Nes iš payseros pranešimą gaunu:

Citata

Pagal pateiktą informaciją į jūsų nurodytą adresą: http://www.manowebas.lt/noriuvip.php, nusiuntus duomenis, buvo gautas atsakymas, kuris neturėjo specifikacijoje nurodyto privalomo „OK“ teksto arba jūsų svetainė tiesiog buvo nepasiekiama.

Šį pranešimą redagavo ovsas1: 2019-12-02 14:55

0


Narys yra atsijungęs aidahas 

  • Dažnas dalyvis
  • AkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +6 -0
  • Pranešimai: 211
  • Kartu nuo: 2008-05-12

2019-12-02 14:41 (#2)

Jei tavo svetaine nepasiekiama http protokolu, tuomet gali buti. Pasiziurek nustatymuose ir pacioj paskyroj paysera ar linka callback ir kiti nurodyti su https.
0


Narys yra atsijungęs ovsas1 

  • Užkietėjęs dalyvis
  • AkisAkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +104 -0
  • Pranešimai: 2.292
  • Kartu nuo: 2011-04-04
  • Vardas:Ovidijus

2019-12-02 15:02 (#3)

Rodyti pranešimąaidahas, 2019-12-02 14:41, pasakė:

Jei tavo svetaine nepasiekiama http protokolu, tuomet gali buti. Pasiziurek nustatymuose ir pacioj paskyroj paysera ar linka callback ir kiti nurodyti su https.

Su http nepasiekiama, yra padarytas redirectas į https. Pačioje payseros paskyroje, tai visur pakeičiau į https. Sms atsiskaitymai atrodo veikia, tik bankiniai neveikia. Tai gal kažkur failuose nusistato webas yra http ar https?

Neteisingai gauna tą self url kažkodėl

Citata

$self_url = get_self_url();

$db->query("INSERT INTO dle_user_vip_orders(uid, cost) VALUES ('".$user['user_id']."', '".$paymentList[$paymentNum]."')");
$orderid = $db->query("SELECT * FROM dle_user_vip_orders ORDER BY id DESC LIMIT 1")->fetch_assoc();

$request = WebToPay::redirectToPayment(array(
'projectid' => xxx,
'sign_password' => 'xxxx',
'orderid' => $orderid['id'],
'amount' => $paymentList[$paymentNum],
'currency' => 'EUR',
'country' => 'LT',
'accepturl' => $self_url.'paysera_accept.html',
'cancelurl' => $self_url.'paysera_cancel.html',
'callbackurl' => $self_url.'noriuvip.php', ---> http://www.web.lt/noriuvip.php
'test' => 0,
));
} catch (WebToPayException $e) {
header('Location: /');
die(':/');

Šį pranešimą redagavo ovsas1: 2019-12-02 15:04

0


Narys yra atsijungęs aidahas 

  • Dažnas dalyvis
  • AkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +6 -0
  • Pranešimai: 211
  • Kartu nuo: 2008-05-12

2019-12-02 15:02 (#4)

Neaisku ar naudoji firmini iskiepi ir kokia versija ant kazkokios sistemos, ar tai jusu koreguota kazkas, ar tai apskritai paciu pasirasyta. Bet siaip nustatymuose neturetu keistis kazkas. Yra instruktazas techninis:
https://developers.paysera.com/lt

Jei redirectina is http i https, vadinasi, svetaine veikia ir su http, nes juk auto perraso i https. Tokiu atveju ji pasiekiama. Dar galetum pasiziuret, kokia klaida gauni payseroje ir paskaityt ju klaidu kodu aprasyma + paziuret svetaines log'e arba serverio error log'e, kokia php klaida meta.
0


Narys yra atsijungęs ovsas1 

  • Užkietėjęs dalyvis
  • AkisAkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +104 -0
  • Pranešimai: 2.292
  • Kartu nuo: 2011-04-04
  • Vardas:Ovidijus

2019-12-02 15:13 (#5)

Rodyti pranešimąaidahas, 2019-12-02 15:02, pasakė:

Neaisku ar naudoji firmini iskiepi ir kokia versija ant kazkokios sistemos, ar tai jusu koreguota kazkas, ar tai apskritai paciu pasirasyta. Bet siaip nustatymuose neturetu keistis kazkas. Yra instruktazas techninis:
https://developers.paysera.com/lt

Jei redirectina is http i https, vadinasi, svetaine veikia ir su http, nes juk auto perraso i https. Tokiu atveju ji pasiekiama. Dar galetum pasiziuret, kokia klaida gauni payseroje ir paskaityt ju klaidu kodu aprasyma + paziuret svetaines log'e arba serverio error log'e, kokia php klaida meta.

Nėra jokių klaidų, pinigai yra gaunami. Tik automatiškai neužsideda paslauga. Gaunu tą anksčiau minėtą pranešimą iš payseros, kad jie gauna netinkamą atsakymą.

Citata

Pagal pateiktą informaciją į jūsų nurodytą adresą: http://www.manowebas.lt/noriuvip.php, nusiuntus duomenis, buvo gautas atsakymas, kuris neturėjo specifikacijoje nurodyto privalomo „OK“ teksto arba jūsų svetainė tiesiog buvo nepasiekiama.

Šį pranešimą redagavo ovsas1: 2019-12-02 15:15

0


Narys yra atsijungęs aidahas 

  • Dažnas dalyvis
  • AkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +6 -0
  • Pranešimai: 211
  • Kartu nuo: 2008-05-12

2019-12-02 15:18 (#6)

Tada reiktu ziureti jusu atsakymo kode. Kiek atsimenu, jiem reikia grazinti tik OK. Realiai ten gali nebuti jokio masyvo, jokiu parametru, o tik reiksme OK. Ir paysera tada klaidos neberodo. Tarkim callback.php irasai:

try {
       echo 'OK';
    }


Ir jie gauna OK ir klaidos neberodo. Aisku, tai toks work around, kas tik kai kuriom svetainem tinka pasidaryt.
0


Narys yra atsijungęs ovsas1 

  • Užkietėjęs dalyvis
  • AkisAkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +104 -0
  • Pranešimai: 2.292
  • Kartu nuo: 2011-04-04
  • Vardas:Ovidijus

2019-12-02 15:30 (#7)

Yra tas ok callback faile:

Citata

@ob_start ();
@ob_implicit_flush ( 0 );

if( !defined( 'E_DEPRECATED' ) ) {

@error_reporting ( E_ALL ^ E_WARNING ^ E_NOTICE );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_NOTICE );

} else {

@error_reporting ( E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );
@ini_set ( 'error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE );

}

@ini_set ( 'display_errors', true );
@ini_set ( 'html_errors', false );

define ( 'DATALIFEENGINE', true );
define ( 'ROOT_DIR', dirname ( __FILE__ ) );
define ( 'ENGINE_DIR', ROOT_DIR . '/engine' );

require_once ENGINE_DIR . '/classes/mysql.php';
require_once ENGINE_DIR . '/data/dbconfig.php';
require_once ENGINE_DIR . '/modules/functions.php';

require_once('libwebtopay/WebToPay.php');

if (isset ($_POST['data'])) {
$data = base64_decode($_POST['data']);
$data = explode('&', $data);

$ad = [];
foreach ($data as $d) {
$dd = explode('=',$d);
$ad[$dd[0]] = $dd[1];
}

$listOfTime = [
100 => time() + 60 * 60 * 24 * 30,
300 => time() + 60 * 60 * 24 * 90,
500 => time() + 60 * 60 * 24 * 180,
1000 => time() + 60 * 60 * 24 * 366,
];

$order = $db->query("SELECT * FROM dle_user_vip_orders WHERE id='".$ad['orderid']."' AND status='0' LIMIT 1")->fetch_assoc();

if ($order !== null) {
$vip = $db->query("SELECT * FROM dle_user_vip WHERE uid='".$order['uid']."' LIMIT 1")->fetch_assoc();

if ($vip !== null) {
$db->query("UPDATE dle_user_vip SET `time`='".($listOfTime[$ad['amount']])."' WHERE uid='".$order['uid']."' LIMIT 1");
$db->query("UPDATE dle_user_vip_orders SET status='1' WHERE id='".$ad['orderid']."' LIMIT 1");
die('OK');
} else {
$db->query("INSERT INTO dle_user_vip(uid, time, status) VALUES ('".$user['user_id']."', '".$listOfTime[$ad['amount']]."', 0)");
$db->query("UPDATE dle_user_vip_orders SET status='1' WHERE id='".$ad['orderid']."' LIMIT 1");
die('OK');
}
}
}

0


Narys yra atsijungęs DonatasO 

  • Naujas veidas forume
  • Akis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +0 -0
  • Pranešimai: 4
  • Kartu nuo: 2011-04-13

2019-12-05 14:12 (#8)

Kaip manai, kas įvyktų, jei kažkas į tavo callbacką papostintų 'data' su reikšme 'b3JkZXJpZD0nOyBkcm9wIHRhYmxlIGRsZV91c2VyX3ZpcF9vcmRlcnM7IC0tIA=='? :)

https://xkcd.com/327/

Šį pranešimą redagavo DonatasO: 2019-12-05 14:16

0


Narys yra atsijungęs ovsas1 

  • Užkietėjęs dalyvis
  • AkisAkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +104 -0
  • Pranešimai: 2.292
  • Kartu nuo: 2011-04-04
  • Vardas:Ovidijus

2019-12-05 18:03 (#9)

Rodyti pranešimąDonatasO, 2019-12-05 14:12, pasakė:

Kaip manai, kas įvyktų, jei kažkas į tavo callbacką papostintų 'data' su reikšme 'b3JkZXJpZD0nOyBkcm9wIHRhYmxlIGRsZV91c2VyX3ZpcF9vcmRlcnM7IC0tIA=='? :)

https://xkcd.com/327/

Ką aš žinau...
0


Narys yra atsijungęs DonatasO 

  • Naujas veidas forume
  • Akis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +0 -0
  • Pranešimai: 4
  • Kartu nuo: 2011-04-13

2019-12-06 08:40 (#10)

Rodyti pranešimąovsas1, 2019-12-05 18:03, pasakė:

Ką aš žinau...

Tas callback skriptas leidžia bet kam daryti ką tik patinka su tavo duomenų baze - trinti, keisti ar kurti įrašus. Pvz., be jokio mokėjimo tapti VIP arba visiems vartotojams suteikti VIP statusą. Arba visiems atimti. Arba ištrinti visus duomenis, kuriuos turi.

Jeigu mokaisi programuoti, būtinai paskaityk, kas yra sql injection ir kaip to išvengti :)

Kas tai yra: https://www.php.net/...l-injection.php
Kaip apsisaugoti: https://stackoverflo.../a/60496/494616
0


Narys yra atsijungęs ovsas1 

  • Užkietėjęs dalyvis
  • AkisAkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +104 -0
  • Pranešimai: 2.292
  • Kartu nuo: 2011-04-04
  • Vardas:Ovidijus

2019-12-06 12:23 (#11)

Rodyti pranešimąDonatasO, 2019-12-06 08:40, pasakė:

Tas callback skriptas leidžia bet kam daryti ką tik patinka su tavo duomenų baze - trinti, keisti ar kurti įrašus. Pvz., be jokio mokėjimo tapti VIP arba visiems vartotojams suteikti VIP statusą. Arba visiems atimti. Arba ištrinti visus duomenis, kuriuos turi.

Jeigu mokaisi programuoti, būtinai paskaityk, kas yra sql injection ir kaip to išvengti :)

Kas tai yra: https://www.php.net/...l-injection.php
Kaip apsisaugoti: https://stackoverflo.../a/60496/494616

Gerai, dėkui. Jeigu toks gudrus, gal žinai, kaip išspręsti tą problemą?
0


Narys yra atsijungęs dice 

  • Forumo senbuvis
  • AkisAkisAkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +19 -0
  • Pranešimai: 4.004
  • Kartu nuo: 2005-03-23

2019-12-06 13:16 (#12)

Tai tiesiog čia pakeisk adresą į savo ir tiek (nenaudojant tų self_url):

'callbackurl' => 'https://www.web.lt/noriuvip.php'

0


Narys yra atsijungęs ovsas1 

  • Užkietėjęs dalyvis
  • AkisAkisAkisAkis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +104 -0
  • Pranešimai: 2.292
  • Kartu nuo: 2011-04-04
  • Vardas:Ovidijus

2019-12-06 14:37 (#13)

Rodyti pranešimądice, 2019-12-06 13:16, pasakė:

Tai tiesiog čia pakeisk adresą į savo ir tiek (nenaudojant tų self_url):

'callbackurl' => 'https://www.web.lt/noriuvip.php'


Nu jo :D dėkui
0


Narys yra atsijungęs DonatasO 

  • Naujas veidas forume
  • Akis
  • Grupė: Patvirtinti nariai
  • Atsiliepimai: +0 -0
  • Pranešimai: 4
  • Kartu nuo: 2011-04-13

2019-12-09 08:23 (#14)

Rodyti pranešimąovsas1, 2019-12-06 12:23, pasakė:

Gerai, dėkui. Jeigu toks gudrus, gal žinai, kaip išspręsti tą problemą?

Tai labai puikiai aprašyta mano duotose nuorodose ;)
0


Narys yra atsijungęs Cpliusas 

  • Dažnas dalyvis
  • AkisAkisAkis
  • Grupė: Nariai
  • Atsiliepimai: +3 -0
  • Pranešimai: 817
  • Kartu nuo: 2013-05-19
  • Miestas:North Pole

2019-12-09 12:10 (#15)

Rodyti pranešimąDonatasO, 2019-12-06 08:40, pasakė:

Tas callback skriptas leidžia bet kam daryti ką tik patinka su tavo duomenų baze - trinti, keisti ar kurti įrašus. Pvz., be jokio mokėjimo tapti VIP arba visiems vartotojams suteikti VIP statusą. Arba visiems atimti. Arba ištrinti visus duomenis, kuriuos turi.

Jeigu mokaisi programuoti, būtinai paskaityk, kas yra sql injection ir kaip to išvengti :)

Kas tai yra: https://www.php.net/...l-injection.php
Kaip apsisaugoti: https://stackoverflo.../a/60496/494616


Kaip apsisaugoti - nustoti naudoti plain php ir naudoti frameworkus: Symfony/Laravel ir jų built-in metodus, be savo raw SQL išradinėjimu, jei jau plain SQL tai parametrus reikia set'inti ir PDO. Case closed.

Šį pranešimą redagavo Cpliusas: 2019-12-09 12:13

0


Pasidalinti šia tema:


Puslapis 1 iš 1
  • Jūs negalite kurti naujos temos
  • Jūs negalite atsakyti į šią temą

1 nariai(-ų) skaito šią temą
0 nariai(-ių), 1 svečiai(-ių) ir 0 slapti(-ų) nariai(-ių)

Užklausų vykdymo statistika

  • Dabar yra: 2019-12-14 22:31

Tas nuostabus prisijungimo momentas


Prisijungimo nustatymai