Ik ben een beginnend php hobbyist en ben bezig met een simpele webshop met Ideal integratie via Mollie. Ik loop echter tegen het volgende probleem aan. Ik heb geen idee waar ik precies moet beginnen. Ik heb nu een pagina staan die het totaal af te rekenen bedrag berekend en om gegevens van de besteller vraagt, maar weet absoluut niet hoe ik deze informatie nu vervolgens bij Mollie moet krijgen en dus eigenlijk hoe ik mollie moet gebruiken om af te rekenen. Hopelijk kunnen jullie me in de goede richting wijzen?
Nog ter verduidelijking van de situatie: ik heb een variabele met het totaal en van mollie.nl een hele hoop php pagina's gedownload. Hoe moet ik nu verder?
Je kunt ook, zolang je het nog niet hebt ingebouwd, kiezen voor een betaalprovider die iDEAL zelf online aanbiedt. Dan hoef je klanten alleen maar een betaallink te mailen, bijvoorbeeld:
Ik ben inmiddels een stuk verder, maar loop nu tegen een specifiek probleem aan.
Ik heb een SQL database met de OrderID en de status (open,paid,cancelled) van de betaling. Deze blijft echter altijd op open staan en geeft dus aan dat er niet betaald is.
In de example scripts zit een payment history page waar ik wel een 'paid' status krijg.
Ik wil dus dat er in de database ook een 'paid' status komt te staan. Nu moet je zelf de code toevoegen om de database te updaten, dus misschien zit hier het probleem in, maar volgens mij klopt de statement waarin de ID van de $mollie array wordt opgevraagd ook niet. Dit vermoed ik ook omdat er in de txt files waar standaard wordt naar geschreven de status ook op open blijft staan.
Kan iemand mij hier uit de brand helpen?
Orginele code
/*
* Retrieve the payment's current state.
*/
$payment = $mollie->payments->get($_POST["id"]);
$order_id = $payment->metadata->order_id;
/*
* Update the order in the database.
*/
database_write($order_id, $payment->status);
// Functie die naar .txt schrijft (status blijft hier ook staan op 'open')
Mijn code
/*
* Update the order in the database.
*/
$status = $payment->status;
include_once("../config.php");
$con=mysqli_connect($db_host, $db_username, $db_password,$db_name);
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
mysqli_query($con,"UPDATE `test`.`order` SET (`order`.`status`=`$status`) WHERE(`order`.`orderID`=`$order_id`) ");
Ik zag op Github dat iemand dat zelfde probleem heeft aangegeven. Tenzij jij dat zelf was, zou het dus kunnen dat de er een foutje in de code van Mollie zit.
Hans, heb je alle examples doorgenomen? Daarin zie je 2-webhook-verification.php hoe je een payment status controleert. Hij lijkt er inderdaad op dat de status altijd 'open' blijft. Eerder genoemde pagina controleert de status en schrijft deze status opnieuw weg naar het text bestand waarna het dus wel de gewenste status krijgt. Volgens mij is het dus geen bug.
Michael, het is juist in de examples dat ik tegen het probleem aan loop. Het opnieuw wegschrijven van deze status lukt volgens mij niet, omdat het opvragen van die status niet goed gaat. Ik denk dus juist dat het een bug is omdat de status in die txt bestanden niet veranderd.
Heb je bij Mollie de webhook voor te testen wel (goed) ingesteld?
Want je kan wel een script hebben dat de status opvraagt, als dat nooit wordt aangeroepen, dan wordt er ook weinig bijgewerkt c.q weggeschreven;