Mollie iDEAL API

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wst STN

Wst STN

27/05/2012 17:27:49
Quote Anchor link
Hoi,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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]
 
PHP hulp

PHP hulp

24/11/2024 00:26:21
 
- Ariën  -
Beheerder

- Ariën -

27/05/2012 17:29:45
Quote Anchor link
Bedrag in centen, delen door 100 en je hebt het bedrag in euro's?
Waarom gebruik je $_REQUEST, en niet expliciet GET of POST?
Gewijzigd op 27/05/2012 17:32:51 door - Ariën -
 
Wst STN

Wst STN

27/05/2012 17:56:10
Quote Anchor link
- 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?


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

Ivana a

27/05/2012 18:10:53
Quote Anchor link
Als je 10 euro hebt en dat deelt door 100 krijg je toch 0,1 (Ik neem aan dat $_POST['donate'] in euro's is).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$donate = number_format($_POST['donate'] * 100)


10 * 100 = 1000 cent = 10 euro
Gewijzigd op 27/05/2012 18:15:36 door Ivana a
 
Wst STN

Wst STN

27/05/2012 18:16:58
Quote Anchor link
Ivana a op 27/05/2012 18:10:53:
Als je 10 euro hebt en dat deelt door 100 krijg je toch 0,1 (Ik neem aan dat $_POST['donate'] in euro's is).

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$donate = number_format($_POST['donate'] * 100)


10 * 100 = 1000 cent = 10 euro


Ik heb beide geprobeerd de *100 en /100 maar beide blijken nog niet te werken.
 
- Ariën  -
Beheerder

- Ariën -

27/05/2012 18:19:32
Quote Anchor link
moet je geen money_format gebruiken?
 
Wst STN

Wst STN

27/05/2012 18:25:37
Quote Anchor link
- Aar - op 27/05/2012 18:19:32:
moet je geen money_format gebruiken?


Ik heb hem nu wel werkend gekregen na wat aanpassingen
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$amount = money_format($_POST['donate'] * 100, 0);
$donate = $_POST['donate'];


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
 
- Ariën  -
Beheerder

- Ariën -

27/05/2012 18:33:05
Quote Anchor link
Wat heb je dan geprobeerd, en wat gebeurdde er?
 
Wst STN

Wst STN

27/05/2012 18:46:49
Quote Anchor link
- 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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$amount = money_format($_POST['donate'] * 100, 0);
$donate = $_POST['donate'];


Als ik 1000 invul krijg ik ook 1.000,-EUR te zien.
Maar als ik 2,50 in wil vullen werkt het niet.
 
Donny Wie weet

Donny Wie weet

27/05/2012 18:53:21
Quote Anchor link
Waarom hou je de donatie dan niet rond ipv centen erbij?
 
Eddy E

Eddy E

27/05/2012 19:26:40
Quote Anchor link
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.
 
Wst STN

Wst STN

27/05/2012 19:41:14
Quote Anchor link
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.

$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?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
$amount = money_format($_POST['donate'] * 100, 2);
$donate = $_POST['donate'];
Gewijzigd op 27/05/2012 19:52:46 door Wst STN
 
Marco M

Marco M

28/05/2012 01:19:40
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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;
?>


Testje:


12 => 1200
12.96 => 1296
12,96 => 1296
1221,96 => 122196
Gewijzigd op 28/05/2012 01:23:22 door Marco M
 
Marco M

Marco M

31/05/2012 18:27:38
Quote Anchor link
Is het nog gelukt?
 
Andre Sep

Andre Sep

31/05/2012 19:00:04
Quote Anchor link
waarom zou je het zonder decimalen willen hebben?

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
 
Marco M

Marco M

01/06/2012 13:47:26
Quote Anchor link
Waarom zonder decimalen? Lees anders eerst even een topic (of in ieder geval de startpost) voordat je gaat reageren ;-)

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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.