private void ImportCodes(WeChatTokenResponse weChatToken, WeChatCardResponse weChatCard) { WeChatImportCodesModel weChatImportCodes = WeChatImportCodesFactory.ImportCodes(weChatCard, PATH_TO_FOLDER, PATH_TO_FOLDER_OLD); int quantity = 100; for (int i = 0; i < weChatImportCodes.Codes.Count; i += quantity) { var codes = weChatImportCodes.Codes.Skip(i).Take(quantity).ToList(); WeChatImportCodesModel receiveImportCodes = WeChatImportCodesFactory.ReceiveImportCodes(weChatCard, codes); WeChatImportCodesResponse importedCodesResponse = ReceiveImportCodeRequest(weChatToken, weChatCard, receiveImportCodes); if (importedCodesResponse.SuccessCodes.Count > 0) { Console.WriteLine("SuccessCodes Missing"); } if (importedCodesResponse.FailCodes.Count > 0) { Console.WriteLine("FailCodes Missing"); } //System.IO.File.WriteAllLines($"{PATH_TO_FOLDER_IMPORTED}\\Imported_From_{i}_{GetFormattedDate()}", importedCodesResponse.SuccessCodes, Encoding.UTF8); //ReceiveVerifyingCodeRequest(weChatToken, weChatCard, importedCodesResponse); //CallModifyingInventoryIncrease(weChatToken, weChatCard, quantity); } //ReceiveGetCodeDepositCountRequest(weChatToken, weChatCard); }
public static WeChatImportCodesModel ImportCodes(WeChatCardResponse weChatCard, string pathToFolder, string pathToFolderOld) { WeChatImportCodesModel weChatImportCodes = new WeChatImportCodesModel(); weChatImportCodes.CardId = weChatCard.CardId; weChatImportCodes.Codes = new List <string>(); string[] files = Directory.GetFiles(pathToFolder, "*.txt", SearchOption.TopDirectoryOnly); foreach (string file in files) { using StreamReader sr = new StreamReader(file); string content = sr.ReadToEnd(); var codes = content.Replace(Environment.NewLine, ",").Replace("\"", "").Split(','). Select(tag => tag.Trim()). Where(tag => !string.IsNullOrEmpty(tag)).ToList(); weChatImportCodes.Codes.AddRange(codes); string date = $"{DateTime.Now.Year}_{DateTime.Now.Month}_{DateTime.Now.Day}_-_{DateTime.Now.Hour}_{DateTime.Now.Minute}"; File.Copy(file, $"{pathToFolderOld}/Old_{date}_{Path.GetFileName(file)}", false); } foreach (string file in files) { File.Delete(file); } return(weChatImportCodes); }
public static WeChatImportCodesModel ReceiveImportCodes(WeChatCardResponse weChatCard, List <string> codes) { WeChatImportCodesModel weChatImportCodes = new WeChatImportCodesModel(); weChatImportCodes.CardId = weChatCard.CardId; weChatImportCodes.Codes = new List <string>(); weChatImportCodes.Codes.AddRange(codes); return(weChatImportCodes); }
private void Log(WeChatTokenResponse weChatToken, WeChatCardResponse weChatCard, string time, WeChatImageResponse weChatImage = null) { try { string log = weChatToken != null ? $"TOKEN: {weChatToken.AccessToken}\n" : ""; log += weChatCard != null ? $"CardId: {weChatCard.CardId}\n" : ""; log += !string.IsNullOrEmpty(time) ? $"Time: {time}\n" : ""; log += weChatImage != null ? $"LogoUrl: {weChatImage.Url}\n" : ""; System.IO.File.WriteAllText($"Temp//Card_{GetFormattedDate()}.txt", log); } catch (Exception e) { throw new Exception($"Error on Log.", e); } }
public IActionResult WeChatCreateAndImportCodes() { WeChatTokenResponse weChatToken = GetWeChatToken(APPID, APPSECRET); WeChatImageResponse weChatImage = ReceiveUploadImageRequest(weChatToken); WeChatCardResponse weChatCard = ReceiveNewCardRequest(weChatToken, weChatImage); var watch = Stopwatch.StartNew(); ImportCodes(weChatToken, weChatCard); watch.Stop(); string seconds = (watch.ElapsedMilliseconds / 1000).ToString(); Log(weChatToken, weChatCard, seconds, weChatImage); return(Ok(weChatCard)); }
public IActionResult WeChatImportCodes(string cardId) { WeChatTokenResponse weChatToken = GetWeChatToken(APPID, APPSECRET); WeChatCardResponse weChatCard = new WeChatCardResponse(); weChatCard.CardId = cardId; var watch = Stopwatch.StartNew(); //VerifyCodes(weChatToken, weChatCard); ImportCodes(weChatToken, weChatCard); watch.Stop(); string seconds = (watch.ElapsedMilliseconds / 1000).ToString(); Log(weChatToken, weChatCard, seconds); return(Ok(weChatCard)); }
private void VerifyCodes(WeChatTokenResponse weChatToken, WeChatCardResponse weChatCard) { WeChatImportCodesModel weChatImportCodes = WeChatImportCodesFactory.ImportCodes(weChatCard, PATH_TO_FOLDER, PATH_TO_FOLDER_OLD); int quantity = 100; for (int i = 0; i < weChatImportCodes.Codes.Count; i += quantity) { var codes = weChatImportCodes.Codes.Skip(i).Take(quantity).ToList(); WeChatImportCodesResponse importedCodesResponse = new WeChatImportCodesResponse(); importedCodesResponse.SuccessCodes = new List <string>(); importedCodesResponse.SuccessCodes.AddRange(codes); WeChatImportCodesVerifyingCodeResponse verify = ReceiveVerifyingCodeRequest(weChatToken, weChatCard, importedCodesResponse); if (verify.NotExistCodes.Count > 0) { Console.WriteLine("duplicated"); } } }
/// <summary> /// [09] Call Modifying Inventory - Increase /// </summary> /// <param name="weChatToken"></param> /// <param name="weChatCard"></param> /// <param name="stockQuantity"></param> /// <returns></returns> private WeChatModifyingInventoryIncreaseResponse CallModifyingInventoryIncrease(WeChatTokenResponse weChatToken, WeChatCardResponse weChatCard, int quantity) { try { string url = "https://api.weixin.qq.com/card/modifystock?access_token=" + weChatToken.AccessToken; var json = "{\"card_id\" : \"" + weChatCard.CardId + "\", \"increase_stock_value\": " + quantity + "}"; var body = new StringContent(json, Encoding.UTF8, "application/json"); var response = _httpClient.PostAsync(url, body).Result; var jsonString = response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <WeChatModifyingInventoryIncreaseResponse>(jsonString.Result)); } catch (Exception e) { throw new Exception($"Error on CallModifyingInventoryIncrease.", e); } }
/// <summary> /// [08] Receive Verifying Code Request /// </summary> /// <param name="weChatToken"></param> /// <param name="weChatCard"></param> /// <returns></returns> private WeChatImportCodesVerifyingCodeResponse ReceiveVerifyingCodeRequest(WeChatTokenResponse weChatToken, WeChatCardResponse weChatCard, WeChatImportCodesResponse importedCodesResponse) { try { WeChatImportCodesModel receiveImportCodes = WeChatImportCodesFactory.ReceiveImportCodes(weChatCard, importedCodesResponse.SuccessCodes); string url = "http://api.weixin.qq.com/card/code/checkcode?access_token=" + weChatToken.AccessToken; var jsonImportCodes = JsonConvert.SerializeObject(receiveImportCodes, WeChatConverter.Settings); var body = new StringContent(jsonImportCodes, Encoding.UTF8, "application/json"); var response = _httpClient.PostAsync(url, body).Result; var jsonString = response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <WeChatImportCodesVerifyingCodeResponse>(jsonString.Result)); } catch (Exception e) { throw new Exception($"Error on ReceiveGetCodeDepositCountRequest.", e); } }
/// <summary> /// [07] Receive GetCode Deposit Count Request /// </summary> /// <param name="weChatToken"></param> /// <param name="weChatCard"></param> /// <returns></returns> private WeChatGetCodeDepositCountResponse ReceiveGetCodeDepositCountRequest(WeChatTokenResponse weChatToken, WeChatCardResponse weChatCard) { try { string url = "http://api.weixin.qq.com/card/code/getdepositcount?access_token=" + weChatToken.AccessToken; var json = "{\"card_id\" : \"" + weChatCard.CardId + "\"}"; var body = new StringContent(json, Encoding.UTF8, "application/json"); var response = _httpClient.PostAsync(url, body).Result; var jsonString = response.Content.ReadAsStringAsync(); return(JsonConvert.DeserializeObject <WeChatGetCodeDepositCountResponse>(jsonString.Result)); } catch (Exception e) { throw new Exception($"Error on ReceiveGetCodeDepositCountRequest.", e); } }