Подтвердить что ты не робот

Можете ли вы отменить автоматический платеж PayPal через API? (Подписка создается с помощью кнопки Hosted)

Можно ли отменить автоматический платеж PayPal через API? Это "Подписка", созданная с помощью кнопки Hosted.

У меня есть "Автоматический номер платежа" и "Идентификатор транзакции".

4b9b3361

Ответ 1

Да.

Вы можете приостановить или отменить профиль используя ManageRecurringPaymentsProfileStatus API. Вы также можете активировать подвесной профиль. Если максимум количество неудачных платежей уже было достигнуто, однако, вам понадобятся увеличить количество неудачных платежей перед реактивацией профиль.

Найдите this Справка:

При подключении к PAYPAL вы можете выполнить любое из трех действий, используя API ManagerecurringPayments.

  • Отмена - только профили в Active или Приостановленное состояние может быть отменено.
  • Приостановка - только профили в Active состояние может быть приостановлено.
  • Reactivate - только профили в приостановленное состояние может быть активировано.--

Ответ 2

Я нашел эту ветку, прежде чем найти решение, и подумал, что вернусь, чтобы дать ответ. (С#.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();
}

Ответ 3

"Подписка создается с помощью кнопки" Подписаться на подписку "на странице" Подписаться ". До 2009 года идентификатор профиля подписки начинался с S-XXXXXXXX. Вы не можете управлять этими подписками через любые вызовы API. После 2009 года профиль подписки Идентификатор начинается с I-XXXXXX. Вы можете отменить эти подписки с помощью вызова API ManageRecurringPaymentsProfileStatus.

Имел ту же проблему и просто прочитал ее Robert, и она работает, вы можете отменить стандартную подписку на сайт с помощью API.

Ответ 5

Я не думаю, что вы можете использовать API для отмены платежа с помощью стандартного платежа Paypal pro pro, в то время как только экспресс-проверка будет работать. Я попробовал и получил сообщение об ошибке: "Профили подписки не поддерживаются API повторяющихся платежей". Вы можете узнать больше здесь.