0

我想使用 V3 SnipCart API 在感谢页面上获取有关特定订单的数据。我正在使用 C# 来执行此操作。尝试使用 API 时不断收到此错误

System.Net.WebException:'远程服务器返回错误:(401)未经授权。'

我试图通过仅使用没有密码的 API 密钥来遵循他们的文档,如此处所示。下面是我编写的代码,它给了我错误。我在控制器中写了这个。一旦断点到达这一行,我就会收到错误 responseObjGet = (HttpWebResponse)requestObjGet.GetResponse();

//Testing API get data begin
        string strurltest = String.Format("https://app.snipcart.com/api/orders/c5541254-r8541-8501-0024-juy85vv002154");
       
        WebRequest requestObjGet = WebRequest.Create(strurltest);
        requestObjGet.Credentials = new NetworkCredential("HihiukoJOUBVCTYIiijiGiiYTd6tOiUyTYo", "");
        

        requestObjGet.Method = "GET";
        
        HttpWebResponse responseObjGet = null;
        responseObjGet = (HttpWebResponse)requestObjGet.GetResponse(); //401 is triggered here

        string strresulttest = null;
        using (Stream stream = responseObjGet.GetResponseStream())
        {
            StreamReader sr = new StreamReader(stream);
            strresulttest = sr.ReadToEnd();
            sr.Close();

        }

我也有以下担忧: 1.我在这里输入的 API 密钥是我的公共 api 密钥,因为我仍处于开发和测试阶段。我不确定这个 api 调用是否可以与测试 api 密钥一起使用,或者我是否必须使用真正的秘密生产密钥。有什么想法吗?

2.在我将这些 API 调用部署到生产环境以测试产品中的这些更改之前,我暂时在我的本地机器 (localhost:) 上调试它,仍然使用测试 api 密钥,这可能是 401 的原因吗?由于试图获取信息的 URL 是我的 localhost: url,而不是我添加到 SnipCart Dashboard 的实际域。我在想也许我必须尝试从 prod 环境中解决这个问题?任何想法?

这是我想到的两种可能性。我对 APi 还不太了解,所以我不知道我的电话是否遗漏了什么。

摘要:我要做的就是能够使用 API,以便当用户使用他们的令牌到达我的自定义感谢页面时,我可以加载我想要的订单数据。

4

1 回答 1

0

当使用您的 Authorization 标头值对我们的 API 进行身份验证失败时,将返回我们的 401“未授权”状态代码。

这是有关我们 API 的身份验证的文档。确保向我们返回您的 API 密钥的 base64 值和末尾的单个冒号字符,以尊重基本身份验证方案

如果您尝试获取处于实时模式下的订单的数据,那么您将需要使用实时秘密 API 密钥。

于 2022-01-25T19:11:03.660 回答