for - ¿Puedes cancelar un pago automático de PayPal a través de API?(Suscripción creada a través del botón Hosted)
paypal subscriptions api (5)
¿Puedes cancelar un pago automático de PayPal a través de API? Es una "Suscripción" creada a través del botón Hosted.
Tengo el "Número de pago automático" y la "Identificación de la transacción".
No creo que pueda usar la API para cancelar un pago con el evento de pago estándar de Paypal, mientras que solo el pago exprés funcionará. Intenté y recibí el mensaje de error: "Los Perfiles de Suscripción no son compatibles con las API de Pago Recurrente". Puedes encontrar más aquí .
- Cancele las nuevas suscripciones I- * con PayPals ManageRecurringPaymentsProfileStatus API.
- Cancele las antiguas suscripciones S- * utilizando PhantomJS + este script: http://blog.degree.no/2015/10/cancelling-old-s-paypal-subscriptions-from-code/
Sí.
Puede suspender o cancelar un perfil utilizando la API ManageRecurringPaymentsProfileStatus . También puede reactivar un perfil suspendido. Sin embargo, si ya se alcanzó la cantidad máxima de pagos fallidos, deberá aumentar el número de pagos fallidos antes de reactivar el perfil.
Por favor encuentre esta referencia:
Atendiendo a PAYPAL, puede realizar cualquiera de las tres acciones utilizando la API ManagerecurringPayments.
- Cancelar: solo se pueden cancelar los perfiles en estado Activo o Suspendido.
- Suspender: solo los perfiles en estado activo pueden ser suspendidos.-
- Reactivar: solo se pueden reactivar los perfiles en estado suspendido .--
Encontré este hilo antes de encontrar una solución, y pensé que volvería para dar la respuesta. (Solución C # .Net)
Necesitará los siguientes paquetes nuget:
Install-Package RestApiSDK
Install-Package PayPalCoreSDK
Install-Package PayPalMerchantSDK
Y las siguientes referencias:
using PayPal.Api;
using PayPal.PayPalAPIInterfaceService;
using PayPal.PayPalAPIInterfaceService.Model;
Aquí está el código:
public static void CancelRecurringPayment(string ProfileID)
{
ManageRecurringPaymentsProfileStatusRequestType request =
new ManageRecurringPaymentsProfileStatusRequestType();
ManageRecurringPaymentsProfileStatusRequestDetailsType details =
new ManageRecurringPaymentsProfileStatusRequestDetailsType();
request.ManageRecurringPaymentsProfileStatusRequestDetails = details;
details.ProfileID = ProfileID;
details.Action = StatusChangeActionType.CANCEL;
// Invoke the API
ManageRecurringPaymentsProfileStatusReq wrapper = new ManageRecurringPaymentsProfileStatusReq();
wrapper.ManageRecurringPaymentsProfileStatusRequest = request;
Dictionary<string, string> configurationMap = new Dictionary<string, string>();
configurationMap.Add("mode", "live");
// Signature Credential
configurationMap.Add("account1.apiUsername", "APIUSERNAME");
configurationMap.Add("account1.apiPassword", "APIPASSWORD");
configurationMap.Add("account1.apiSignature", "APISIGNATURE");
// Create the PayPalAPIInterfaceServiceService service object to make the API call
PayPalAPIInterfaceServiceService service = new PayPalAPIInterfaceServiceService(configurationMap);
ManageRecurringPaymentsProfileStatusResponseType manageProfileStatusResponse =
service.ManageRecurringPaymentsProfileStatus(wrapper);
// Check for API return status
Dictionary<string, string> responseParams = new Dictionary<string, string>();
responseParams.Add("API Status", manageProfileStatusResponse.Ack.ToString());
if (manageProfileStatusResponse.Ack.Equals(AckCodeType.FAILURE) || (manageProfileStatusResponse.Errors != null && manageProfileStatusResponse.Errors.Count > 0))
{
//FAILURE
Console.WriteLine(manageProfileStatusResponse.Errors.ToString());
}
else
{
//SUCCESS
Console.Write("Success!");
}
Console.WriteLine();
}
"Se crea una suscripción a través del botón ''Suscribirse'' del Estándar de pagos del sitio web. Antes de 2009, el ID del perfil de suscripción comenzaba con S-XXXXXXXX. No puede administrar estas suscripciones a través de ninguna llamada API. 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ó Robert y funciona, puede cancelar la suscripción al sitio web estándar mediante API.