Paypal OAuth login example doesn't work as expected

前端 未结 5 1982
不思量自难忘°
不思量自难忘° 2021-01-15 05:06

I\'m following this interactive login example from Paypal\'s site.

  public ActionResult PaypalResponse(string scope, string code)
    {
        Dictionary&l         


        
5条回答
  •  我在风中等你
    2021-01-15 05:46

    I had the exact same problem, and solved it changing call method

    string postcontents = string.Format("client_id={0}&client_secret={1}&grant_type=authorization_code&redirect_uri={2}&code={3}"
                                          , System.Web.HttpUtility.UrlEncode(clientId)
                                          , System.Web.HttpUtility.UrlEncode(secret)
                                          , System.Web.HttpUtility.UrlEncode(url)
                                          , System.Web.HttpUtility.UrlEncode(code));
    
    
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("https://api.sandbox.paypal.com/v1/identity/openidconnect/tokenservice");
            request.Credentials = new NetworkCredential(clientId, secret);
            request.Method = "POST";
            byte[] postcontentsArray = System.Text.Encoding.UTF8.GetBytes(postcontents);
            request.ContentType = "application/x-www-form-urlencoded";
            request.ContentLength = postcontentsArray.Length;
            //OAuth.
            using (Stream requestStream = request.GetRequestStream())
            {
                requestStream.Write(postcontentsArray, 0, postcontentsArray.Length);
                requestStream.Close();
                WebResponse response = request.GetResponse();
                using (Stream responseStream = response.GetResponseStream())
                using (StreamReader reader = new StreamReader(responseStream))
                {
                    string responseFromServer = reader.ReadToEnd();
                    reader.Close();
                    responseStream.Close();
                    response.Close();
                    // return SerializeToken(responseFromServer);
                    dynamic dynObj = JsonConvert.DeserializeObject(responseFromServer);
                    string token = dynObj["access_token"];
                    //token = ser.Deserialize(responseFromServer);
                }
            }
    

    Hope it helps

提交回复
热议问题