paypal Überprüfung der ersten Zahlung oder initamt wurde in wiederkehrende Zahlung in Rechnung gestellt

8

Ich möchte, dass meine Nutzer eine wiederkehrende Zahlung abonnieren können (über die Express-Checkout-API). Die erste Zahlung muss sofort in Rechnung gestellt werden, die der Benutzer abonniert, und ich muss wissen, dass sie erfolgreich abgerechnet wurden, bevor Sie ihnen Zugriff gewähren.

Gibt es einen einfachen Weg, dies zu tun?

Ich habe versucht, ein wiederkehrendes Zahlungsprofil mit einem INITAMT-Set zu erstellen, es ist jedoch nicht klar, dass dem Benutzer eine Rechnung gestellt wird (wenn die Sandbox verwendet wird), und es wird keine txn_id (oder das Äquivalent) zurückgegeben Diese Abrechnung wurde durchgeführt. Ich erhalte zwar eine IPN-Bestätigung, die aber "irgendwann" nach der Erstellung des Profils kommt, was es schwierig macht, eine großartige Benutzererfahrung anzubieten.

Ich habe versucht, eine einmalige Zahlung hinzuzufügen, die mit DoExpressCheckoutPayment authentifiziert und dann das wiederkehrende Profil eingerichtet, wenn die einmalige Zahlung funktioniert, aber die Authentifizierung schlägt ebenfalls fehl und an dieser Stelle habe ich aufgegeben (obwohl es möglich ist) noch einige Beine in diesem Ansatz).

Jedenfalls dachte ich, ich würde die Experten hier fragen. Gibt es eine einfache Möglichkeit, eine wiederkehrende Zahlung einzurichten, eine Zahlung pro Monat, die erste bezahlte Zahlung jetzt () und die erste Zahlung über die API zu bestätigen, ohne auf eine unbekannte Zeit für eine IPN-Bestätigungsnachricht warten zu müssen?

    
mark 26.11.2012, 15:32
quelle

4 Antworten

1

Die einzige Lösung, die ich gefunden habe (was schlecht ist), besteht darin, bis zu 24 Stunden später zu akzeptieren, dass das Abonnement des ersten Monats in Rechnung gestellt wurde. Wir untersuchen nun Google Checkout- und Braintree-Zahlungen als Alternativen zu Paypal, damit wir davon abwandern können.

    
mark 29.11.2012, 18:55
quelle
12

Dies kann getan werden, wie Sie es benötigen, ich habe es getestet und es funktioniert. Der Schlüssel ist, dass Sie sowohl eine standardmäßige digitale Warenzahlung als auch eine wiederkehrende Zahlung mit demselben Express-Checkout-Ablauf verarbeiten müssen, d. H. Der Benutzer wird aufgefordert, einmalig zu zahlen und ein Abonnement zu genehmigen. Sie würden das s

einstellen
  1. Befolgen Sie die Anweisungen zum Einrichten der Zahlung: Ссылка

  2. Fügen Sie die für die wiederkehrende Zahlung angegebenen Felder hinzu: Ссылка

  3. Verarbeiten Sie "DoExpressCheckoutPayment" und, falls erfolgreich, "CreateRecurringPaymentsProfile" mit einem Startdatum Ihres ersten "Erneuerungs" -Datums.

Sie sollten nun sowohl eine Transaktions-ID für die Einmalzahlung als auch eine Profil-ID für die wiederkehrende Zahlung haben.

    
skieter 07.05.2014 09:04
quelle
3

Ich würde bei Ihrer ersten Option bleiben, INITAMT zu verwenden, um die erste Zahlung zu verarbeiten, aber FAILEDINITAMTACTION auf CancelOnFailure zu setzen.

Wenn die anfängliche Zahlung nicht erfolgreich ist, wird das Profil sofort auf "Suspended status" anstatt auf "Active" gesetzt.

Dann können Sie innerhalb Ihres Anmeldesystems oder was auch immer Sie zum Schutz Ihrer Abonnenteninhalte verwenden, GetRecurringPaymentsProfileDetails , um den aktuellen Status des Abonnementprofils abzurufen. Wenn es etwas anderes als "Aktiv" ist, können Sie dem Benutzer eine entsprechende Nachricht geben und ihm den Zugriff auf den Inhalt verweigern.

    
Andrew Angell 27.11.2012 07:30
quelle
2

Wenn das Profil erstellt wird, sendet PayPal ein IPN mit dem Namen "recurring_payment_profile_created". Dieses IPN enthält ein Feld "initial_payment_txn_id". Sie können GetTransactionDetails verwenden, um diese ID nachzuschlagen und festzustellen, ob diese Transaktion Completed ist. Stellen Sie sicher, dass Sie diese Transaktions-ID als verarbeitet markieren, damit Ihr Code nicht doppelt geliefert wird, wenn / wenn das IPN für diese Transaktion gesendet wird (wenn dies für Sie relevant ist). Dieses Beispiel ähnelt der Vorgehensweise in unserem IPN-Listener (geschrieben in Ruby gegen PayPal's offizielles Merchant SDK-Juwel ):

%Vor%     
A. Wilcox 03.05.2013 09:40
quelle