Der vorherige Code hat bei mir nicht funktioniert. Nach vielen Kopfschmerzen habe ich endlich herausgefunden, dass Sie zu PayPal gehen und in Schritt 2 der Erstellung des Schaltflächencodes sicherstellen müssen, dass Sie auf die nicht gehostete Schaltfläche klicken und dann den unverschlüsselten Schaltflächencode kopieren, der Ihnen so etwas gibt (ich habe meine Geschäftswert für Sicherheit):
Dieser Code erstellt eine Schaltfläche, auf der der Benutzer den Betrag eingeben kann, der standardmäßig bei 16,99 beginnt, aber Sie können ihn genauso einfach durch eine PHP-Variable ersetzen.
Noch besser, wenn Sie type=”hidden” zum Betrag hinzufügen 🙂
– fkössler
19. Oktober 2012 um 3:58 Uhr
das ist also nicht von paypal API? und es wurde kein Sicherheitsproblem berücksichtigt, oder?
– Benutzer1900121
14. März 2013 um 5:56 Uhr
Dies beantwortet die gestellte Frage nicht wirklich und sollte wirklich nicht so viele positive Stimmen haben.
– Brett
20. Februar 2016 um 11:00 Uhr
Dies sollte nicht als Antwort auf die Frage von op betrachtet werden. Das OP verfügt über eine gehostete Schaltfläche, die jegliche Manipulation von Formulardaten auf der Clientseite vermeidet. Wenn Sie nur ein Formular als solches hinzufügen und keine serverseitige Validierung durchführen, kann ein Benutzer den tatsächlichen Wert des Produkts nach Belieben bearbeiten. Selbst wenn Sie das Feld ausgeblendet machen, ist es immer noch nicht gut genug, da Sie den Wert mit “inspect element” und “submit” bearbeiten können. Ich würde diesen Beitrag gerne ablehnen.
– azzy
3. Juni 2016 um 13:49 Uhr
Dieser Kommentar ist hilfreich, danke! Mein Fehler war, dass ich eine gehostete Schaltfläche erstellt habe, anstatt eine nicht gehostete, und ich konnte keinen Wert spontan ändern. Der Ratschlag ist also, dass Sie die Option „Schaltfläche bei PayPal speichern“ deaktivieren, wenn Sie eine neue Schaltfläche erstellen
– Ilja Hämäläinen
16. Januar 2017 um 19:53 Uhr
Ich habe es versucht und bin mit all dem oben Gesagten gescheitert. Ich fand dies als Antwort von der PayPal-Website.
Testen Sie dies und Sie werden verstehen, wie es funktioniert … ändern Sie das Geschäft in die E-Mail-Adresse der Person, die Sie bezahlen möchten usw.
Fügen Sie ein weiteres verstecktes Feld für den Betrag hinzu
@x-yurl, du meinst “Speichern-Schaltfläche bei PayPal”-Optionen, die nicht deaktiviert werden können? Wenn ja, was ist die Lösung, denn jetzt brauche ich auch eine Option, um verschiedene Preise zu PayPal hinzuzufügen. Vielen Dank!
– Harkály Gergő
23. August 2016 um 9:57 Uhr
@x-yuri Ich habe gehostete und nicht gehostete Schaltflächen ausprobiert, beide scheinen bei mir nicht zu funktionieren. Meine Frage: stackoverflow.com/questions/40210676/…
– cyberjar09
24. Oktober 2016 um 5:17 Uhr
@HarkályGergő Entschuldigung, ich habe Ihre Frage erst jetzt bemerkt. Ich habe mich jetzt schon eine Weile nicht mehr mit Paypal beschäftigt, aber ich glaube, der Grund liegt darin, dass alle Daten des gehosteten Buttons (wie der Preis) auf Paypal gespeichert werden sollen. Ohne Möglichkeit, sie aus der Form zu ändern. Wenn Sie eine Schaltfläche mit unterschiedlichen Preisen wünschen, sollten Sie nicht gehostete Schaltflächen verwenden. Das heißt, bei paypal wird nichts gespeichert, du gibst alle Parameter im Formular an.
– x-yuri
24. Oktober 2016 um 11:27 Uhr
Danke x-yuri, ja, das habe ich erkannt. Ich habe mein Problem mit einem eigenen Formular anstelle von gehosteten Schaltflächen gelöst, Sie haben Recht!
– Harkály Gergő
24. Oktober 2016 um 12:20 Uhr
Hallo Leute, meinst du, es ist ein sicherer Weg, den Preis zu überweisen? Ich meine, ein Benutzer kann das ändern Eingabetyp im Text verborgen und ändern Sie den Wert
– Paul Noris
26. Juli 2017 um 7:03 Uhr
Hier ist die Version von 2013: Gehen Sie zum Erstellen einer Schaltfläche, wenn Sie zu Schritt 2 gelangen, deaktivieren Sie das Kontrollkästchen, fahren Sie mit Schritt 3 fort und erstellen Sie die Schaltfläche. Sobald Sie den Code haben, sieht er so aus:
Ihr “Geschäfts”-Wert wird nicht XXXXXXXX sein, also stellen Sie sicher, dass Sie den Wert belassen, den Paypal Ihnen gibt. Sie können auch Ihre Abbruch- und Rücksende-URLs festlegen.
Für fortgeschrittenere PHP-Benutzer: Ich habe tatsächlich einen PHP-String eingerichtet und es funktioniert großartig! Siehe zum Beispiel unten:
Und so weiter….. Wie Sie sehen, ist $mydescription eine PHP-Variable und $myprice eine PHP-Variable. Ich habe ein HTML-Formular eingerichtet, um Daten zu sammeln, und dieses Formular als Zahlungsabwicklungsformular verwendet. Sobald der Benutzer auf „Senden“ klickt, wird er zu einer PHP-Seite weitergeleitet, die als Mailer, Datenbankeinfügung, Autoresponder und schließlich als Header-Umleitung verwendet werden kann. Die URL für die Weiterleitung ist die Paypal-URL mit den Variablen im String! Dieser Thread hat mir tatsächlich geholfen, den richtigen Paypal-Schaltflächencode zu finden, damit die Zeichenfolge bei Preisschwankungen richtig funktioniert! FYI – Wenn Sie ein PHP-Anfänger sind, wird das Bildfeld nicht in der Zeichenfolge verwendet. Erst die URL und dann die versteckten Namen und Werte.
Die erste verschlüsselt die vom Formular gesendeten Daten – was das Problem mit meinem Checkout verursacht hat.
Dies scheint keine Antwort auf die Frage zu sein.
– TRIG
8. März 2014 um 16:11 Uhr
_s-xclick bedeutet eine gehostete (gespeicherte) Schaltfläche, soweit ich das beurteilen kann. Mit _xclick Sie müssen alle Daten an Ort und Stelle liefern.
– x-yuri
22. Oktober 2015 um 10:03 Uhr
Benutzer229044
Hier ist eine, die es dem Benutzer ermöglicht, einen Preis und eine Referenz einzugeben.
HINWEIS: Sie müssen das Geschäft von [email protected] auf Ihre PayPal-E-Mail-Adresse ändern, aber es ist mir recht, wenn Sie dies nicht tun, da dies nur bedeutet, dass ich Ihre Zahlungen erhalte.
Sie können auch gerne currency_code und lc ändern, um sie an Ihr Gebietsschema anzupassen …
_s-xclick bedeutet eine gehostete (gespeicherte) Schaltfläche, soweit ich das beurteilen kann. Mit _xclick Sie müssen alle Daten an Ort und Stelle liefern.
– x-yuri
22. Oktober 2015 um 10:03 Uhr
Leider sind zum Zeitpunkt des Schreibens alle anderen Antworten auf diese Frage falsch – das heißt, wenn Sie versuchen, den Preis von a zu ändern bereitgestellt Taste; darum ging es in der Frage.
Der richtige Weg, dies zu tun, ist unten:
Wichtige Notizen: Wenn Sie die Schaltflächendetails aktualisieren, werden sie nicht nur für diese Benutzersitzung aktualisiert, sondern auch in Ihrem Paypal-Konto – der neue Name/Preis usw. wirkt sich also auf alle Benutzer aus, die versuchen, ihn zu verwenden.
Beachten Sie auch, wenn Sie den Inhalt einer gehosteten Schaltfläche ändern, die Sie übergeben müssen alle die Details der Schaltfläche zum Zeitpunkt der Erstellung; Wenn Sie beispielsweise einen Artikelnamen auslassen, bleibt der Artikelname leer und Paypal erlaubt dem Benutzer, ihn festzulegen.
In diesem Sinne machen wir weiter..
Ich persönlich habe mit dieser Klasse angefangen:
<?php
class Paypal
{
/**
* Last error message(s)
* @var array
*/
protected $_errors = array();
/**
* API Credentials
* Use the correct credentials for the environment in use (Live / Sandbox)
* @var array
*/
protected $_credentials = array(
'USER' => 'seller_1297608781_biz_api1.lionite.com',
'PWD' => '1297608792',
'SIGNATURE' => 'A3g66.FS3NAf4mkHn3BDQdpo6JD.ACcPc4wMrInvUEqO3Uapovity47p',
);
/**
* API endpoint
* Live - https://api-3t.paypal.com/nvp
* Sandbox - https://api-3t.sandbox.paypal.com/nvp
* @var string
*/
protected $_endPoint="https://api-3t.sandbox.paypal.com/nvp";
/**
* API Version
* @var string
*/
protected $_version = '74.0';
/**
* Make API request
*
* @param string $method string API method to request
* @param array $params Additional request parameters
* @return array / boolean Response array / boolean false on failure
*/
public function request($method, $params = array())
{
$this->_errors = array();
if (empty($method)) { //Check if API method is not empty
$this->_errors = array('API method is missing');
return false;
}
//Our request parameters
$requestParams = array(
'METHOD' => $method,
'VERSION' => $this->_version
) + $this->_credentials;
//Building our NVP string
$request = http_build_query($requestParams + $params);
//cURL settings
$curlOptions = array(
CURLOPT_URL => $this->_endPoint,
CURLOPT_VERBOSE => 1,
CURLOPT_SSL_VERIFYPEER => true,
CURLOPT_SSL_VERIFYHOST => 2,
CURLOPT_CAINFO => dirname(__FILE__) . '/cacert.pem', //CA cert file
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_POST => 1,
CURLOPT_POSTFIELDS => $request
);
$ch = curl_init();
curl_setopt_array($ch, $curlOptions);
//Sending our request - $response will hold the API response
$response = curl_exec($ch);
//Checking for cURL errors
if (curl_errno($ch)) {
$this->_errors = curl_error($ch);
curl_close($ch);
return false;
//Handle errors
} else {
curl_close($ch);
$responseArray = array();
parse_str($response, $responseArray); // Break the NVP string to an array
return $responseArray;
}
}
}
?>
Beachten Sie, dass Paypal das sagt BUTTONSUBTYPE optional ist, erhalten Sie wahrscheinlich eine Fehlermeldung, wenn Sie es nicht angeben.
Leider sind die Paypal-Dokumente nicht sehr klar und bieten nicht die besten Beispiele, also hoffe ich, dass dies jemand anderem die vielen Stunden erspart, die ich damit verbracht habe, herauszufinden, wie das geht.
11311300cookie-checkPreisvariable an PayPal mit benutzerdefinierter Schaltfläche übergebenyes