2012-08-10 9 views
5

Ich mache eine Website, auf der wir Veranstaltungen veranstalten und möchten, dass ein Benutzer "USER A" eine Veranstaltung starten kann - geben Sie ihre PayPal-Kontoinformationen ein und legen Sie einen Preis fest . Dann können sich andere Nutzer für ihre Veranstaltung registrieren und USER A direkt bezahlen, ohne dass wir ihre Kreditkarte bearbeiten müssen. Wir möchten, dass Nutzer, die kein PayPal-Konto haben, mit einer Kreditkarte bezahlen können.PayPal Adaptive Payment Api Benutzerdaten eingeben

Es sieht so aus, als wäre Paypals Adaptive Payment die beste API, die wir verwenden können, um dies zu erreichen. Ich habe es in der Sandbox-Umgebung arbeiten. Mein Problem ist das - ein Benutzer klickt, um sich für das Ereignis von USER A anzumelden, und dann geben sie alle ihre Informationen ein (Name, Adresse, Firma, ect.). Wir müssen diese Informationen in unserer Datenbank aufbewahren, so dass dies zuerst getan werden muss. Dann klicken sie auf einen Button mit der Aufschrift "Bezahlen mit Paypal". Dies erstellt einen Paykey und leitet den Benutzer auf die Paypal-Login-Seite, wo der Benutzer 2 Optionen hat (a. Login Paypal oder b. Geben Sie wieder persönliche Informationen und Kreditkarteninformationen)

Ich möchte wissen, wie ich alles erreichen kann Die Felder, die auf der Paypal-Seite bereits ausgefüllt sind, müssen nicht erneut eingegeben werden. Sie können Daten in den Textfeldern löschen, wenn die Rechnungsadresse anders ist. Aber alle Websites, die ich je gesehen habe, lassen den Benutzer diese Informationen nicht zweimal eingeben, wenn sie identisch sind. Jetzt weiß ich, dass das möglich ist, weil ich andere Seiten gesehen habe, die es tun. Ich habe die API SetPaymentOptions untersucht, aber es ist nicht sehr klar, wie das funktioniert, und ich brauche Benutzerinformationen, die auch dann weitergegeben werden, wenn sie Paypal nicht bekannt sind.

habe ich versucht, Werte addiert, wie in Paypal Tutorials wie diese

vorgeschlagen
  <INPUT TYPE="hidden" NAME="first_name" VALUE="John"> 
      <INPUT TYPE="hidden" NAME="last_name" VALUE="Doe"> 
      <INPUT TYPE="hidden" NAME="address1" VALUE="9 Elm Street"> 

aber das hat nicht funktioniert, ist hier die Rohdaten von Fiddler von der Anfrage:

POST https://svcs.sandbox.paypal.com/AdaptivePayments/Pay HTTP/1.1 
    Content-Type: text/xml;charset=utf-8 
    X-PAYPAL-SECURITY-USERID: scotts_XXXXXXXXX_biz_api1.live.com 
    X-PAYPAL-SECURITY-PASSWORD: 1344XXXXX 
    X-PAYPAL-SECURITY-SIGNATURE: AOLbPDojAEUdeQJ3wXagJXkxYeJDARg4IXXXXXXXXXXXXXXXXXXX 
    X-PAYPAL-SERVICE-VERSION: 1.1.0 
    X-PAYPAL-APPLICATION-ID: APP-80W2844XXXXXXXXX 
    X-PAYPAL-REQUEST-DATA-FORMAT: XML 
    X-PAYPAL-RESPONSE-DATA-FORMAT: XML 
    Host: svcs.sandbox.paypal.com 
    Content-Length: 810 
    Expect: 100-continue 
    Connection: Keep-Alive 
+0

Ich habe diese Frage untersucht und habe vielleicht eine Idee, aber ich würde gerne wissen, welchen Ansatz Sie genommen haben, damit ich eine (mögliche) Antwort richtig erstellen kann. Hast du es so gemacht, wie hier erwähnt http://stackoverflow.com/questions/2849314/paypal-adaptive-payment-api-call-with-c-sharp-net-bevorzugt-mit-webservices oder hast du eine Bibliothek wie z wie diese http://xadaptivepayments.codeplex.com/ oder etwas ganz anderes? Gibt es eine Chance, den Code zu posten, an dem Sie die Paypal-Anfrage stellen? – bUKaneer

+0

Ich nahm den Ansatz in der Frage, zu der Sie einen Link haben, die Codeplex-Bibliothek wurde keine Option, da es keine Quelle für ihre DLL-Datei gibt, und eine DLL verwenden, die nicht von uns geschrieben wurde, und das tut es nicht Quelle enthalten würde uns nicht erlauben, PCI-konform zu bleiben, werde ich eine Beispiel-Anfrage von Fiddler –

+0

aktualisierte Frage veröffentlichen –

Antwort

0

Offizielle Antwort von PayPal:

"Adaptive Payments hat keine Funktion in den Dokumenten, die dies tun. Ich entschuldige mich für die Unannehmlichkeiten verursachen könnten „

ich diese Frage offen lassen, wird jedoch, falls jemand eine bessere Route hat für mich zu gehen, um zu erreichen, was ich in der Frage erklärt haben

EDIT:..

Wenn jemand anderes auf dieses Problem stößt, ist es offiziell 100% nicht möglich - Ich benutze Express Payment API und benutze dies sehr einfach um Benutzerparameter zu übergeben

1

Ich denke für dich ist das Problem nicht wirklich das Einloggen auf Paypal in einem Popup, aber der Paypal-Registrierungsprozess, um mit der Kreditkarte bezahlen zu können Hier ist ein API-Aufruf in der Adaptive Payment API, mit dem Sie eine Registrierung im Auftrag eines Benutzers bearbeiten können.

Sie können direkt paypal Informationen auf einer Seite mit Ihrem eigenen Design prefile. Bei der Einreichung erstellen Sie ein Paypal-Konto mit Adaptive Payment API, und der letzte Schritt dieses Prozesses müssen Sie ein Paypal-Popup öffnen, die den Benutzer bitten, seine Registrierung abzuschließen, indem Sie ein Passwort und Kreditkarteninformationen hinzufügen.

Nach diesem Punkt finden Sie wieder das gleiche Zahlungsverhalten, das Sie mit dem einfachen Paypal-Login haben.


Bitte beachten Sie sogar alle Ihre Website durch paypal mehr integrieren können Sie preapproval hinzufügen, dann wird nur der Benutzer die PayPal-Website einmal sehen: als er die preapproval akzeptieren (zwei Schritte in einem Licht paypal: Pop-up Login > Akzeptieren).

Wenn der Benutzer Kasse das erste Mal: ​​

  1. Wählen Sie zwischen Konto erstellen (mit der Art, wie ich oben erläutert) oder zahlen mit paypal
  2. einen preapproval Schlüssel erstellen (siehe doc auf der api, Sie müssen den Benutzer paypal login nicht kennen), als returnUrl, geben Sie eine URL mit der lokalen user_id ein
  3. Öffnen Sie eine Paypal-Popup-Clientseite mit der URL, die im vorherigen Schritt zurückgegeben wurde. Der Benutzer muss sich mit seinem Paypal-Konto anmelden und dann die Eigenschaften Ihrer Vorabgenehmigung annehmen (Zeitlimit, Geldlimit)
  4. Paypal wird zum returnUrl von step2 umleiten, es kann eine Seite sein, wenn Sie einfach "This Fenster mit einem js automaticaly“schließen Sie die Seite
  5. Sie können nun die preapproval Taste schließen Zahlungen im Namen des Benutzers

Wenn der Benutzer Kasse nach dem ersten Mal zu machen:

  1. Fragen Sie nach einer Bestätigung "$ XX wird auf Ihrem verbundenen Paypal Konto"
  2. Bezahlen mit dem PreApproval-Schlüssel, und es ist fertig!

Hoffe, es wird helfen!

Verwandte Themen