PayU - Nelze vytvořit novou platbu

PayU - Nelze vytvořit novou platbu
« kdy: 10. 04. 2014, 21:25:38 »
Zdravím,
mám tu takový menší problém s PayU, snažím se vytvořit novou platbu, jenže pokaždé po odeslání formuláře (je tam jen testovací platba) se mi vrací chyba 103, což je podle popisů chyb toto: "chybí parametr sig anebo nesprávná hodnota parametru sig".

Snažím se už hodinu přijít na to, proč se mi to stále vrací, ale už mě absolutně nic nenapadá. Nevidíte v tom něco?

Díky za každou radu.

Kód: [Vybrat]
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script language='JavaScript' type='text/JavaScript' src='https://secure.payu.com/jsgenerator/js/jquery-latest.js'></script>
<script language='javascript' type='text/javascript' src='https://secure.payu.com/paygw/UTF/js/xxxxxx/17/template:3/ext_calc:0/paytype.js'>
</script>
</head>
<body>
<form action="https://secure.payu.com/paygw/UTF/NewPayment" method="POST" name="payform">
<?php
// posid,posAuthKey a key1 mají vymyšlené hodnoty pro webtrh, jinak jsou ale v pořádku nastavené


$posid '123456';
$posAuthKey '1234567';
$sessionId round(microtime(true) * 1000);
$amount '950';
$desc 'objednavka20142';
$ip $_SERVER['REMOTE_ADDR'];
$email 'martin@martinbarta.eu';
$first 'Martin';
$last 'Bárta';
$ts mktime();
$language 'cs';
$key1 'fewnfkewnfkfnefkjnfkjfnwknewjkffnewk';
?>



 <input type="hidden" name="pos_id" value="<?php echo $posid?>">
 <input type="hidden" name="pos_auth_key" value="<?php echo $posAuthKey?>">
 <input type="hidden" name="session_id" value="<?php echo $sessionId?>">
 <input type="hidden" name="amount" value="<?php echo $amount?>">
 <script language="JavaScript" type="text/JavaScript">
PlnPrintTemplate();
 </script>
 <input type="hidden" name="desc" value="<?php echo $desc?>">
 <input type="hidden" name="client_ip" value="<?php echo $ip?>">
 <input type="hidden" name="email" value="<?php echo $email?>">
 <input type="hidden" name="first_name" value="<?php echo $first?>">
 <input type="hidden" name="last_name" value="<?php echo $last?>">
 <input type="hidden" name="ts" value="<?php echo $ts?>">
 <input type="hidden" name="language" value="<?php echo $language?>">
<?php
// vytvoření kontrolního součtu
$sig md5($posid.$sessionId.$posAuthKey.$amount.$desc.$first.$last.$email.$language.$ip.$ts.$key1);
?>

 <input type="hidden" name="sig" value="<?php echo $sig?>">
 <input type="submit" value="Pay with PayU.cz">
</form>


Re:PayU - Nelze vytvořit novou platbu
« Odpověď #1 kdy: 11. 04. 2014, 09:07:45 »
Zkuste si ten podpis vypočítat jinak, ručně, a porovnat s tím, co vypočítá váš kód. Osobně mi připadá odvážné jen tak pospojovat všechny proměnné jako text a celé to nacpat do md5. Třeba už jen proto, že md5 se počítá z bajtů, vy tam ale vkládáte text – takže se text musí nějak převést na bajty, a to by se mělo dít definovaným (a PayU stanoveným) způsobem, ne „jak to zrovna vyjde“.

Re:PayU - Nelze vytvořit novou platbu
« Odpověď #2 kdy: 11. 04. 2014, 09:47:30 »
Podle PayU je to takto v pořádku, problém byl v tom, že pole formuláře first_name bylo "fi" jako jedno písmeno díky zkopírování z jejich dokumentace. Na server PayU se tak first_name neodesílal ale počítalo se s ním v tom SIGu.

Problém tedy vyřešen.

Re:PayU - Nelze vytvořit novou platbu
« Odpověď #3 kdy: 11. 04. 2014, 09:58:52 »
Ja se s PayU silene vyvztekal. Jejich dokumentace je v urcitejch mistech dost nepresna a v ukazkovym skriptu meli taky chyby. A nejhorsi je technicka podpora kde nejspis vsechny dotazy jen prekladaji do polstiny a odesilaji...