rekenen in PHP
Ik heb een script voor een webshop. Hierbij wordt het totaalbedrag door gegeven aan ideal. Het ziet er als volgt uit:
Prijs Incl. BTW: €70,00
Verzendkosten: €6,75
Totaal: €76,75
Vervolg ik mijn actie, staat er echter bij het betaalscherm 76,00, in plaats van 76,75. In mijn code staat het volgende:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
$orderid = e107shop_order_id();
$subID = "0";
$paymentType = "ideal";
$total = $total * 100;
$validUntil = date("Y-m-d\TG:i:s\Z", strtotime("+1 week"));
$itemNumber1 = "1";
$itemDescription1 = "Artikel";
$itemQuantity1 = "1";
$itemPrice1 = $total;
### bereken alvast een deel van de shastring
$partOfSha = $partOfSha . $itemNumber1 . $itemDescription1 . $itemQuantity1 . $itemPrice1;
### de complete shastring
$shastring = $ideal_key . $ideal_id . $subID . $total . $orderid . $paymentType . $validUntil . $partOfSha;
### speciale HTML entiteiten verwijderen
$clean_shaString = html_entity_decode($shastring);
### tekens als "\t", "\n", "\r", " " (spaties) mogen niet voorkomen in de string
$not_allowed = array("\t", "\n", "\r", " ");
$clean_shaString = str_replace($not_allowed, "",$clean_shaString);
$shasign = sha1($clean_shaString);
$temp .= "
<form action='$ideal_url' method='post' id='form1' name='form1'>
<input type='hidden' name='merchantID' value='$ideal_id'>
<input type='hidden' name='subID' value='0'>
<input type='hidden' name='amount' value='$total'>
<input type='hidden' name='purchaseID' value='$orderid'>
<input type='hidden' name='language' value='$language'>
<input type='hidden' name='currency' value='$currency'>
<input type='hidden' name='description' value='$orderid'>
<input type='hidden' name='hash' value='$shasign'>
<input type='hidden' name='paymentType' value='ideal'>
<input type='hidden' name='validUntil' value='$validUntil'>
<input type='hidden' name='itemNumber1' value='$itemNumber1'>
<input type='hidden' name='itemDescription1' value='$itemDescription1'>
<input type='hidden' name='itemQuantity1' value='$itemQuantity1'>
<input type='hidden' name='itemPrice1' value='$total'>
<input type='hidden' name='urlCancel' value='".$shop_settings['path']."payment_canceled.php'>
<input type='hidden' name='urlSuccess' value='".$shop_settings['path']."payment_accepted.php'>
<input type='hidden' name='urlError' value='".$shop_settings['path']."payment_error.php'>";
if ($language == "nl") {
$temp .= "<input type='submit' value='Ik wil nu betalen' id='submit2' name='submit2'></form>";
} else {
$temp .= "<input type='submit' value='I want to pay now' id='submit2' name='submit2'></form>";
}
e107shop_process_order($orderid, "pending", $cart_id, "ideal", $region, $coupon);
return $temp;
$subID = "0";
$paymentType = "ideal";
$total = $total * 100;
$validUntil = date("Y-m-d\TG:i:s\Z", strtotime("+1 week"));
$itemNumber1 = "1";
$itemDescription1 = "Artikel";
$itemQuantity1 = "1";
$itemPrice1 = $total;
### bereken alvast een deel van de shastring
$partOfSha = $partOfSha . $itemNumber1 . $itemDescription1 . $itemQuantity1 . $itemPrice1;
### de complete shastring
$shastring = $ideal_key . $ideal_id . $subID . $total . $orderid . $paymentType . $validUntil . $partOfSha;
### speciale HTML entiteiten verwijderen
$clean_shaString = html_entity_decode($shastring);
### tekens als "\t", "\n", "\r", " " (spaties) mogen niet voorkomen in de string
$not_allowed = array("\t", "\n", "\r", " ");
$clean_shaString = str_replace($not_allowed, "",$clean_shaString);
$shasign = sha1($clean_shaString);
$temp .= "
<form action='$ideal_url' method='post' id='form1' name='form1'>
<input type='hidden' name='merchantID' value='$ideal_id'>
<input type='hidden' name='subID' value='0'>
<input type='hidden' name='amount' value='$total'>
<input type='hidden' name='purchaseID' value='$orderid'>
<input type='hidden' name='language' value='$language'>
<input type='hidden' name='currency' value='$currency'>
<input type='hidden' name='description' value='$orderid'>
<input type='hidden' name='hash' value='$shasign'>
<input type='hidden' name='paymentType' value='ideal'>
<input type='hidden' name='validUntil' value='$validUntil'>
<input type='hidden' name='itemNumber1' value='$itemNumber1'>
<input type='hidden' name='itemDescription1' value='$itemDescription1'>
<input type='hidden' name='itemQuantity1' value='$itemQuantity1'>
<input type='hidden' name='itemPrice1' value='$total'>
<input type='hidden' name='urlCancel' value='".$shop_settings['path']."payment_canceled.php'>
<input type='hidden' name='urlSuccess' value='".$shop_settings['path']."payment_accepted.php'>
<input type='hidden' name='urlError' value='".$shop_settings['path']."payment_error.php'>";
if ($language == "nl") {
$temp .= "<input type='submit' value='Ik wil nu betalen' id='submit2' name='submit2'></form>";
} else {
$temp .= "<input type='submit' value='I want to pay now' id='submit2' name='submit2'></form>";
}
e107shop_process_order($orderid, "pending", $cart_id, "ideal", $region, $coupon);
return $temp;
kijk ik in de broncode, dan zie ik ook staan bij prijs: 7600. Als ik de regel "$total = $total * 100;" weg haal, dan staat er bij de prijs 76,75. Wat ik dus niet snap: 76,75 * 100 is toch 7675?
Een getal bevat NOOIT een komma, maar een punt. De komma gebruik je alleen bij het presenteren.