private void BatchRechargeForm_Load(object sender, EventArgs e) { //批量充值 Thread thBtRechar = new Thread(async() => { this.toolStripButton.Enabled = false; foreach (DataGridViewModel data in this.userIndentifiers) { string useridentifier = data.UserIdentifer; this.lbl_showRechrge.Text = $"{useridentifier}: 正在进行充值操作......."; this.isFlag = false; this.secondsRecharge = 0; BankUserInfo bankUser = await this.jymService.GetBankUserInfoAsync(data.UserIdentifer); if (bankUser == null) { this.lbl_showRechrge.Text = $"{useridentifier}: 该用户还未开户"; Thread.Sleep(1500); continue; } //充值 RechargeReqeust rechargeReqeust = new RechargeReqeust { Amount = 8000000000, ChannelType = 10, ClientType = 900, ReturnUrl = "http://www.dev.ad.jinyinmao.com.cn/redirect/Home/?request=http://www.baidu.com", UserIdentifier = useridentifier, Password = data.Password, CellPhone = data.CellPhone }; string useridentifier1 = useridentifier; await this.bankPageCommon.Recharge(rechargeReqeust, () => { this.lbl_showRechrge.Text = $"{useridentifier1}: 该用户充值成功"; //记录充值 SqlHelper.ExecuteNoneQuery($"update AccountUsers set RechargeNums=RechargeNums+1,RechargeAmount=RechargeAmount+{8000000000} where UserIdentifier='{useridentifier1}'"); this.isFlag = true; }, this.webBrowser_batchRecharge); while (!this.isFlag) { //secondsRecharge Thread.Sleep(4000); this.secondsRecharge += this.secondsRecharge + 4000; if (this.secondsRecharge >= 60000) { this.lbl_showRechrge.Text = $"{useridentifier}: 充值超时"; break; } } } this.toolStripButton.Enabled = true; this.action(); this.Close(); }) { IsBackground = true }; thBtRechar.Start(); }
/// <summary> /// 充值 /// </summary> /// <param name="rechargeReqeust"></param> /// <returns></returns> public async Task <BankSercrityInfo> RechargeByService(RechargeReqeust rechargeReqeust) { try { //string url = "http://api.dev.ad.jinyinmao.com.cn/User/Payment/Recharge"; string url = $"{BizeBaseUrl}User/Payment/Recharge"; //获取token string token = await this.GetAuth(rechargeReqeust.CellPhone, rechargeReqeust.Password); Client.DefaultRequestHeaders.Remove("X-JYM-Authorization"); Client.DefaultRequestHeaders.Add("X-JYM-Authorization", $"Bearer {token}"); HttpResponseMessage responseMessage = await Client.PostAsJsonAsync(url, rechargeReqeust); if (responseMessage.StatusCode == HttpStatusCode.OK) { return(await responseMessage.Content.ReadAsAsync <BankSercrityInfo>()); } return(null); } catch (Exception ex) { return(null); } }
private async void button2_Click(object sender, EventArgs e) { this.btn_recharge.Enabled = false; this.lbl_showRecharge.Text = "正在进行充值操作......."; string userIdentifiers = this.txb_userIndentifiers.Text.Trim(); string[] userInfoList = Regex.Split(userIdentifiers, "\r\n", RegexOptions.IgnoreCase); if (userInfoList.Length == 0) { MessageBox.Show("数据格式不对"); return; } foreach (string user in userInfoList) { //判断该用户是否在银行开户 List <string> userInfos = user.GetListByStr(); if (userInfos == null || userInfos.Count == 0) { //格式不正确 this.rechargeResults.Append($"{user}:格式不正确"); this.rechargeResults.Append("\r\n"); //this.txb_RechargeResults.Text = this.rechargeResults.ToString(); //提示 continue; } BankUserInfo bankUser = await this.jymService.GetBankUserInfoAsync(userInfos[0]); if (bankUser == null) { this.rechargeResults.Append($"{user}:该用户还未开户"); this.rechargeResults.Append("\r\n"); //this.txb_RechargeResults.Text = this.rechargeResults.ToString(); //提示 continue; } //充值 RechargeReqeust rechargeReqeust = new RechargeReqeust { Amount = Convert.ToInt64(userInfos[1]), ChannelType = 10, ClientType = 900, ReturnUrl = "http://www.dev.ad.jinyinmao.com.cn/redirect/Home/?request=http://www.baidu.com", UserIdentifier = userInfos[0] }; await this.bankPageCommon.Recharge(rechargeReqeust, () => { this.rechargeResults.Append($"{user}:充值成功"); this.isFlag = true; this.rechargeResults.Append("\r\n"); //this.txb_RechargeResults.Text = this.rechargeResults.ToString(); //提示成功 }); while (!this.isFlag) { Thread.Sleep(5000); } } //充值操作结束 this.btn_recharge.Enabled = true; this.lbl_showRecharge.Text = "充值操作结束"; //this.button2.Enabled = false; //int nums = Convert.ToInt16(this.txb_num.Text.Trim()); //this.count = nums; //for (int i = 0; i < nums; i++) //{ // RegisterSuccessInfo d = await this.Register(); // if (d.IsSuccess) // { // //开通存管账户 // await this.OpenBankAccount(d, this.webBrowser1); // } //} //this.button2.Enabled = true; //MessageBox.Show("成功"); }
/// <summary> /// 批量充值 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_recharge_Click(object sender, EventArgs e) { //批量充值 string userIdentifiers = this.txb_userIndentifiers.Text.Trim(); string amountTxt = this.txb_amount.Text.Trim(); if (string.IsNullOrEmpty(amountTxt) || string.IsNullOrEmpty(userIdentifiers)) { MessageBox.Show("信息不能为空"); return; } Regex regex = new Regex("^[1-9]{1}[0-9]{0,14}$"); if (!regex.IsMatch(amountTxt)) { MessageBox.Show("金额格式不对"); return; } long amount = Convert.ToInt64(amountTxt); string[] userInfoList = Regex.Split(userIdentifiers, "\r\n", RegexOptions.IgnoreCase); Thread thBtRechar = new Thread(async() => { this.btn_recharge.Enabled = false; this.button1.Enabled = false; foreach (string useridentifier in userInfoList) { this.lbl_showRecharge.Text = $"{useridentifier}: 正在进行充值操作......."; this.isFlag = false; this.secondsRecharge = 0; //判断该用户是否在银行开户 //List<string> userInfos = user.GetListByStr(); Regex regexuserIdentifier = new Regex("^[0-9a-zA-Z]{32}$"); if (!regexuserIdentifier.IsMatch(useridentifier)) { //格式不正确 this.lbl_showRecharge.Text = $"{useridentifier}: 格式错误,充值失败....."; Thread.Sleep(1500); continue; } BankUserInfo bankUser = await this.jymService.GetBankUserInfoAsync(useridentifier.ToUpper()); if (bankUser == null) { this.lbl_showRecharge.Text = $"{useridentifier}: 该用户还未开户"; //this.txb_RechargeResults.Text = this.rechargeResults.ToString(); //提示 Thread.Sleep(1500); continue; } //充值 RechargeReqeust rechargeReqeust = new RechargeReqeust { Amount = amount, ChannelType = 10, ClientType = 900, ReturnUrl = "http://www.dev.ad.jinyinmao.com.cn/redirect/Home/?request=http://www.baidu.com", UserIdentifier = useridentifier }; await this.bankPageCommon.Recharge(rechargeReqeust, () => { this.lbl_showRecharge.Text = $"{useridentifier}: 该用户充值成功"; //记录充值 SqlHelper.ExecuteNoneQuery($"update AccountUsers set RechargeNums=RechargeNums+1,RechargeAmount=RechargeAmount+{amount} where UserIdentifier='{useridentifier}'"); this.isFlag = true; }, this.webBrowser_recharge); while (!this.isFlag) { //secondsRecharge Thread.Sleep(4000); this.secondsRecharge += this.secondsRecharge + 4000; if (this.secondsRecharge >= 120000) { break; } } } //充值操作结束 this.btn_recharge.Enabled = true; this.button1.Enabled = true; this.lbl_showRecharge.Text = "充值操作结束"; }) { IsBackground = true }; thBtRechar.Start(); }
/// <summary> /// 存管充值 /// </summary> /// <param name="rechargeReqeust"></param> /// <param name="action"></param> /// <param name="webBrowser"></param> /// <returns></returns> public async Task Recharge(RechargeReqeust rechargeReqeust, Action action, WebBrowser webBrowser = null) { SetWebbrowser.SumitForm(12); if (webBrowser == null) { webBrowser = new WebBrowser { ScriptErrorsSuppressed = true }; } BankSercrityInfo bankSercrityInfo = await this.jymService.RechargeByService(rechargeReqeust); if (bankSercrityInfo != null) { int index = 0; string url = $"http://fsgw.hkmdev.firstpay.com/phoenixFS-fsgw/gateway?data={HttpUtility.UrlEncode(bankSercrityInfo.Data)}&tm={HttpUtility.UrlEncode(bankSercrityInfo.Tm)}&merchantId=M20000002130"; //添加一个 //WebBrowser webBrowser = new WebBrowser { Name = "wb" + Guid.NewGuid().ToString("N").ToUpper() }; webBrowser.Navigate(new Uri(url, UriKind.Absolute)); webBrowser.DocumentCompleted += (obj, e) => { if (webBrowser.ReadyState < WebBrowserReadyState.Complete) { return; } //this.LastUrl = this.webbrowserBg.Url.ToString(); HtmlDocument htmlDocument = webBrowser.Document; if (index == 0) { if (htmlDocument != null) { Thread th = new Thread(() => { try { HtmlElement setPwd = htmlDocument.GetElementById("payPassword"); //输入密码 HtmlElement parent = setPwd?.Parent?.GetElementsByTagName("button")[0]; //htmlDocument.GetElementById("toggle2"); // parent?.InvokeMember("click"); //获取到键值为1的id HtmlElement key1 = htmlDocument.GetElementById("key11"); key1?.InvokeMember("click"); key1?.InvokeMember("click"); key1?.InvokeMember("click"); key1?.InvokeMember("click"); key1?.InvokeMember("click"); key1?.InvokeMember("click"); // htmlDocument.GetElementById("submitBtn")?.InvokeMember("click"); } catch (Exception exception) { string c = exception.Message; } }) { IsBackground = true }; th.Start(); } } else if (index == 2) { string html = htmlDocument?.Body?.InnerText; HtmlElement bankLiElement = htmlDocument?.GetElementById("list-bank1")?.GetElementsByTagName("li")[0]; //click bankLiElement?.InvokeMember("click"); HtmlElementCollection collection = htmlDocument?.GetElementsByTagName("a"); collection?[collection.Count - 1].InvokeMember("click"); //webBrowser.Document?.InvokeScript("var tabList=document.getElementById('list-bank1');chooseBank(tabList.firstElementChild,1);"); //webBrowser.Navigate("javascript:var tabList=document.getElementById('list-bank1');chooseBank(tabList.firstElementChild,1);"); //webBrowser.Navigate("javascript:sub_form();"); } if (index == 2) { action(); } ++index; }; } }