Door
Melissa Siem
op 02-03-2013 09:21
gewijzigd op 02-03-2013 09:22
2.298 views
Beste PHPhulp,
Sinds kort maak ik gebruik van Mollie om smsen te verzenden via de API. Dit gaat allemaal perfect, echter wil ik wel zeker weten of de verzonden smsen aangekomen zijn. Hier komt de 'afleverrapportage' bij kijken (https://www.mollie.nl/beheer/sms-diensten/documentatie/dlr/)
Mijn vraag: Hoe ontvang ik deze variabelen? (Het liefst heb ik een tabel met een afleverstatus van alle reeds verstuurde berichten.)
Wat heb ik geprobeerd:
$ref = $_GET['reference'];
en
$ref = $_REQUEST['reference'];
en
1.5 uur googlen
De klantenservice zegt: Ik: Hoe vraag ik een afleverrapportage aan? KS: Nee, je hoeft geen afleverrapportage zelf aan te vragen. Wij pushen deze naar een URL die je zelf opgeeft (https://www.mollie.nl/beheer/sms-diensten/documentatie/dlr/). Wij sturen automatisch een rapportage naar je toe. Ik: Dus ik kan alleen een rapportage ontvangen van mijn laatst verstuurde sms? KS: Nee per bericht krijg je een afleverrapportage.
Jij hebt als goed is een pagina rapportage.php op je website draaien (die URL heb je bij Mollie opgegeven).
Zij openen rapportage.php?..... zodat jij die aanroep kan opslaan.
In rapportage.php sla jij alle gegevens van $_GET (zoals $_GET['reference']) op in een database oid.
En dan kan je (achteraf) in je eigen database kijken of het gelukt is of niet.
molly roept die php pagina aan en krijgt dus het resultaat van die pagina te zien en jij niet. alleen $_GET variabelen laten zien heeft dus geen nut. je moet ze opslaan in de database of in een bestand zodat je ze later kunt bekijken.
Bedankt voor jullie hulp maar het is me niet gelukt.
1. probeerde de $_GET['reference']) op te slaan in een bestand op mijn server, maar het lukte met niet om een text-bestand (vanuit hun server) te openen op mijn server zodat zij erop konden schrijven: voorbeeld van wat ik heb geprobeerd:
<?
$ref = $_GET['reference'];
$reci = $_GET['recipient'];
$status = $_GET['status'];
$statustime = $_GET['statustime'];
Ik kreeg foutmeldingen zoals: kan het bestand niet openen of het bestand bestaat al (terwijl het nog niet bestond)
2. Toen probeerde ik de $_GET's op te slaan in mijn SQL-DB maar het lukte me niet om vanuit hun server een connectie te maken met mijn (gehoste) server. ik moest het IP-adres hebben van de HOST die contact zocht.
Heeft iemand nog tips voor mij? Heb hier al uren aan besteed en wordt het een beetje zat :(
In rapportage.php sla jij alle gegevens van $_GET (zoals $_GET['reference']) op in een database oid.
En dan kan je (achteraf) in je eigen database kijken of het gelukt is of niet.
Je probeert nu in een bestand te schrijven dat zo te zien op een andere server staat. Dat zal niet gaan lukken neem ik aan. Waarom niet gewoon in een database?
Heeft iemand nog tips voor mij? Heb hier al uren aan besteed en wordt het een beetje zat :(
Als je er iets voor over hebt dan is er vast wel iemand die dit voor je wil maken.
Afijn. Mollie gaat voor de terugkoppeling een php bestand aanroepen op JOUW server.
probeer eens:
<?php
$text = implode(', ', $_GET)."\r\n";
file_put_contents('log.txt', $text , FILE_APPEND);
// je vindt log.txt in dezelfde directory als je php bestand.
// zorg ervoor dat je genoeg rechten hebt in de map waarin je werkt
?>
[size=xsmall]Toevoeging op 04/03/2013 22:46:44:[/size]
mollie roept die pagina (van jouw site) aan dus je kan de fopen zonder ftp:// doen of inderdaad gewoon opslaan in je database. Het is jouw rapportage.php en die draait gewoon op jouw apache demon.
Heeft iemand nog tips voor mij? Heb hier al uren aan besteed en wordt het een beetje zat :(
Als je er iets voor over hebt dan is er vast wel iemand die dit voor je wil maken.
Afijn. Mollie gaat voor de terugkoppeling een php bestand aanroepen op JOUW server.
probeer eens:
<?php
$text = implode(', ', $_GET)."\r\n";
file_put_contents('log.txt', $text , FILE_APPEND);
// je vindt log.txt in dezelfde directory als je php bestand.
// zorg ervoor dat je genoeg rechten hebt in de map waarin je werkt
?>
[size=xsmall]Toevoeging op 04/03/2013 22:46:44:[/size]
en ja.. Database is een nettere oplossing.
Ik heb je code de hele nacht laten runnen, maar nada in de log.txt.
Ik weet niet of ik dit hier mag zeggen maar:
Wie wilt dit voor mij coderen?
Ik wil van elk verzonden smsje in mijn database opgeslagen krijgen of hij is aangekomen of niet (afleverstatusnr van Mollie is ook goed)