Pouvez-vous annuler un paiement automatique PayPal via API? (Abonnement créé via le bouton hébergé)

pouvez-vous annuler un paiement automatique PayPal via API? C'est un "Abonnement" créé par Hébergés bouton.

j'ai le" numéro de paiement automatique "et le"numéro de Transaction".

25
demandé sur Zack Burt 2010-09-28 07:59:31

5 réponses

Oui.

vous pouvez suspendre ou annuler un profil par à l'aide de la ManageRecurringPaymentsProfileStatus API . Vous pouvez également réactiver un suspendu profil. Si le maximum nombre d'échecs de paiement a déjà été atteint, cependant, vous aurez besoin de pour augmenter le nombre d'échecs de paiements avant la réactivation profil.

Veuillez trouver ce la Référence:

selon PAYPAL, vous pouvez prendre l'une des trois actions en utilisant L'API Managerecurringpaiements.

  • Annuler profils Actif ou À l'état de veille peut être annulé.
  • Suspendre profils Active l'état ne peut être suspendu.-
  • réactiver uniquement les profils dans un l'état suspendu peut être réactivé.--
26
répondu Michael Eakins 2016-07-27 01:57:12

j'ai trouvé ce fil avant de trouver une solution, et je pensais revenir pour donner la réponse. (C#.Net Solution)

vous aurez besoin des paquets nuget suivants:

Install-Package RestApiSDK
Install-Package PayPalCoreSDK
Install-Package PayPalMerchantSDK

et les références suivantes:

using PayPal.Api;
using PayPal.PayPalAPIInterfaceService;
using PayPal.PayPalAPIInterfaceService.Model;

voici le code:

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();
}
5
répondu gunwin 2017-04-21 13:26:25

"un abonnement est créé par le biais d'un bouton "abonnement" Standard de paiement sur le site web. Avant 2009, L'identification du profil d'abonnement a commencé avec S-XXXXXXXX. Vous n'êtes pas en mesure de gérer ces abonnements via des appels API. Après 2009, L'ID du profil d'abonnement commence avec I-XXXXXX. Vous pouvez annuler ces abonnements via L'appel API ManageRecurringPaymentsProfileStatus."

avait le même problème et il suffit de le lire par Robert et il fonctionne, vous pouvez annuler l'abonnement au site Web standard en utilisant L'API.

3
répondu Usman Zaheer 2017-05-23 12:09:54
1
répondu Njål Arne Gjermundshaug 2015-10-26 13:26:08

Je ne pense pas que vous puissiez utiliser L'API pour annuler un paiement avec Paypal standard payment event pro alors que seul express checkout fonctionnera. J'ai essayé et j'ai reçu le message d'erreur: "les profils D'abonnement ne sont pas pris en charge par des API de paiement récurrentes.". Vous pouvez en savoir plus ici .

0
répondu Sareuon 2013-01-29 07:52:42