¿Se las arregló para encontrar una solución fácil? Estoy buscando esto también. ¡Gracias!
Actualización: Después de la búsqueda, el "ManageRecurringPaymentsProfileStatus" es muy fácil de usar a través de una simple solicitud POST.
Asegúrese de que su usuario, contraseña o firma no estén visibles (en otras palabras, hágalo en su servidor y NO en su cliente a través de javascript o mensajes html).
Debajo de un simple ejemplo de trabajo en Python. Funciona y ahora lo estoy usando a diario.
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'})
La respuesta es una cadena que tiene este aspecto:
TIMESTAMP = 2,011% 2d01% 2d28T14% 3a47% 3a45Z & CorrelationId = 148ebe1d25566 & ACK = Fracaso & VERSION = 54% 2E0 & BUILD = 1704252 & L_ERRORCODE0 = 11552 & L_SHORTMESSAGE0 = no válido% 20profile% 20ID & L_LONGMESSAGE0 = El% 20profile% 20ID% 20 es% 20invalid & L_SEVERITYCODE0 = Error
El campo 'ACK' indica 'Failure' o 'Success'.
En respuesta a los comentarios a continuación, tenga en cuenta que me capacita para cancelar las suscripciones que se han creado a través de un enlace creado de forma dinámica, tales como:
<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>
Tenga en cuenta que yo no uso la bandera ' modificar 'en absoluto.
¿Alguna vez recibió una respuesta que no sea "* Failure *"/"* Profile ID is invalid *"? Por lo que descubrí, no puede cancelar una suscripción creada "normalmente" (sin * CreateRecurringPaymentsProfile *) de esta manera. Poner la identificación de la suscripción allí no funciona (en mi caso). – nssmart
"Se crea una suscripción a través del botón Suscribir de un sitio web estándar. Antes de 2009, el ID del perfil de suscripción comenzaba con S-XXXXXXXX. No puede administrar estas suscripciones a través de llamadas API. Después de 2009, comienza la identificación del perfil de suscripción. con I-XXXXXX. Puede cancelar estas suscripciones a través de la llamada a la API ManageRecurringPaymentsProfileStatus ". Estaba teniendo el mismo problema y simplemente lo leyó por Robert y funciona, puede cancelar la suscripción al sitio web estándar mediante API. –
Ahora es 2012 y todas mis suscripciones hasta hoy comienzan con S- y no puedo usar el método de cancelación. Tal vez alguien encontró una solución? – Tomas