Внедрение подписки PayPal:
У меня возникают проблемы при отмене подписки/регулярного платежа через PayPal API. Мне удалось получить AccessToken через API. Ниже мой код для отмены подписки:
string url = "https://api.sandbox.paypal.com/v1/payments/billing-agreements/" + mySubscriberId + "/cancel";
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";
webRequest.Accept = "application/json";
webRequest.Headers.Add("Authorization: Bearer " + myPaypalAccessToken);
var request = ("note = " + myCancelNote);
byte[] req_bytes = Encoding.ASCII.GetBytes(request);
webRequest.ContentLength = req_bytes.Length;
Stream strm = webRequest.GetRequestStream();
strm.Write(req_bytes, 0, req_bytes.Length);
strm.Close();
HttpWebResponse resp = (HttpWebResponse)webRequest.GetResponse();
using (Stream respStr = resp.GetResponseStream())
{
using (StreamReader reader = new StreamReader(respStr, Encoding.UTF8))
{
string jsonString = await reader.ReadToEndAsync();
reader.Close();
}
}
Каждый раз получаю следующий ответ:
"имя": "INTERNAL_SERVICE_ERROR", "message": "Произошла внутренняя ошибка службы.", "information_link": "https://developer.paypal.com/webapps/developer/docs/api/#INTERNAL_SERVICE_ERROR", "debug_id": "c121fd139b91b"
Может ли кто-нибудь заверить меня, что я на правильном пути и что может быть причиной проблемы. Спасибо!
@Mr00Anderson, {subscr_id}, который получает IPN, является единственным значением, общим для всех транзакций подписки. Я надеюсь, что {agreement_id} в вызове API также относится к тому же.





Вы уверены, что используете правильный идентификатор? Не уверен, является ли идентификатор подписчика для вас идентификатором вашего соглашения или нет. API говорит: Отменить соглашение POST /v1/payments/billing-agreements/{agreement_id}/cancel Отменяет соглашение о выставлении счетов по идентификатору. В теле запроса JSON включите объект соглашение_состояния_дескриптор с необязательным примечанием, описывающим причину отмены, а также сумму и валюту соглашения.