using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace LYFZ.WinicSmsInterface { public partial class frmAccountInformation : LYFZ.ComponentLibrary.BaseContentsFormMain { // 000/lyfz/9340.8260/0.0460/70//0.2000/0.3000/0.3000/winic //000/用户名/余额/单价/短信字符数/签名/语音短信单价/传真短信单价/彩信单价/所属经营商 public frmAccountInformation() { InitializeComponent(); this.Shown += frmAccountInformation_Shown; this.chkOpen.Click += chkOpen_Click; } void chkOpen_Click(object sender, EventArgs e) { if (this.rdobtnSingleShot.Checked) { this.CurrentSMSAccountInformation.IsSingleOpen = this.chkOpen.Checked; } else { this.CurrentSMSAccountInformation.IsBulkOpen = this.chkOpen.Checked; } } /* string _Account = ""; /// /// 帐号 /// public string Account { get { return _Account; } set { _Account = value; } } string _Password = ""; /// /// 密码 /// public string Password { get { return _Password; } set { _Password = value; } }*/ /// /// 帐号 /// string Account = ""; /// /// 密码 /// string Password = ""; /// /// 旧的帐号信息 /// string oldAccountInfo = ""; public frmAccountInformation(LYFZ.Model.Model_SMSAccountInformation sMSAccountInformation) :this() { this.currentSMSAccountInformation = sMSAccountInformation; this.skinTextBoxAccount.Text = sMSAccountInformation.SingleUid; this.skinTextBoxPassword.Text =sMSAccountInformation.SinglePwd; this.skinTextBox1.Text = sMSAccountInformation.SingleRechargeRemindbalance.ToString(); this.skinTextBox2.Text = sMSAccountInformation.SingleRechargeRemindPhone; this.chkOpen.Checked = sMSAccountInformation.IsSingleOpen; this.nudCount.Value = sMSAccountInformation.SwitchingCondition; this.Account = this.skinTextBoxAccount.Text; this.Password = this.skinTextBoxPassword.Text; this.oldAccountInfo = sMSAccountInformation.SingleUid + sMSAccountInformation.SinglePwd + sMSAccountInformation.SwitchingCondition + sMSAccountInformation.SingleServiceNumber + sMSAccountInformation.SingleRechargeRemindbalance.ToString() + sMSAccountInformation.SingleRechargeRemindPhone + sMSAccountInformation.BulkUid + sMSAccountInformation.BulkPwd + sMSAccountInformation.BulkServiceNumber + sMSAccountInformation.BulkRechargeRemindbalance.ToString() + this.currentSMSAccountInformation.IsSingleOpen.ToString() + this.currentSMSAccountInformation.IsBulkOpen.ToString() + sMSAccountInformation.BulkRechargeRemindPhone; } /// /// 是否有更新帐号 /// public bool GetIsUpdateAccount() { if (this.oldAccountInfo != (this.currentSMSAccountInformation.SingleUid + this.currentSMSAccountInformation.SinglePwd + this.currentSMSAccountInformation.SwitchingCondition + this.currentSMSAccountInformation.SingleServiceNumber + this.currentSMSAccountInformation.SingleRechargeRemindbalance.ToString() + this.currentSMSAccountInformation.SingleRechargeRemindPhone + this.currentSMSAccountInformation.BulkUid + this.currentSMSAccountInformation.BulkPwd + this.currentSMSAccountInformation.BulkServiceNumber + this.currentSMSAccountInformation.BulkRechargeRemindbalance.ToString() + this.currentSMSAccountInformation.IsSingleOpen.ToString() + this.currentSMSAccountInformation.IsBulkOpen.ToString() + this.currentSMSAccountInformation.BulkRechargeRemindPhone)) { return true; } else { return false; } } LYFZ.Model.Model_SMSAccountInformation currentSMSAccountInformation = new Model.Model_SMSAccountInformation(); /// /// 短信接口帐号信息 /// public LYFZ.Model.Model_SMSAccountInformation CurrentSMSAccountInformation { get { return currentSMSAccountInformation; } set { currentSMSAccountInformation = value; } } //创建一个委托,是为访问控件服务的。 public delegate void UpdateControls(); void frmAccountInformation_Shown(object sender, EventArgs e) { LYFZ.ComponentLibrary.FrmLoadHandling.LoadDoWorkMethod(delegate(object obj, BackgroundWorker backgroundWorker) { try { SmsUserInfo userinfo = WebServiceSmsInterface.GetSmsUserInfo(this.Account, this.Password); this.Invoke(new UpdateControls(delegate() { lab查询结果.Text = userinfo.ReturnStatus.Replace("发送", "查询"); lb用户名.Text = userinfo.Username; lb余额.Text = userinfo.Balance.ToString(); lb单价.Text = userinfo.Price.ToString(); lb短信字符数.Text = userinfo.SMSCharacterCount.ToString(); lb短信签名.Text = userinfo.Signatures; lb语音单价.Text = userinfo.VoiceMessagingPrice.ToString(); lb彩信单价.Text = userinfo.MMSPrice.ToString(); lb传真单价.Text = userinfo.FaxMessagingPrice.ToString(); })); } catch (Exception ex) { this.Invoke(new UpdateControls(delegate() { lab查询结果.Text = "帐号祥情查询失败,以下为余额查询"; lb用户名.Text = this.Account; lb余额.Text = HTTPSmsInterface.GetBalances(this.Account, this.Password); })); MessageBoxCustom.Show("查询帐号祥情失败," + ex.Message, backgroundWorker: backgroundWorker); } }); } private void skinButtomQuery_Click(object sender, EventArgs e) { this.Account = this.skinTextBoxAccount.Text; this.Password = this.skinTextBoxPassword.Text; this.CurrentSMSAccountInformation.SwitchingCondition = Convert.ToInt32(this.nudCount.Value); if (this.rdobtnSingleShot.Checked) { this.CurrentSMSAccountInformation.SingleUid = this.skinTextBoxAccount.Text.Trim(); this.CurrentSMSAccountInformation.SinglePwd = this.skinTextBoxPassword.Text.Trim(); //this.CurrentSMSAccountInformation.SingleRechargeRemindbalance = Convert.ToInt32(this.skinTextBox1.Text.Trim()); //this.CurrentSMSAccountInformation.SingleRechargeRemindPhone = this.skinTextBox2.Text.Trim(); } else { this.CurrentSMSAccountInformation.BulkUid = this.skinTextBoxAccount.Text.Trim(); this.CurrentSMSAccountInformation.BulkPwd = this.skinTextBoxPassword.Text.Trim(); //this.CurrentSMSAccountInformation.BulkRechargeRemindbalance = Convert.ToInt32(this.skinTextBox1.Text.Trim()); //this.CurrentSMSAccountInformation.BulkRechargeRemindPhone = this.skinTextBox2.Text.Trim(); } frmAccountInformation_Shown(null, null); } private void skinButtomSendSms_Click(object sender, EventArgs e) { this.Account = this.skinTextBoxAccount.Text.Trim(); this.Password = this.skinTextBoxPassword.Text.Trim(); string RecipientPhone = this.skinTextBoxPhoneNumber.Text.Trim(); string SMSContent = this.skinTextBoxSmsInfo.Text.Trim(); string ErrorPhone = LYFZ.WinAPI.CustomPublicMethod.ValidationPhones(RecipientPhone,ref RecipientPhone); if (ErrorPhone.Length > 0) { MessageBoxCustom.Show("请求发送手机号格式不正确,以下为错误手机号:\r\n" + ErrorPhone); return; } string[] phones = RecipientPhone.Split(','); if (phones.Length > 100) { MessageBoxCustom.Show("请求发送手机号过多,一次只能同时发送给100个手机号,当前请求手机号个数:" + phones.Length); return; } if (SMSContent.Length > 300) { MessageBoxCustom.Show("请求发送短信长度为:" + SMSContent.Length + "个字符,测试发送短信内容超长,不能发送。"); return; } if (SMSContent.Length <= 0) { MessageBoxCustom.Show("短信内容不能为空。"); return; } LYFZ.ComponentLibrary.FrmLoadHandling.LoadDoWorkMethod(delegate(object obj, BackgroundWorker backgroundWorker) { try { HTTPSmsSendReturnInfo sendInfo = HTTPSmsInterface.SendSmsMessages(this.Account, this.Password, RecipientPhone, SMSContent);//new HTTPSmsSendReturnInfo("000/Send:1/Consumption:.046/Tmoney:7982.446/sid:1029101707233851"); try { if (sendInfo.ReturnStatus.Contains("成功")) { LYFZ.DAL.tb_SMSSendRecords smsDal = new DAL.tb_SMSSendRecords(); LYFZ.Model.tb_SMSSendRecords smsModel = new Model.tb_SMSSendRecords(); smsModel.SMSAccount = this.Account; smsModel.CustomerID = smsDal.GetSendRecordID(this.Account); smsModel.RecipientPhone = RecipientPhone; smsModel.SMSContent = SMSContent; smsModel.Status = SendSmsResults.SendStatus.发送成功.ToString(); smsModel.SMSCustomerDateTime = DateTime.Now; smsModel.RecipientDateTime = DateTime.Now; smsModel.SendDateTime = DateTime.Now; smsModel.AgentChargeback = sendInfo.SendCount; smsModel.OperatorChargeback = sendInfo.SendCount; smsModel.AgentPrice = sendInfo.Price; smsModel.OperatorPrice = smsModel.AgentPrice; smsModel.SendLogs = sendInfo.SourceString; smsModel.SendFailureNumber = 0; smsModel.PartialFailurePhone = ""; smsModel.WaitingToSend = ""; smsModel.SMSInterface = "深圳吉信通"; smsModel.CustomerQueries = "1"; string md5Key = LYFZ.WinAPI.SDKSecurity.MD5Encrypt(smsModel.RecipientPhone + smsModel.SMSContent + smsModel.SMSCustomerDateTime); smsModel.MD5KEY = md5Key; smsDal.Add(smsModel); } } catch { sendInfo.ReturnStatus = "发送成功,但记录插入错误"; } this.Invoke(new UpdateControls(delegate() { this.labelEx发送结果.Text = sendInfo.ReturnStatus + "\r\n" + sendInfo.SourceString; })); } catch (Exception ex) { MessageBoxCustom.Show("发送错误," + ex.Message, backgroundWorker: backgroundWorker); } }); } /* int rechargeRemindbalance = 1000; /// /// 充值提醒余额 (条) /// public int RechargeRemindbalance { get { return rechargeRemindbalance; } set { rechargeRemindbalance = value; } } string rechargeRemindPhone = ""; /// /// 充值提醒短信接收手机号 /// public string RechargeRemindPhone { get { return rechargeRemindPhone; } set { rechargeRemindPhone = value; } }*/ private void skinButtom1_Click(object sender, EventArgs e) { try { //this.CurrentSMSAccountInformation.SingleRechargeRemindbalance =Convert.ToInt32(this.skinTextBox1.Text.Trim()); // this.CurrentSMSAccountInformation.SingleRechargeRemindPhone = this.skinTextBox2.Text.Trim(); this.CurrentSMSAccountInformation.SwitchingCondition = Convert.ToInt32(this.nudCount.Value); if (this.rdobtnSingleShot.Checked) { this.CurrentSMSAccountInformation.SingleRechargeRemindbalance = Convert.ToInt32(this.skinTextBox1.Text.Trim()); this.CurrentSMSAccountInformation.SingleRechargeRemindPhone = this.skinTextBox2.Text.Trim(); } else { this.CurrentSMSAccountInformation.BulkRechargeRemindbalance = Convert.ToInt32(this.skinTextBox1.Text.Trim()); this.CurrentSMSAccountInformation.BulkRechargeRemindPhone = this.skinTextBox2.Text.Trim(); } MessageBoxCustom.Show("保存成功"); } catch { MessageBoxCustom.Show("输入信息不正确"); } } /// /// 单发通道 /// /// /// private void rdobtnSingleShot_Click(object sender, EventArgs e) { this.skinTextBoxAccount.Text = this.CurrentSMSAccountInformation.SingleUid; this.skinTextBoxPassword.Text = this.CurrentSMSAccountInformation.SinglePwd; this.skinTextBox1.Text = this.CurrentSMSAccountInformation.SingleRechargeRemindbalance.ToString(); this.skinTextBox2.Text = this.CurrentSMSAccountInformation.SingleRechargeRemindPhone; this.chkOpen.Checked = this.CurrentSMSAccountInformation.IsSingleOpen; skinButtomQuery_Click(sender, e); } /// /// 群发通单 /// /// /// private void rdobtnBulk_Click(object sender, EventArgs e) { this.skinTextBoxAccount.Text = this.CurrentSMSAccountInformation.BulkUid; this.skinTextBoxPassword.Text = this.CurrentSMSAccountInformation.BulkPwd; this.skinTextBox1.Text = this.CurrentSMSAccountInformation.BulkRechargeRemindbalance.ToString(); this.skinTextBox2.Text = this.CurrentSMSAccountInformation.BulkRechargeRemindPhone; this.chkOpen.Checked = this.CurrentSMSAccountInformation.IsSingleOpen; skinButtomQuery_Click(sender, e); } } }