Hey,
Ik heb een betaalsysteempje ingebouwd die ik al op verschillende sites gebruik en overal werkt alles correct. Behalve op deze website beweerd de eigenaar van de site dat hij geen mail krijgt. Nu heb ik dit script al echt 200x nagekeken en ik zie de fout niet. Ik hoop echt dat een van jullie de fout ziet..
Het script doet nog steeds alles goed! ik ontvang me geld op mollie, hij zet alles keurig in de database.. alleen worden er geen e-mails verstuurd.. zie de code hieronder..
ik heb ook al contact opgenomen met een aantal kopers en ook die hebben inderdaad geen email ontvangen..
PHP Code:
<?php
// Kijk of er een betaalprocedure loopt
$iPaymentStarted = mysql_result(mysql_query("
SELECT
COUNT(1)
FROM
shirt_payments
WHERE
ip = '" . mysql_real_escape_string($_SERVER['REMOTE_ADDR']) . "' AND
DATE_ADD(initiate_datetime, INTERVAL 1 HOUR) > NOW()
")
, 0);
// Kijk of er een betaalprocedure loopt
if ($iPaymentStarted == 0) {
?>
<script>
window.location = 'http://www.swagshirts.nl/shirt/';
</script>
<?php
} else {
// Haal de mollie API op
require_once 'includes/mollieIdeal.php';
try {
// Set de mollie partner ID
$oMollieIdeal = new MollieIdeal(221145);
// Dient de betaling gecontroleerd te worden?
if (isset($_GET['action']) && $_GET['action'] == 'check' && isset($_GET['transaction_id'])) {
// Haal informatie op over de koper
$rFetchMerchantInfo = mysql_query("SELECT * FROM shirt_payments WHERE ip = '" . mysql_real_escape_string($_SERVER['REMOTE_ADDR']) . "' AND DATE_ADD(initiate_datetime, INTERVAL 1 HOUR) > NOW() AND transaction_id = '" . mysql_real_escape_string($_GET['transaction_id']) . "' LIMIT 1");
// Is er recente informatie over de koper gevonden?
if (mysql_num_rows($rFetchMerchantInfo) == 1) {
$aMerchantInfo = mysql_fetch_assoc($rFetchMerchantInfo);
// Dubbele controle, betalingen mogen slechts 1 keer ingewisseld worden
if ($oMollieIdeal->setTransactionID($_GET['transaction_id'])) {
// Check de betaling bij mollie
if ($oMollieIdeal->checkPayment()) {
// Stel het bericht voor de beheerder op
$sAdminMailMessage = 'Nieuwe bestelling
<br />
<strong>Naam:</strong> ' . htmlentities($aMerchantInfo['name'], ENT_QUOTES) . '
<br />
<strong>Adres:</strong> ' . htmlentities($aMerchantInfo['address'], ENT_QUOTES) . '
<br />
<strong>Postcode:</strong> ' . htmlentities($aMerchantInfo['zipcode'], ENT_QUOTES) . '
<br />
<strong>Woonplaats:</strong> ' . htmlentities($aMerchantInfo['city'], ENT_QUOTES) . '
<br />
<strong>Artikel nummer:</strong> ' . $aMerchantInfo['artnr'] . '
<br />
<strong>Shirt:</strong> ' . $aMerchantInfo['shirt'] . '
<br />
<strong>Maat:</strong> ' . $aMerchantInfo['size'] . '
<br />
<strong>Emailadres:</strong> ' . htmlentities($aMerchantInfo['emailaddress'], ENT_QUOTES) . '
<br />
<strong>Telefoonnummer:</strong> ' . htmlentities($aMerchantInfo['phone'], ENT_QUOTES) . '
<br />
<strong>Mobiel telefoonnummer:</strong> ' . htmlentities($aMerchantInfo['mobile_phone'], ENT_QUOTES) . '
<br />
<strong>Transactie-ID:</strong> ' . htmlentities($aMerchantInfo['transaction_id'], ENT_QUOTES);
mail('reejon8002@live.nl', 'Nieuwe bestelling', $sAdminMailMessage, "Content-type: text/html\r\n") or die('Door een storing kan de bestelling niet voltooid worden, probeer het later opnieuw, neem contact op met ons!');
// Stel het bericht voor de koper op
$sMerchantMailMessage = 'Beste ' . htmlentities($aMerchantInfo['name'], ENT_QUOTES) . '
<br />
Uw bestelling is voltooid en uw betaling is ontvangen. U ontvangt zo snel mogelijk het door u bestelde t-shirt. We streven ernaar dit binnen 7 werkdagen te leveren.
<br />
<br />
Met vriendelijke groet,
<br />
Swagshirts.nl';
mail($aMerchantInfo['emailaddress'], 'Uw bestelling is voltooid', $sMerchantMailMessage, "Content-type: text/html\r\n");
// Laat zien dat de betaling is verwerkt
echo 'Bestelling volooid, u heeft zojuist een bevestiging van uw bestelling per email toegezonden gekregen.';
} else {
echo 'Uw betaling is niet ontvangen, volg de stappen in het betaalscherm.';
}
}
} else {
echo 'Uw betaling is niet ontvangen, volg de stappen in het betaalscherm.';
}
// Creeer IDEAL betaling
} elseif (isset($_GET['action']) && $_GET['action'] == 'setbank') {
// Probeer de bank te kiezen
if (!$oMollieIdeal->setBankID($_POST['bank'])) {
echo 'De door u gekozen bank is momenteel niet beschikbaar.';
} else {
// Zet de prijs, report URL en return URL en start de betaling
$aCreateIdealPayment = $oMollieIdeal->setAmount(2995)
->setURL('http://www.swagshirts.nl/mollieReport/', 'report')
->setURL('http://www.swagshirts.nl/betalen&action=check/', 'return')
->setDescription('Swagshirt T-Shirt')
->createPayment();
// Update de
mysql_query("
UPDATE
shirt_payments
SET
initiate_datetime = NOW(),
transaction_id = '" . mysql_real_escape_string($aCreateIdealPayment['transaction_id']) . "'
WHERE
ip = '" . mysql_real_escape_string($_SERVER['REMOTE_ADDR']) . "'
LIMIT 1
") or die('Door een storing kan uw betaling niet worden verwerkt, probeer het later opnieuw.');
?>
<script>
window.location = '<?php echo $aCreateIdealPayment['URL']; ?>';
</script>
<?php
}
} else {
// Haal een array op met beschikbare banken
$aBanks = $oMollieIdeal->fetchAvailableBanks();
echo 'Selecteer uw bank:
<br />
<form method="post" action="http://www.swagshirts.nl/betalen&action=setbank/">
<select name="bank">';
foreach ($aBanks as $aBank) {
echo '<option value="' . $aBank['bank_id'] . '">' . $aBank['bank_name'] . '</option>';
}
echo '</select>
<br />
<input type="submit" value="Betaal" />
</form>';
}
}
catch (Exception $e) {
echo 'Door een storing is het momenteel niet mogelijk om met iDEAL te betalen.';
}
}
?>
- Script stuurt geen mail na betaling..
-
29-12-2010, 18:20 #1
- Berichten
- 1.406
- Lid sinds
- 17 Jaar
Script stuurt geen mail na betaling..
-
-
29-12-2010, 18:31 #2
- Berichten
- 200
- Lid sinds
- 15 Jaar
Re: Script stuurt geen mail na betaling..
En als je nu eens je content type in de header zet en de $headers mee stuurt?
PHP Code:$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
Code:Content-type: text/html;\r\n
-
30-12-2010, 12:22 #3
- Berichten
- 243
- Lid sinds
- 15 Jaar
Re: Script stuurt geen mail na betaling..
Als het overal werkt en alleen bij deze site niet, is het wellicht mogelijk dat de hosting op een blacklist voorkomt, zodat mail als spam wordt gemarkeerd.
Het kan ook zijn dat de hostingspartij de gebruikte mail functie niet ondersteund. Het beste kun je gebruik maken van een geauthenticeerde SMTP host.
-
04-01-2011, 07:05 #4
- Berichten
- 1.406
- Lid sinds
- 17 Jaar
Re: Script stuurt geen mail na betaling..
Bedankt voor de reacties! Ik ga even contact opnemen met mijn hosting.
Mvg
-
06-01-2011, 16:30 #5
- Berichten
- 750
- Lid sinds
- 15 Jaar
Re: Script stuurt geen mail na betaling..
welicht kun je het script ook nog eens alleen draaien met error_reporting(E_ALL) om functies boven water te krijgen welke niet correct werken op de hosting.
Laatst aangepast door Raymond Nijland : 06-01-2011 om 16:36
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic