Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
            }
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
        /// <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);
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// [06] Receive Import Code Request
        /// </summary>
        /// <param name="weChatToken"></param>
        /// <param name="weChatCard"></param>
        /// <returns></returns>
        private WeChatImportCodesResponse ReceiveImportCodeRequest(WeChatTokenResponse weChatToken, WeChatCardResponse weChatCard, WeChatImportCodesModel weChatImportCodes)
        {
            try
            {
                string url = "http://api.weixin.qq.com/card/code/deposit?access_token=" + weChatToken.AccessToken;

                var jsonImportCodes = JsonConvert.SerializeObject(weChatImportCodes, 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 <WeChatImportCodesResponse>(jsonString.Result));
            }
            catch (Exception e)
            {
                throw new Exception($"Error on ReceiveImportCodeRequest.", e);
            }
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// [03] Receive New Card Request
        /// </summary>
        /// <param name="weChatToken"></param>
        /// <param name="weChatImage"></param>
        /// <returns></returns>
        private WeChatCardResponse ReceiveNewCardRequest(WeChatTokenResponse weChatToken, WeChatImageResponse weChatImage)
        {
            try
            {
                string url = "https://api.weixin.qq.com/card/create?access_token=" + weChatToken.AccessToken;

                WeChatCardModel weChatCard = WeChatCardFactory.CreateCard(weChatImage.Url);

                var jsonCard = JsonConvert.SerializeObject(weChatCard, WeChatConverter.Settings);
                var body     = new StringContent(jsonCard, Encoding.UTF8, "application/json");
                var response = _httpClient.PostAsync(url, body).Result;

                var jsonString = response.Content.ReadAsStringAsync();
                return(JsonConvert.DeserializeObject <WeChatCardResponse>(jsonString.Result));
            }
            catch (Exception e)
            {
                throw new Exception($"Error on ReceiveNewCardRequest.", e);
            }
        }
Ejemplo n.º 8
0
        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");
                }
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// [02] Receive Upload Image Request
        /// </summary>
        /// <param name="weChatToken"></param>
        /// <returns></returns>
        private WeChatImageResponse ReceiveUploadImageRequest(WeChatTokenResponse weChatToken)
        {
            try
            {
                string url = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token=" + weChatToken.AccessToken;

                FileStream fs = new FileStream(LOGO_IMAGE_URL, FileMode.Open, FileAccess.Read);

                var form = new MultipartFormDataContent();
                form.Headers.ContentType = new MediaTypeHeaderValue("multipart/form-data");
                form.Add(new StreamContent(fs), "buffer", "\"" + LOGO_IMAGE_FILENAME + "\"");

                var response   = _httpClient.PostAsync(url, form);
                var jsonString = response.Result.Content.ReadAsStringAsync();

                return(JsonConvert.DeserializeObject <WeChatImageResponse>(jsonString.Result.Replace("\\", "")));
            }
            catch (Exception e)
            {
                throw new Exception($"Error on ReceiveUploadImageRequest.", e);
            }
        }
Ejemplo n.º 10
0
        /// <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);
            }
        }