Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
易趣API C#无争议取消订单_C#_Ebay Api - Fatal编程技术网

易趣API C#无争议取消订单

易趣API C#无争议取消订单,c#,ebay-api,C#,Ebay Api,因此,通过查看下面的链接,我发现您可以通过打开API来取消订单 但我不想每次取消都引起争议。我想做的是能够以编程方式取消订单,而不会引发争议。这似乎是可能的,因为它在GUI中可用。在GUI中,如果您查找订单并单击订单屏幕的下拉菜单,您将看到一个取消按钮。然后在下一个屏幕上,它询问取消的原因,并提供两个选项。我似乎在任何地方都找不到这方面的文档。我所能找到的关于使用API取消订单的所有信息都会导致一种引发争议的方法。有人知道如何用这种方法取消订单吗 我发现这可以通过使用Post Order A

因此,通过查看下面的链接,我发现您可以通过打开API来取消订单

但我不想每次取消都引起争议。我想做的是能够以编程方式取消订单,而不会引发争议。这似乎是可能的,因为它在GUI中可用。在GUI中,如果您查找订单并单击订单屏幕的下拉菜单,您将看到一个取消按钮。然后在下一个屏幕上,它询问取消的原因,并提供两个选项。我似乎在任何地方都找不到这方面的文档。我所能找到的关于使用API取消订单的所有信息都会导致一种引发争议的方法。有人知道如何用这种方法取消订单吗


我发现这可以通过使用Post Order API来实现

查看“取消”部分下的链接

使用KEVINUK的代码示例更新答案:

这是我的工作示例。我用它作为一个bool,让我知道取消请求是否成功,这样我就可以知道从那里去哪里

    /// <summary>
    /// 
    /// </summary>
    /// <param name="authToken"></param>
    /// <param name="ebayFullOrderId"></param>
    /// <param name="reason">Must be BUYER_ASKED_CANCEL or ADDRESS_ISSUES</param>
    private static bool Cancellation_SubmitCancelRequest(string authToken, string ebayFullOrderId, string reason)
    {
        var status = false;
        const string url = "https://api.ebay.com/post-order/v2/cancellation";

        var cancelOrderRequest = (HttpWebRequest)WebRequest.Create(url);

        cancelOrderRequest.Headers.Add("Authorization", "TOKEN " + authToken);
        cancelOrderRequest.ContentType = "application/json";
        cancelOrderRequest.Accept = "application/json";
        cancelOrderRequest.Headers.Add("X-EBAY-C-MARKETPLACE-ID", "EBAY_US");
        cancelOrderRequest.Method = "POST";

        //cancelOrderRequest.Headers.Add("legacyOrderId", ebayFullOrderId);

        using (var streamWriter = new StreamWriter(cancelOrderRequest.GetRequestStream()))
        {
            string json = "{\"legacyOrderId\":\"" + ebayFullOrderId + "\",\"cancelReason\":\"" + reason + "\"}";

            streamWriter.Write(json);
            streamWriter.Flush();
            streamWriter.Close();
        }

        var response = (HttpWebResponse)cancelOrderRequest.GetResponse();

        string result;
        using (var streamReader = new StreamReader(response.GetResponseStream()))
        {
            result = streamReader.ReadToEnd();
        }
        var reader = new JsonTextReader(new StringReader(result));

        while (reader.Read())
        {
            if (reader.Value != null)
            {
                var pt = reader.Path;
                var val = reader.Value.ToString();

                var isNumeric = !string.IsNullOrEmpty(val) && val.All(Char.IsDigit);
                if (pt == "cancelId" & isNumeric == true)
                {
                    status = true;
                    break;
                }
            }
        }
        return status;
    }    
//
/// 
/// 
/// 
/// 
///必须是买方要求取消或解决问题
私有静态bool取消\u SubmitCancelRequest(字符串authToken、字符串ebayFullOrderId、字符串原因)
{
var状态=假;
常量字符串url=”https://api.ebay.com/post-order/v2/cancellation";
var cancelOrderRequest=(HttpWebRequest)WebRequest.Create(url);
cancelOrderRequest.Headers.Add(“授权”、“令牌”+authToken);
cancelOrderRequest.ContentType=“应用程序/json”;
cancelOrderRequest.Accept=“application/json”;
cancelOrderRequest.Headers.Add(“X-EBAY-C-MARKETPLACE-ID”、“EBAY_-US”);
cancelOrderRequest.Method=“POST”;
//cancelOrderRequest.Headers.Add(“legacyOrderId”,ebayFullOrderId);
使用(var streamWriter=newstreamwriter(cancelOrderRequest.GetRequestStream()))
{
字符串json=“{\'legacyOrderId\”:\”+ebayFullOrderId+“\”,\“cancelReason\”:\“+reason+”\”;
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
}
var response=(HttpWebResponse)cancelOrderRequest.GetResponse();
字符串结果;
使用(var streamReader=newstreamreader(response.GetResponseStream()))
{
结果=streamReader.ReadToEnd();
}
var reader=newjsontextreader(newstringreader(结果));
while(reader.Read())
{
if(reader.Value!=null)
{
var pt=reader.Path;
var val=reader.Value.ToString();
var isNumeric=!string.IsNullOrEmpty(val)和&val.All(Char.IsDigit);
if(pt==“cancelId”&isNumeric==true)
{
状态=真;
打破
}
}
}
返回状态;
}    

我在其他地方找到了另一篇帖子,有人解释了同样的问题,但该帖子也没有给出解决方案。我只是想和任何能帮我解决这个问题的人分享一下。我还没有找到解决这个问题的办法。任何帮助都将不胜感激。什么是authToken?我使用了UserToken,但出现了未初始化错误。