Haben Sie es geschafft, eine einfache Lösung zu finden? Ich suche das auch. Vielen Dank!
Update: Nach der Suche ist der "ManageRecurringPaymentsProfileStatus" sehr einfach durch eine einfache POST-Anfrage zu verwenden.
Stellen Sie sicher, dass Ihr Benutzer, Passwort oder Unterschrift nicht sichtbar sind (mit anderen Worten, tun Sie dies auf Ihrem Server und nicht auf Ihrem Client über Javascript oder HTML-Posts).
Unten ein einfaches Arbeitsbeispiel in Python. Es funktioniert und ich benutze es jetzt täglich.
import urllib
from google.appengine.api import urlfetch
form_fields = {
"METHOD": "ManageRecurringPaymentsProfileStatus",
"PROFILEID": "xxx", # put your subscription ID here
"ACTION": "cancel",
"USER": "xxx", # Get USER, PWD, and SIGNATURE from your Paypal's account preferences
"PWD": "xxx",
"SIGNATURE": "xxx",
"VERSION": "54.0"
}
api_url = 'https://api-3t.sandbox.paypal.com/nvp' # remove the sandbox part for production
form_data = urllib.urlencode(form_fields)
result = urlfetch.fetch(url=api_url,
payload=form_data,
method=urlfetch.POST,
headers={'Content-Type': 'application/x-www-form-urlencoded'})
Die Antwort ist eine Zeichenfolge, die wie folgt aussieht:
timestamp = 2011% 2d01% 2d28T14% 3a47% 3a45Z & CorrelationId = 148ebe1d25566 & ACK = Failure & VERSION = 54% 2E0 & BUILD = 1704252 & L_ERRORCODE0 = 11552 & L_SHORTMESSAGE0 = Ungültige% 20profile% 20ID & L_LONGMESSAGE0 = Die% 20profile% 20ID% 20 wird% 20invalid & L_SEVERITYCODE0 = Fehler
Das Feld 'ACK' zeigt 'Fehler' oder 'Erfolg' an.
In Antwort auf Kommentare unten, beachten Sie, dass es mich nicht ermöglicht, die Abonnements zu kündigen, die durch einen dynamisch erstellten Link wie geschaffen:
<a href="https://www.sandbox.paypal.com/cgi-bin/webscr?cmd=_xclick-subscriptions&business=llcpro_1295263400_biz%40jeregle.com&item_name=Abonnement%20mensuel&a3=41.86&t3=M&p3=1&src=1&sra=1¤cy_code=EUR&no_note=1&no_shipping=1&lc=FR&custom=xxxxx¬ify_url=https%3A%2F%2Fyournotifyurl.com%2Fipn&charset=utf-8&country=FR&a1=0&t1=D&p1=31" target="_blank">Subscribe</a>
Bitte beachte, dass ich 'nicht die Flagge verwenden modifiziere 'überhaupt.
Haben Sie schon einmal eine andere Antwort erhalten als "* Fehler *"/"* Profil ID ist ungültig *"? Soweit ich festgestellt habe, können Sie auf diese Weise ein "normal" erstelltes Abonnement (ohne * CreateRecurringPaymentsProfile *) nicht abbrechen. Die Subskriptions-ID dort zu platzieren, ist nicht der Trick (wie für mich). – nssmart
"Eine Subskription wird über einen Abonnement-Button für Website-Zahlungsstandards erstellt. Vor 2009 begann die Subskriptionsprofil-ID mit S-XXXXXXXX. Sie können diese Subskriptionen nicht über API-Aufrufe verwalten. Nach 2009 wird die Subskriptionsprofil-ID gestartet mit I-XXXXXX. Sie können diese Abonnements über den API-Aufruf "ManageRecurringPaymentsProfileStatus" abbrechen. " War das gleiche Problem und lesen Sie es einfach durch Robert und es funktioniert, können Sie Standard-Website-Abonnement mit API abbrechen. –
Jetzt ist 2012 und meine alle Abonnements bis heute beginnen mit S- und ich kann keine Stornierungsmethode verwenden. Vielleicht hat jemand eine Lösung gefunden? – Tomas