Можете ли вы отменить автоматическую оплату PayPal через API?(Подписка создана с помощью кнопки «Хостинг») - PullRequest
25 голосов
/ 28 сентября 2010

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

У меня есть «Номер автоматического платежа» и «Идентификатор транзакции».

Ответы [ 5 ]

26 голосов
/ 28 сентября 2010

Да.

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

Пожалуйста, найдите этот Ссылка:

В PAYPAL вы можете выполнить любое из трех действий с помощью API ManagerecurringPayments.

  • Отмена - только профили в активном или Приостановленное состояние может быть отменено.
  • Suspend - только профили в Active состояние может быть приостановлено .-
  • Reactivate - только профили в приостановленное состояние может быть возобновлено .--
5 голосов
/ 09 апреля 2014

Я нашел эту тему, прежде чем нашел решение, и подумал, что вернусь, чтобы дать ответ. (C # .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 голосов
/ 04 мая 2012

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

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

1 голос
/ 26 октября 2015
0 голосов
/ 29 января 2013

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

...