2017-01-04 13 views
3

下記のリンクから、APIで紛争を開いて注文を取り消すことができます。Ebay API C#注文なしで注文をキャンセルする

Cancel eBay order via API

しかし、私はすべてのキャンセルのための紛争を開くために探していませんよ。私がやりたいことは、紛争を開くことなくプログラムで注文をキャンセルできることです。これはGUIで利用できるので、これが可能であるはずです。 GUIでオーダーを検索し、オーダー画面のドロップダウンをクリックすると、キャンセルボタンが表示されます。次に、次の画面でキャンセルの理由を尋ね、2つのオプションが表示されます。私はどこでもこの文書を見つけることはできないようだ。 APIを使用して注文をキャンセルするために見つけることができるすべてが、紛争を開く方法につながります。誰もこの方法で注文をキャンセルする方法を知っていますか?前もって感謝します。

enter image description here

enter image description here

+0

同じ問題を説明している誰かが別の投稿を見つけましたが、まだそのスレッドで解決されていません。 https://forums.developer.ebay.com/questions/11988/how-to-cancel-an-order-using-api-without-adding-a.htmlちょうど私が助けることができるかもしれない人に私が分け合うと思ったこの問題で – Roro

+0

私はまだこの問題の解決策を見つけることができませんでした。どんな助けでも大歓迎です。 – Roro

答えて

2

私は、これはポスト注文APIを使用することによって達成することができる把握することができました。

https://developer.ebay.com/Devzone/post-order/index.html

はキャンセルセクションの下にあるリンクを見てください。 KEVINUKのコード例と

更新ANSWER:

これは私の実施例です。キャンセルリクエストが成功したかどうかを私に知らせるために、私はそれをブールとして使用し、そこからどこに行くのかを見ることができます。

/// <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; 
    }  
+1

サンプルありがとう! :) – KevinUK

+0

authTokenとは何ですか?私はUserTokenを使用しましたが、無表情なエラーが発生しました。 –