ReBirTh
Legacy Member
is er iemand die me hier eens wat wegwijs in wil/kan maken?
Ik heb een scriptje gevonden dat normaal gezien het resultaat van een paypal betaling zou moeten kunnen binnenhalen, en waar je dan een opdracht kan aan toevoegen wanneer de betaling gelukt is.
Op de dev site van paypal staat een tool waarmee je zo'n ipn ding kan testen, maar als ik dat doe, krijg ik altijd maar de melding dat de betaling mislukte, terwijl die tool een gelukte betaling doorgeeft. Is er iemand met wat kennis die me kan vertellen wat er mis kan zijn in dit script? (Of in mijn manier van werken)
hier staat trouwens de gewone url van paypal, maar kheb om te testen de sandbox url gebruikt.
Ik heb een scriptje gevonden dat normaal gezien het resultaat van een paypal betaling zou moeten kunnen binnenhalen, en waar je dan een opdracht kan aan toevoegen wanneer de betaling gelukt is.
Op de dev site van paypal staat een tool waarmee je zo'n ipn ding kan testen, maar als ik dat doe, krijg ik altijd maar de melding dat de betaling mislukte, terwijl die tool een gelukte betaling doorgeeft. Is er iemand met wat kennis die me kan vertellen wat er mis kan zijn in dit script? (Of in mijn manier van werken)
PHP:
<?php
/*
Simple IPN processing script
based on code from the "PHP Toolkit" provided by PayPal
*/
$url = 'https://www.paypal.com/cgi-bin/webscr';
$postdata = '';
foreach($_POST as $i => $v) {
$postdata .= $i.'='.urlencode($v).'&';
}
$postdata .= 'cmd=_notify-validate';
$web = parse_url($url);
if ($web['scheme'] == 'https') {
$web['port'] = 443;
$ssl = 'ssl://';
} else {
$web['port'] = 80;
$ssl = '';
}
$fp = @fsockopen($ssl.$web['host'], $web['port'], $errnum, $errstr, 30);
if (!$fp) {
echo $errnum.': '.$errstr;
} else {
fputs($fp, "POST ".$web['path']." HTTP/1.1\r\n");
fputs($fp, "Host: ".$web['host']."\r\n");
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ".strlen($postdata)."\r\n");
fputs($fp, "Connection: close\r\n\r\n");
fputs($fp, $postdata . "\r\n\r\n");
while(!feof($fp)) {
$info[] = @fgets($fp, 1024);
}
fclose($fp);
$info = implode(',', $info);
if (eregi('VERIFIED', $info)) {
echo "betaling gelukt";
} else {
echo "betaling mislukt";
}
}
?>
hier staat trouwens de gewone url van paypal, maar kheb om te testen de sandbox url gebruikt.
.