Можно ли отменить автоматический платеж PayPal через API? Это "Подписка", созданная с помощью кнопки Hosted.
У меня есть "Автоматический номер платежа" и "Идентификатор транзакции".
Можно ли отменить автоматический платеж PayPal через API? Это "Подписка", созданная с помощью кнопки Hosted.
У меня есть "Автоматический номер платежа" и "Идентификатор транзакции".
Да.
Вы можете приостановить или отменить профиль используя ManageRecurringPaymentsProfileStatus API. Вы также можете активировать подвесной профиль. Если максимум количество неудачных платежей уже было достигнуто, однако, вам понадобятся увеличить количество неудачных платежей перед реактивацией профиль.
Найдите this Справка:
При подключении к PAYPAL вы можете выполнить любое из трех действий, используя API ManagerecurringPayments.
Я нашел эту ветку, прежде чем найти решение, и подумал, что вернусь, чтобы дать ответ. (С#.Net Solution)
Вам потребуются следующие пакеты nuget:
Install-Package RestApiSDK
Install-Package PayPalCoreSDK
Install-Package PayPalMerchantSDK
И следующие ссылки:
using PayPal.Api;
using PayPal.PayPalAPIInterfaceService;
using PayPal.PayPalAPIInterfaceService.Model;
Здесь код:
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();
}
"Подписка создается с помощью кнопки" Подписаться на подписку "на странице" Подписаться ". До 2009 года идентификатор профиля подписки начинался с S-XXXXXXXX. Вы не можете управлять этими подписками через любые вызовы API. После 2009 года профиль подписки Идентификатор начинается с I-XXXXXX. Вы можете отменить эти подписки с помощью вызова API ManageRecurringPaymentsProfileStatus.
Имел ту же проблему и просто прочитал ее Robert, и она работает, вы можете отменить стандартную подписку на сайт с помощью API.
Я не думаю, что вы можете использовать API для отмены платежа с помощью стандартного платежа Paypal pro pro, в то время как только экспресс-проверка будет работать. Я попробовал и получил сообщение об ошибке: "Профили подписки не поддерживаются API повторяющихся платежей". Вы можете узнать больше здесь.