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".
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é.--
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();
}
"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.
- Annuler la nouvelle I-* Abonnements à l'aide de PayPals ManageRecurringPaymentsProfileStatus API.
- annuler l'ancien s -* abonnements en utilisant PhantomJS + ce script: http://blog.degree.no/2015/10/cancelling-old-s-paypal-subscriptions-from-code /
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 .