C# 如何使用ASP.NETMVC集成PayPal订阅API

C# 如何使用ASP.NETMVC集成PayPal订阅API,c#,asp.net-mvc,paypal,httpclient,paypal-subscriptions,C#,Asp.net Mvc,Paypal,Httpclient,Paypal Subscriptions,我遵循这个PayPal文档获取订阅API。我想使用ASP.NETMVC调用此API。此API需要使用PayPal clientID和secretID的授权令牌,我已成功创建了该令牌,但调用订阅API时遇到问题 curl -v -X GET https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G \ -H "Content-Type: application/json" \ -H "

我遵循这个PayPal文档获取订阅API。我想使用ASP.NETMVC调用此API。此API需要使用PayPal clientID和secretID的授权令牌,我已成功创建了该令牌,但调用订阅API时遇到问题

curl -v -X GET 
https://api.sandbox.paypal.com/v1/billing/subscriptions/I-BW452GLLEP1G \
-H "Content-Type: application/json" \
-H "Authorization: Bearer Access-Token"
另外,我刚刚使用react JS调用了这个API,得到了期望的结果。但是在ASP.NETMVC中如何调用这个订阅API呢? 反应JS代码:

async function checkPayPalPaymentStatus(subscriberId, access_token) {
  var token = `Bearer ${access_token}`;
  return await fetch(
    `https://api.sandbox.paypal.com/v1/billing/subscriptions/${subscriberId}`,
    {
      method: "GET",
      headers: {
        Accept: "application/json",
        "Content-Type": "application/json",
        Authorization: token,
      },
    }
  ).then((response) => response.json());
}
ASP.NET MVC代码:

[HttpGet]
        [Route("api/paypal/checkPayPalPaymentStatus")]
        public async Task<object> CheckPayPalPaymentStatus(string accessToken)
        {
            try
            {
                //
                string url = "https://api.sandbox.paypal.com/v1/billing/subscriptions/" + "I-BW452GLLEP1G";
                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                request.Headers["Authorization"] = "Bearer " + Convert.ToBase64String(Encoding.Default.GetBytes(accessToken));
                request.Accept = "application/json";
                request.Method = "GET";
                request.ContentType = "application/json";

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                Stream streamResponse = response.GetResponseStream();
                StreamReader streamRead = new StreamReader(streamResponse);
                string responseString = streamRead.ReadToEnd();
                JObject jsonConvertedResponseString = JObject.Parse(responseString);
                return new
                {
                    Success = true,
                    Message = "",
                    Data = jsonConvertedResponseString
                };
            }
            catch (Exception ex)
            {
                return new
                {
                    Success = false,
                    Message = ex.Message,
                    Data = DBNull.Value
                };
            }
        }
[HttpGet]
[路线(“api/paypal/checkPayPalPaymentStatus”)]
公共异步任务CHECKPAYPAYMENTSTATUS(字符串accessToken)
{
尝试
{
//
字符串url=”https://api.sandbox.paypal.com/v1/billing/subscriptions/“+“I-BW452GLLEP1G”;
HttpWebRequest请求=(HttpWebRequest)WebRequest.Create(url);
request.Headers[“Authorization”]=“Bearer”+Convert.ToBase64String(Encoding.Default.GetBytes(accessToken));
request.Accept=“application/json”;
request.Method=“GET”;
request.ContentType=“application/json”;
HttpWebResponse=(HttpWebResponse)request.GetResponse();
streamResponse=response.GetResponseStream();
StreamReader streamRead=新的StreamReader(streamResponse);
字符串responseString=streamRead.ReadToEnd();
JObject jsonConvertedResponseString=JObject.Parse(responseString);
还新
{
成功=正确,
Message=“”,
数据=jsonConvertedResponseString
};
}
捕获(例外情况除外)
{
还新
{
成功=错误,
消息=例如消息,
Data=DBNull.Value
};
}
}