From d84a61b9188548dcb30a3f8a966c22e6142e958e Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 17 Apr 2026 01:48:07 +0100 Subject: [PATCH] debug: log all eBay setup API responses (opt_in + policy creation) to crash_log.txt --- .../Services/EbayListingService.cs | 34 ++++++++++++++----- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/EbayListingTool/Services/EbayListingService.cs b/EbayListingTool/Services/EbayListingService.cs index 5dc6f6f..69256f9 100644 --- a/EbayListingTool/Services/EbayListingService.cs +++ b/EbayListingTool/Services/EbayListingService.cs @@ -218,6 +218,14 @@ public class EbayListingService /// Called automatically on first 20403 error. Opts the account in to SELLING_POLICY_MANAGEMENT /// then creates minimal default policies so posting can proceed without manual eBay setup. /// + private static void LogSetup(string msg) + { + var dir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "EbayListingTool"); + Directory.CreateDirectory(dir); + File.AppendAllText(Path.Combine(dir, "crash_log.txt"), + $"{DateTime.Now:HH:mm:ss} [Setup] {msg}{Environment.NewLine}"); + } + private async Task SetupDefaultBusinessPoliciesAsync(string token) { // Step 1: opt in to the Business Policies programme @@ -227,9 +235,11 @@ public class EbayListingService using var req = MakeRequest(HttpMethod.Post, $"{_auth.BaseUrl}/sell/account/v1/program/opt_in", token); req.Content = new StringContent(optInBody, Encoding.UTF8, "application/json"); - await _http.SendAsync(req); // 204 = success; ignore other responses + var optInRes = await _http.SendAsync(req); + var optInBody2 = await optInRes.Content.ReadAsStringAsync(); + LogSetup($"opt_in → {(int)optInRes.StatusCode} {optInBody2}"); } - catch { /* opt-in failure is non-fatal — account may already be opted in */ } + catch (Exception ex) { LogSetup($"opt_in exception: {ex.Message}"); } // Step 2: create one policy of each required type (ignore errors — they may already exist) await TryCreateFulfillmentPolicyAsync(token); @@ -271,9 +281,11 @@ public class EbayListingService $"{_auth.BaseUrl}/sell/account/v1/fulfillment_policy", token); req.Content = new StringContent( JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"); - await _http.SendAsync(req); + var res2 = await _http.SendAsync(req); + var body2 = await res2.Content.ReadAsStringAsync(); + LogSetup($"fulfillment_policy create → {(int)res2.StatusCode} {body2}"); } - catch { } + catch (Exception ex) { LogSetup($"fulfillment_policy exception: {ex.Message}"); } } private async Task TryCreatePaymentPolicyAsync(string token) @@ -291,9 +303,11 @@ public class EbayListingService $"{_auth.BaseUrl}/sell/account/v1/payment_policy", token); req.Content = new StringContent( JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"); - await _http.SendAsync(req); + var res2 = await _http.SendAsync(req); + var body2 = await res2.Content.ReadAsStringAsync(); + LogSetup($"payment_policy create → {(int)res2.StatusCode} {body2}"); } - catch { } + catch (Exception ex) { LogSetup($"payment_policy exception: {ex.Message}"); } } private async Task TryCreateReturnPolicyAsync(string token) @@ -314,9 +328,11 @@ public class EbayListingService $"{_auth.BaseUrl}/sell/account/v1/return_policy", token); req.Content = new StringContent( JsonConvert.SerializeObject(body), Encoding.UTF8, "application/json"); - await _http.SendAsync(req); + var res2 = await _http.SendAsync(req); + var body2 = await res2.Content.ReadAsStringAsync(); + LogSetup($"return_policy create → {(int)res2.StatusCode} {body2}"); } - catch { } + catch (Exception ex) { LogSetup($"return_policy exception: {ex.Message}"); } } private async Task CreateMerchantLocationAsync(string token, string postcode) @@ -533,3 +549,5 @@ public class EbayListingService + +