Ga naar inhoud


Donatie integratie in pagina


elmoro

Aanbevolen berichten

Beste Satters,

 

Ik ben een beginnende goede doelen organisatie aan het helpen om een donatie pagina op te zetten. Het is redelijk goed gelukt, alleen de integratie van Ideal zorgt voor wat hoofdpijn. Misschien kan iemand mij helpen/in de goede richting duwen laugh

 

Ik heb 2 problemen nu waar ik geen idee heb hoe ik verder kan. Allereerst laat ik via een formulier op de site kiezen welke bank nodig is. Ik doe via POST een aanroep naar de IDEAL operator. Vervolgens krijg ik een resultaat code in de vorm van:

 

xxxxxxxxxx|yyyyyyyyyyy

 

xx is transactie ID, en yy de URL die ik nodig heb. Nou komt mijn probleem dus, hoe verwijs ik de donateurs direct door naar die URL??

 

Mijn 2de probleem is het feit dat het bedrag open moet zijn. De donateur kan zelf kiezen welke bedrag hij beschikbaar stelt. Het bedrag moet in "centen" zijn.

 

Enig idee hoe ik het kan oplossen. Ik heb het nu zo, dat ik 2 velden naast elkaar heb staan, 1 voor euros en 1 voor centen. De bedoeling is dat ik die 2 dan optel. Enige hulp zou erg gewaardeerd worden.

 

 

Link naar reactie
Delen op andere sites


  • Reacties 33
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

Synology DS414 + DS1815+(8GB) + iPad Pro 10.5 64Gb (iOS 11) + iPhone 7+ 128 GB (iOS 11) + MacbookPro 15" 2016 (MacOS  High Siera 10.13)  + Apple Watch Series 3 (WOS 4) + Apple TV3 + Apple TV4 + Nvidia Shield + Microsoft Gecertificeerd.

Link naar reactie
Delen op andere sites

Kleine php functie om cijfer voor de komma om te zetten naar centen en op te tellen bij het cijfer na de komma.

 

Php Code:

<?php//functie voor omrekenen naar centenfunction EuroNaarCent ($getal_1, $getal_2){	$getal_1 = $getal_1 * 100;	$som = $getal_1 + $getal_2;	return $som;	}//einde functie// is er op "Bereken" knop geklikt	if (isset($_POST['submit'])){ $euro = $_POST['euro'];$cent = $_POST['cent'];	// opvangen van leeg gelaten cent text vak// minimaal bedrag is 1 euroif (empty($cent)){	$cent = "00";}	//controle of alles correct is ingevuld	if (empty($euro) || (!is_numeric($euro)) || empty($cent) || !is_numeric($cent)){		//indien niet correct geef foutmelding	echo "Vul een bedrag in tot 2 cijfers na de komma!!<br /><br />";	}	else {		//indien correct roep functie aan		echo $euro.",".$cent . "€ omgerekend naar centen is ". EuroNaarCent($euro, $cent) ." cent.<br /><br />";	}	}?><html><form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="EuroNaarCent"><input name="euro" type="text" size="5">,  <input name="cent" type="text" size="3" maxlength="2"><br><input type="submit" name="submit" value="Bereken" ></form></html>

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Misschien is het een stuk eenvoudiger om gebruik te gaan maken van een payment provider in plaats van zelf het te gaan doen. Intergratie is een stuk eenvoudiger!

Ook prijstechnisch is het een stuk beter. Want kijk maar eens wat de vaste lasten zijn van een iDeal account! Je moet aardig wat omzetten om de kosten eruit te halen! (Ik spreek uit ervaring....)

 

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

bedankt voor de input jongens. Ben nu een stuk verder gekomen.

 

@ Big Fellow

 

Dat is hem juist. De payment provider biedt alleen te optie om vooraf bedragen te defieneren en deze in je website in te bouwen.

De bedoeling is echter dat de donateurs zelf het bedrag kunnen bepalen, en dat zorgt voor nogal wat problemen voor me. Ben nog een newbie met php.

 

Anyway, het eerste probleem heb ik opgelost ( het redirecten naar Ideal na het verkrijgen van xxxx| yyyyyy

 

Ik zit nu met een klein probleem, hopelijk weer wat tips. Ik heb nu 2 php.bestanden. Laten we zeggen voor gemak, stap1.php en stap2.php.

 

Bij stap1 wordt het bedrag ingetypt en met knop versturen is het de bedoeling dat het bedrag naar stap 2 wordt doorgestuurd.

 

Het doorsturen lukt me niet. Stel ik run alleen stap2.php en bewerk het met volgende parameter:

 

Php Code:
 $amount = 1000; 

 

Dan runt die mooi en wordt ik netjes doorgestuurd.

Ik heb beetje met volgende zitten stoeien bij stap1.

Een form met volgende:

 

Php Code:
<<form action="stap2.php" method="post"><p><b><br />Order bedrag:<br /><input name="order_amount" size="30" type="text" value="<?php echo number_format($amount, 2, ',', ''); ?>"> (EUR)<br /><br /><input name="_submit" type="submit" value="verder >>"></b></p>	</form> 

 

en bij stap2.php

 

Php Code:
$amount = order_amount 

 

klopt het een beetje?

Link naar reactie
Delen op andere sites

Origineel bericht van: elmoro
bedankt voor de input jongens. Ben nu een stuk verder gekomen.

@ Big Fellow

Dat is hem juist. De payment provider biedt alleen te optie om vooraf bedragen te defieneren en deze in je website in te bouwen.

De bedoeling is echter dat de donateurs zelf het bedrag kunnen bepalen, en dat zorgt voor nogal wat problemen voor me. Ben nog een newbie met php.

Anyway, het eerste probleem heb ik opgelost ( het redirecten naar Ideal na het verkrijgen van xxxx| yyyyyy

Ik zit nu met een klein probleem, hopelijk weer wat tips. Ik heb nu 2 php.bestanden. Laten we zeggen voor gemak, stap1.php en stap2.php.

Bij stap1 wordt het bedrag ingetypt en met knop versturen is het de bedoeling dat het bedrag naar stap 2 wordt doorgestuurd.

Het doorsturen lukt me niet. Stel ik run alleen stap2.php en bewerk het met volgende parameter:

Php Code:
 $amount = 1000; 


Dan runt die mooi en wordt ik netjes doorgestuurd.
Ik heb beetje met volgende zitten stoeien bij stap1.
Een form met volgende:

Php Code:
<form action="stap2.php" method="post"><p><b><br />Order bedrag:<br /><input name="order_amount" size="30" type="text" value="<?php echo number_format($amount, 2, ',', ''); ?>"> (EUR)<br /><br /><input name="_submit" type="submit" value="verder >>"></b></p>	</form> 


en bij stap2.php

Php Code:
$amount = order_amount 


klopt het een beetje?

Maak eens van $amount = $_POST['order_amount'];
Lees anders deze pagina eens: http://php.net/manual/en/reserved.variables.post.php
Voor de rest kan ik wel een simpel stukje script schrijven voor je indien noodzakelijk. (Of moderator Puch :))

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

@ Big Fellow,

 

bedankt, ik ben alweer een stap verder door die site. Ik waardeer het dat je aanbiedt om een scriptje voor me te maken. Ik wil het echter als een leerervaring/oefening doen. Ik heb al heel wat geleerd afgelopen dagen.

Link naar reactie
Delen op andere sites

Even wat meer uitleg bij formulieren

 

Stel je hebt een formulier met daarin 4 text velden: "naam", "adres" "woonplaats" en "email".

 

Als je op de submit knop klikt worden alle gegevens die in de velden werden ingevuld in een associative array geplaatst en via de superglobal $_POST naar je verwerk script gestuurd.

 

Voor je de gegevens die werden ingevuld kan gebruiken moet die array uitlezen.

 

Dit kan je op 2 manier doen

 

1. door voor ieder veld in het formulier de waarde aan een variabel toe te kennen.

 

$naam = $_POST[’naam’];

$adres = $_POST[’adres’];

$woonplaats = $_POST[’woonplaats’];

$email = $_POST[’email’];

 

Bij grote formulieren veel te veel typwerk :D

 

2. werken met een lus

 

foreach($_POST as $key=>$value) $$key=$value;

 

Iedere waarde uit het formulier wordt aan een variabel toegekend met als naam de naam van het formulier veld.

 

In $naam zit wat men in het formulier veld "naam" heeft ingetypt

In $adres zit wat men in het formulier veld "adres" heeft ingetypt

enz...

 

Voordelen van manier 2

Je kan geen veld vergeten toe te kennen.

Minder typwerk

 

Welke manier je ook gebruikt, eens toegewezen kan je de variabelen eender waar in je script gebruiken.

 

Ik hoop dat het een beetje duidelijk is.

 

 

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Kan veeelll eenvoudiger!

http://us3.php.net/manual/en/function.extract.php

 

Maar.... Controleer altijd de data die je terug krijgt met een POST. Anders zet je alles wagenwijd open voor allerlei misbruik...

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Origineel bericht van: Big fellow


Maar.... Controleer altijd de data die je terug krijgt met een POST. Anders zet je alles wagenwijd open voor allerlei misbruik...


Natuurlijk is dat veel eenvoudiger, maar net omwille van de veiligheid en de omdat elmoro een beginnende php gebruiker is heb ik die functie niet voorgesteld.

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Beste mensen, echt bedankt voor de input. Het schiet aardig op.

 

Alleen het lukt me maar niet om die script goed uit te voeren.

Stel ik vul als bedrag 100 euro in (bij stap 1), en doorga naar stap 2. Als ik vervolgens dan met de volgende functie het bedrag oproep:

 

Php Code:
$amount = $_POST['euro']; 

 

Wordt de transactie niet voltooid. Echter als ik het het volgende toevoeg ter controle, ziet ik wel dat het bedrag netjes wordt overgenomen uit vorige stap.

Php Code:
echo $amount; 

 

Er staat netjes 100. Vervolgens als ik het volgende doe:

 

Php Code:
$amount = 100; 

 

Wordt transactie wel gewoon voltooid. Enig idee waar dit aan kan liggen?

Link naar reactie
Delen op andere sites

Laat je complete scripts eens zien.

Als er login codes o.i.d. instaan, vervang die dan met "xxx"...

 

Want ik begrijp niet echt wat je schrijft...

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Bij deze:

 

Stap1.php

 

Php Code:

<?php//functie voor omrekenen naar centenfunction EuroNaarCent ($getal_1, $getal_2){	$getal_1 = $getal_1 * 100;	$som = $getal_1 + $getal_2;	return $som;		}	//einde functie// is er op "Bereken" knop geklikt	if (isset($_POST['submit'])){ $euro = $_POST['euro'];$cent = $_POST['cent'];	// opvangen van leeg gelaten cent text vak// minimaal bedrag is 1 euroif (empty($cent)){	$cent = "00";}	//controle of alles correct is ingevuld	if (empty($euro) || (!is_numeric($euro)) || empty($cent) || !is_numeric($cent)){		//indien niet correct geef foutmelding	echo "Vul een bedrag in tot 2 cijfers na de komma!!<br /><br />";	}	else {		//indien correct roep functie aan		echo $euro.",".$cent . "€ omgerekend naar centen is ". EuroNaarCent($euro, $cent) ." cent.<br /><br />";	}	}?><html><form action="stap2.php" method="post" enctype="multipart/form-data" name="EuroNaarCent">  <p>   </p>  <p>	<input name="euro" type="text" size="5">	,  <input name="cent" type="text" size="2" maxlength="2">	<strong>(EUR)</strong>  </p>  <p><br>  <input type="submit" name="submit" value="Volgende" >  </p></form></html>

 

en stap2.php

Php Code:

<?include ("class.ideal.php");$rtlo = xxxx;  $description = "Donatie";		// Description (will appear on receipt)$amount = 500;							// Amount in eurocents (e.g. 1000 means € 10,00)//$amount = $_POST['euro'];$returnurl = 'http://'.$_SERVER['HTTP_HOST'].''.$_SERVER['REQUEST_URI'].'?checkpayment=1'; // URL to return$myiDEAL = new iDEAL ($rtlo);if (isset($_GET["checkpayment"])) { $step = 3; } else	if (isset($_POST["bank"])) { $step = 2; } else		{ $step = 1; }if ($step==1) {		echo 'Gekozen Bedrag:  ' . htmlspecialchars($_POST['euro'])  ;	//echo ',' . htmlspecialchars($_POST["cent"])  ;	echo "	Euro ";		echo "<form name=\"bankselect\" method=\"POST\">";	echo "Kies uw bank: ";	echo "<select name=bank onChange=\"document.bankselect.submit();\">";	echo "<script src=\"http://www.targetpay.nl/ideal/issuers-nl.js\"></script>";	echo "</select>";	echo "</form>";				}if ($step==2) {	$result = $myiDEAL->GetLink ($_POST["bank"], $description, $amount, $returnurl);	if (!$result) {		echo "Er kon geen verbinding gemaakt worden met de site van je bank.<br><br>";		echo "<a href=\"javascript: history.go(-1);\">Terug naar de vorige pagina...</a>";		} else {		setcookie ("trxid", $myiDEAL->trxid, time()+86400);		echo "Je wordt nu doorverwezen naar de site van je bank.<br><br>";		echo "<a href=\"$myiDEAL->url\">Klik hier om verder te gaan...</a>";		echo "<br><br><font size=-2>Transactie ID: ".$myiDEAL->trxid;		}	}if ($step==3) {	$trxid = ($_COOKIE["trxid"]) ? $_COOKIE["trxid"] : $_GET["trxid"];	$result = $myiDEAL->CheckPayment ($trxid, 1);	if (!$result) {		echo "De betaling is niet voltooid, of al eerder verwerkt...<br><br>";		echo "Foutmelding: ".$myiDEAL->error;		} else {		echo "Je betaling is verwerkt!";		// ..		}	}?>

 

Link naar reactie
Delen op andere sites

Waarom doe je allerlei berekeningen in je "stap1" (functie voor het omrekenen etc)

Die functie dien je in stap2 te zetten. Stap 2 wordt immers aangeroepen door je form! Stap 1 laat alleen het formulier zien en niets meer...

Dus al je berekeningen etc verplaatsen naar stap2, ervoor zorgen dat je de $_POST var goed uitleest voordat je een nieuw object aanmaakt. Het lijkt er namelijk sterk op dat bij de initialisatie van het object "iDEAL" er een call wordt gedaan naar een website doormiddel van een "GET". Immers de variabele "$_GET" wordt gebruikt hierna om gegevens uit de verbinding te halen.

“Success is not final, failure is not fatal: it is the courage to continue that counts.” ~ Winston Churchill

Link naar reactie
Delen op andere sites

Zo zou het moeten werken

 

stap 1

Php Code:

<?php session_start();if (isset($_SESSION['fout'])) { echo $_SESSION['fout'] . "<br>"; }?><html><form action="stap2.php" method="post" enctype="multipart/form-data" name="EuroNaarCent"><input name="euro" type="text" size="5">,  <input name="cent" type="text" size="3" maxlength="2"><br><input type="submit" name="submit" value="Bereken" ></form></html>

 

stap 2

Php Code:

<?phpsession_start();//functie voor omrekenen naar centenfunction EuroNaarCent ($getal_1, $getal_2){	$getal_1 = $getal_1 * 100;	$som = $getal_1 + $getal_2;	return $som;		}	//einde functie// is er op de knop bereken geklikt	if (isset($_POST['submit'])){ 	$euro = $_POST['euro'];	$cent = $_POST['cent'];	// opvangen van leeg gelaten cent text vakif (empty($cent)){	$cent = "00";}	//controle als alles correct is ingevuld	if (empty($euro) || (!is_numeric($euro)) || empty($cent) || !is_numeric($cent)){		//indien niet correct stuur terug naar pagina 1		$_SESSION['fout'] = "Vul een correct bedrag in tot 2 cijfers na de komma";		header("location: stap1.php");		die(); // die() is niet echt nodig	}	else {		//indien correct bereken euro naar cent		$amount = EuroNaarCent($euro, $cent);			}		//HIER PLAATS JE VERDERE VERWERK CODE 	   //$amount is het opgegeven bedrag in centen.	}	else { 	header("location: stap1.php"); 	die();}?>

 

iMac 27" macOS Sierra
iPhone 5s iOS 10

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...