使用 API 处理取消时PayPal "Error: 422 Unprocessable Entity"



我使用PayPals取消API进行订阅。它运行得非常好。奇怪的是,我在尝试通过API取消订阅时开始出现以下错误。

{
StatusCode: 422, ReasonPhrase: 'Unprocessable Entity', Version: 1.1, 
Content: System.Net.Http.StreamContent, Headers:
{
Connection: keep-alive
Application_id: XXXXXXXXXXXXX
Caller_acct_num: XXXXXXXXXXXXX
Paypal-Debug-Id: XXXXXXXXXXXXX
HTTP_X_PP_AZ_LOCATOR: ccg13.slc
Strict-Transport-Security: max-age=31536000; includeSubDomains
Cache-Control: no-store, must-revalidate, no-cache, max-age=0
Date: Thu, 15 Jul 2021 15:29:56 GMT
Set-Cookie: l7_az=ccg13.slc; Path=/; Domain=paypal.com; Expires=Thu, 15 Jul 2021 15:59:56 GMT; HttpOnly; Secure
Content-Length: 481
Content-Type: application/json
}
}

根据PayPal的说法,通俗地说,意思是:

"错误:422无法处理的实体

这个错误意味着两件事之一:

  • 您的PayPal账户必须有足够的余额来支付其试图处理的支出。与个人PayPal账户不同从银行或信用卡来源提款,您必须有有足够的现有PayPal余额来支付您的推荐尝试付款,否则您将收到此错误。另外,要知道您的PayPal沙盒帐户与您的live帐户有单独的余额帐户,所以在测试之前确保它也有足够的资金使用沙箱帐户。

  • 由于国家/地区或账户规定,收款人无法接收资金发送的货币代码">

这两项都与我无关。我有足够的可用资金(英镑(,在测试期间,我试图使用英镑退款

我正在使用以下代码来取消所述订阅

public async void cancelPayPalAsync()
{
userManager um = new userManager();
var userID = HttpContext.Current.User.Identity.GetUserId();
um.Get(userID);
var subid = um.ppID.Trim();
var token = getToken();
using (var httpClient = new HttpClient())
{
using (var request = new HttpRequestMessage(new HttpMethod("POST"), "https://api.paypal.com/v1/billing/subscriptions/" + subid + "/cancel"))
{
request.Headers.TryAddWithoutValidation("Authorization", "Bearer " + token);
request.Content = new StringContent("{n  "reason": "Not satisfied with the service"n}");
request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
var response = await httpClient.SendAsync(request);
var result = await response.Content.ReadAsStringAsync();
}
}
}

有人遇到这个问题吗?可能是我这边的问题吗?

我今天遇到了这个问题。在我的情况下,当我试图以已取消的状态取消订阅时,我遇到了这个错误。

相关内容

  • 没有找到相关文章

最新更新