PayPal in Seite einbauen

Das ist eine einfach Möglichkeit, eine Abwicklung der Bezahlung über PayPal in eine Seite einzubauen. Da ich nichts dazu gefunden habe, wie man es macht, hier eine kleine Anleitung, für die die gar keine Ahnung davon hatten, so wie ich.

Bei PayPal gibt es zum Testen eine Developer Umgebung und eine Sandbox, in der man Testaccounts anlegen kann. Die Developer Umgebung findet man hier https://developer.paypal.com/. Da kann man sich ein Testaccount als Entwickler anlegen, z.B. als test@test.de.
Dann legt man sich zwei Testaccounts an, einen Verkäufer und einen Käufer. Dabei gibt man als Zugangsdaten eine leicht Abweichende E-Mail-Adresse ein, aus dieser wird PayPal sowieso eine Test-E-Mail-Adresse generieren, das könnte z.B. testseller@test.de sein. Die E-Mail Adresse wird gekürzt und um eine zufällige Zahl ergänzt.

Wenn man zwei Test-Accounts hat, kann man sich in der Sandbox einloggen. Dazu wählt man einen Account aus und drückt auf den Button “Enter Sandbox Test Site”. Das ist aber nur so zum Spaß.

Auf der Integration Center Seite findet man eine Anleitung dazu, wie man PayPal in die eigene Seite einbauen kann. Ich habe mich für die Website Payments Standard Methode entschieden. Das Bestellformular ist sehr einfach und soll erstmal nur die Artikel anzeigen mit einem Eingabe bzw. Auswahlfeld für die Menge. Das ist ein Einspiel-PHP-Code:

while ( $row = mysql_fetch_array( $aQResult ) ) {
$i++;
echo ‘

‘;
echo ‘

‘.$row[“Bez”].’

‘;
echo ‘

‘.$row[“Nr”].’

‘;
echo ‘

‘.$row[“VK”].’ €

‘;
if($row[“link”]!=””) {
echo ‘

‘.$row[“link”].’

‘;
} else {
echo ‘

‘;
echo ‘

‘;
}
echo ‘

‘;
}

Das Formular wird an die Seite selbst gesendet. Dort werden die Artikel ausgewertet. Falls die Summe 0 ist, dann eine Fehlermeldung anzeigen. Ansonsten werden die bestellten Artikel angezeigt und die Summe berechnet. PHP-Code-Schnipsel dafür:


$sum = 0;
$paypal = ”;
while ( $row = mysql_fetch_array( $aQResult ) ) {
if($_POST[‘amounts_’.$row[“Nr”]] > 0) {
$amount = $_POST[‘amounts_’.$row[“Nr”]];
$price = $row[“VK”]*$amount;
$sum+= $price;
echo ‘

‘;
for($i=0;$i<$amount;$i++) { $paypal.= '‘;
$paypal.= ‘‘;
$paypal_counter++;
}
echo ‘


‘.$row[“Bez”].’

‘;
echo ‘

‘.$row[“Nr”].’

‘;
echo ‘

‘.$row[“VK”].’ € x ‘.$amount.’

‘;
echo ‘

‘.$price.’

‘;
}
echo ‘

‘;
}
echo ‘

Gesamtsumme: ‘.$sum.’

‘;
if($sum > 0) {
echo ‘

zurück ‘.$paypal.’

‘;
} else {
echo ‘

zurück Sie haben keine Artikel ausgewählt

‘;
}

Der PayPal Counter ist extra notwenig, weil in der Anleitung steht, dass die Artikel durchnummeriert sein müssen und keine Zahl ausgelassen werden darf. Falls von zwei Artikeln mehrere bestellt worden sind, wird die Bestellung wieder in Einzelteile aufgeteilt.

Damit das Formular richtig verarbeitet werden kann, fehlen noch einige Daten, nämlich der Formularbeginn:





In der Anleitung steht, dass man als Formularadresse https://www.paypal.com/cgi-bin/webscr angeben sollte, aber es wird nicht funktionieren, da die Accounts ja nur in der Sandbox existieren. Daher habe ich nach einigem verzweifelten Tests rausgefunden, dass man die Sandbox-Adresse eintragen muss. Der Wert der Variablen business muss der E-Mail-Adresse des Testverkäufers entsprechen.

Man wird auf eine Seite weitergeleitet, auf der die Artikel angezeigt werden und die Möglichkeit zum Einloggen gegeben ist. Dort gibt man die E-Mail-Adresse des Testkäufers an. Und kann dann die Bestellung absenden.

Wenn man mit den Tests fertig ist, sollte man natürlich die URL im Formular auf die von PayPal angegebene ändern und die Adresse des echten Verkäufers eintragen.

Kommentare sind geschlossen.