Mollie iDEAL API
Ik ben al een aantal dagen bezig om de IDEAL API van Mollie te implementeren op een site. Het gaat om een donatie form.
Consument kan dan een donatie invullen en vervolgens via zijn bank doneren.
Ik heb de PHP files van Mollie gedownload en gebruikt. Echter wil ik niet dat er een vast bedrag komt te staan. Dus heb ik een textfield aangemaakt zodat de consument zelf het bedrag kan bepalen.
Het enige wat niet werkt is de decimalen. Jemoet namelijk 1000 invullen als je 10,00 euro wilt doneren.
Weet iemand hier een oplossing voor? Ik heb vanalles geprobeerd maar kom er niet uit.
hieronder een stukje van de code
Quote:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
require_once 'Payment.php';
$partner_id = xxxxx; // Uw mollie partner ID
$amount = $_REQUEST['donate'];
$donate = number_format($_POST['donate'], 0);
$description = 'Stichting'; // Beschrijving die consument op zijn/haar afschrift ziet.
<form method="post" action="prepare.php">
<input name="donate" type="text" id="donate">
<select name="bank_id">
<option value=''>Kies uw bank</option>
[code]<?php foreach ($bank_array as $bank_id => $bank_name) { ?>
<option value="<?php echo htmlspecialchars($bank_id) ?>"><?php echo htmlspecialchars($bank_name) ?></option>
<?php } ?>
</select>
<input type="submit" name="submit" value="Betaal via iDEAL" />
</form>
[/quote]
require_once 'Payment.php';
$partner_id = xxxxx; // Uw mollie partner ID
$amount = $_REQUEST['donate'];
$donate = number_format($_POST['donate'], 0);
$description = 'Stichting'; // Beschrijving die consument op zijn/haar afschrift ziet.
<form method="post" action="prepare.php">
<input name="donate" type="text" id="donate">
<select name="bank_id">
<option value=''>Kies uw bank</option>
[code]<?php foreach ($bank_array as $bank_id => $bank_name) { ?>
<option value="<?php echo htmlspecialchars($bank_id) ?>"><?php echo htmlspecialchars($bank_name) ?></option>
<?php } ?>
</select>
<input type="submit" name="submit" value="Betaal via iDEAL" />
</form>
[/quote]
Waarom gebruik je $_REQUEST, en niet expliciet GET of POST?
Gewijzigd op 27/05/2012 17:32:51 door - Ariën -
- Aar - op 27/05/2012 17:29:45:
Bedrag in centen, delen door 100 en je hebt het bedrag in euro's?
Waarom gebruik je $_REQUEST, en niet expliciet GET of POST?
Waarom gebruik je $_REQUEST, en niet expliciet GET of POST?
Met GET krijg ik het niet werkend, wel met REQUEST of POST.
Ik heb dit al geprobeerd
Quote:
$donate = number_format($_POST['donate'] / 100)
Maar dit wil ook niet werken. Ik moet nog steeds 1000 invullen om 10,- euro te krijgen.
Gewijzigd op 27/05/2012 17:56:40 door Wst STN
Ivana a op 27/05/2012 18:10:53:
Ik heb beide geprobeerd de *100 en /100 maar beide blijken nog niet te werken.
moet je geen money_format gebruiken?
- Aar - op 27/05/2012 18:19:32:
moet je geen money_format gebruiken?
Ik heb hem nu wel werkend gekregen na wat aanpassingen
Als ik 1000 invul krijg ik ook 1.000,-EUR te zien. Maar als ik 2,50 in wil vullen werkt het niet.
Gewijzigd op 27/05/2012 18:36:53 door Wst STN
Wat heb je dan geprobeerd, en wat gebeurdde er?
- Aar - op 27/05/2012 18:33:05:
Wat heb je dan geprobeerd, en wat gebeurdde er?
Ik heb hem nu wel werkend gekregen na wat aanpassingen
Als ik 1000 invul krijg ik ook 1.000,-EUR te zien.
Maar als ik 2,50 in wil vullen werkt het niet.
Waarom hou je de donatie dan niet rond ipv centen erbij?
Als ik 12,34 wil geven, moet dat niet opeens 12 euro of 13 euro worden.
Maar wat is $amount (aantal euro's neem ik aan?)
En wat is dan $donate (zelfde???)
Ergens moet die 2,50 toch gestript worden naar 2 (of waarschijnlijk 3) euro.
Even kijken waar door op diverse plekken die $amount/$donate te echoén.
Eddy Erkelens op 27/05/2012 19:26:40:
Omdat dat ongebruiksvriendelijk is.
Als ik 12,34 wil geven, moet dat niet opeens 12 euro of 13 euro worden.
Maar wat is $amount (aantal euro's neem ik aan?)
En wat is dan $donate (zelfde???)
Ergens moet die 2,50 toch gestript worden naar 2 (of waarschijnlijk 3) euro.
Even kijken waar door op diverse plekken die $amount/$donate te echoén.
Als ik 12,34 wil geven, moet dat niet opeens 12 euro of 13 euro worden.
Maar wat is $amount (aantal euro's neem ik aan?)
En wat is dan $donate (zelfde???)
Ergens moet die 2,50 toch gestript worden naar 2 (of waarschijnlijk 3) euro.
Even kijken waar door op diverse plekken die $amount/$donate te echoén.
$donate verwijst naar een textfield waar de gebruiker een bedrag intypt.
$amount roept dit bedrag een en vermenigvuldigt het met 100 zodat het geen centen zijn vervolgt met , 2 anders kan ik het niet vermenigvuldigen om een of ander reden. Mischien ligt het hieraan?
Gewijzigd op 27/05/2012 19:52:46 door Wst STN
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
// Dit is alleen om het voorbeeldje te laten werken zonder een form te hoeven gebruiken,
// dit komt dus niet in de je project zelf te staan!
$_POST['donate'] = '12';
/**
* Vervang komma's door punten, aangezien PHP (en MySQL)
* de punt gebruiken om decimalen aan te geven!!!!
*/
$donate = str_replace(',', '.', $_POST['donate']);
/**
* Nummer word omgezet via number_format.
* De eerste parameter is de string (het bedrag),
* de 2e parameter geeft aan hoeveel decimalen,
* de derde de decimaal seperator,
* de 4e de seperator voor duizendtallen
*/
$donate = number_format($donate, 2, '', '');
echo $donate;
?>
// Dit is alleen om het voorbeeldje te laten werken zonder een form te hoeven gebruiken,
// dit komt dus niet in de je project zelf te staan!
$_POST['donate'] = '12';
/**
* Vervang komma's door punten, aangezien PHP (en MySQL)
* de punt gebruiken om decimalen aan te geven!!!!
*/
$donate = str_replace(',', '.', $_POST['donate']);
/**
* Nummer word omgezet via number_format.
* De eerste parameter is de string (het bedrag),
* de 2e parameter geeft aan hoeveel decimalen,
* de derde de decimaal seperator,
* de 4e de seperator voor duizendtallen
*/
$donate = number_format($donate, 2, '', '');
echo $donate;
?>
Testje:
12 => 1200
12.96 => 1296
12,96 => 1296
1221,96 => 122196
Gewijzigd op 28/05/2012 01:23:22 door Marco M
Is het nog gelukt?
en marco? waarom vervang je eerst de , door een . om vervolgens die . niet te gebruiken?
verder zou dit inderdaad moeten werken, of er staat een instelling in je tabel verkeerd
En de komma vervang ik omdat number_format() anders een notice geeft "A non well formed numeric value encountered". Een komma is geen decimaal seperator in PHP.