webForumDet fria alternativet

Hur förändras $MD5string när jag utgår från min array ()?

PHP

4 svar · 761 visningar · startad av biggles-1

Medlem sedan jan. 2005125 inlägg
Frågan#1

Hur skall $MD5string se ut när jag utgår från min array(), när den sträng jag har idag utgår från variabler, för att hashas riktigt.

Så här ser utgångsläget ut:

<?php
$Key = "1234567890";
				
$fields = Array(
	"BuyerEmail"       => $member['email'],
	"BuyerFirstName"   => $member['first_name'],
	"BuyerLastName"    => $member['last_name'],
	"Cost"             => $cart_total,
					
	"SellerEmail"      => "order@mindoman.se",
	"Description"      => "Beställning gjord på xxxxx",
	"ExtraCost"        => "0",

	"RefNr"            => "777",
	"CancelUrl"		   => "http://www.mindoman.se/error.php",
	"OkUrl"            => "http://www.mindoman.se/verify.php",
	"AgentId"          => "12345",
	"GuaranteeOffered" => "1",
	"MD5"              => $MD5Hash,
	
	//"CustomReceipt"  => PAYS_CUST_RECEIPT,
    //"PaymentMethod"  => PAYS_METHOD,
	);
	
	$MD5string = $SellerEmail . ":" . $Cost . ":" . $ExtraCost . ":" . $OkUrl . ":" . $GuaranteeOffered . $Key; 
	$MD5Hash = md5($MD5string); 
?>

Har testat olika varianter i drygt en timme men kommer inte rätt och börjar sina på egna förslag!

Vet att det bör vara självklart för den invigde med jag hittar inte rätt.

mvh Nils

Medlem sedan aug. 20039 340 inlägg
#2

Först och främst ger du $MD5Hash ett värde efter att du fältet MD5 till $MD5Hash. Variabeln $MD5Hash är alltså tom när du ger $fields sina värden. Edit: Om det är hela dina testkod så är självklart även $SellerEmail, $Cost osv också tomma.

Medlem sedan jan. 2005125 inlägg
#3

Hej nitro2k01,

Hm ... hur ändrar jag då för att det skall fungera?

Det är väl inte så enkelt som att flytta upp "hash"-raderna över/före $fields för att de inte skall vara tomma?

Jag trodde i min enfald att jag fastnat på hur jag skulle "hämta in" värdena till strängen ..

$MD5string = $SellerEmail . ":" . $Cost . ":" . $ExtraCost . ":" . $OkUrl . ":" . $GuaranteeOffered . $Key;  
$MD5Hash = md5($MD5string);

.. för att istället bli något som liknade ..

$MD5string = "SellerEmail" . ":" . "Cost" . ":" . "ExtraCost" . ":" . "OkUrl" . ":" . "GuaranteeOffered" . "$Key";  
$MD5Hash = md5($MD5string);

.. men vet att detta är fel.

Jag har en annan lösning som fungerar så jag vet att parametrarna är de rätta, men vill använda detta om jag bara får ihop det, vilket jag just nu inte får. Det du ser av kod är det jag har att utgå ifrån.

Ingångströskeln känns hög när det gäller PHP OCH lutar mig mot att jag är enveten och er experter *ler*.

Tack på förhand. / Nils

Medlem sedan jan. 2005125 inlägg
#4

nitri2k01, jag förutsatte att detta var vad du menade och gjorde en test.

Flyttade upp $key, $MD5string och $MD5Hash ovanför $fields och ändrade raden till ...

$MD5string = "SellerEmail" . ":" . "Cost" . ":" . "ExtraCost" . ":" . "OkUrl" . ":" . "GuaranteeOffered" . "$Key"; 
$MD5Hash = md5($MD5string);

.. och det verkar fungera. Snopet men tacksamt *ler*.

Hm ... går det att blanda element och variabler på detta sättet, se $MD5string? Kan det vara så att "$key" inte ingår i den hashade strängen, eller skulle det isåfall blivit ett felmeddelande?

EDIT: Har nu testat mot Paysons testsida och hashen godkänns inte! Något är fel i strängen vad gäller hur den är formulerad med citationstecken, apostrofer, klammrar eller ...!

Medlem sedan jan. 2005125 inlägg
#5

Jag löste själv problemet genom att behålla den MD5-sträng som jag vet fungerar och sedan ändra parametrar som behövdes.

Den fungerande koden är m a o fortfarande:

<?php				
$MD5string = $SellerEmail . ":" . $Cost . ":" . $ExtraCost . ":" . $OkUrl . ":" . $GuaranteeOffered . $Key; 
$MD5Hash = md5($MD5string); 
?>

När jag får ihop alla bitar lägger jag upp min lösning i min tidigare tråd som ännu inte är löst. Finns det någon annan nybörjare som kan ha glädje av det, så delar jag mer än gärna med mig.

Just nu är jag dock ganska så trött på PHP *ler*.

Ha en trevlig kväll. / Nils

264 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
128 ms — ändringar (db)