PDA

View Full Version : ارسال SMS



net_ved
دوشنبه 18 آذر 1387, 09:02 صبح
سلام من یه برنامه دارم که با سرویس SMS مگفا ارسال می کنه ولی یه مشکل تو کد دارم و اون اینه که کد من یه تایمر داره که باید چک کنه که اگه ارسال صورت نگرفته دوباره ارسال کنه
مگفا یه تابه داره که اس ام اس ارسال می کنه و یه کد به عنوان جواب برمی گردونه ولی کد من مشکلی که داره اینه که فرصت اینو پیدا نمی کنه تا کد رو بگیره ... یعنی از چند بار ارسال معمولا %50 کدی به عنوان پاسخ دریافت نمی کنم و به همین دلیل عمل ارسال رو دوباره تکرار می کنم .. این نمونه کد منه ...

private void timer1_Tick(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConnectionString);
SelectStr = "select Top " + numericUpDown1.Value + " * from TX0 where f9 = 0 ";
FillDataSetAndView();

if (objCurrencyManager.Count > 0)
{
timer1.Enabled = false;


MakeList();
SendSMSList();
if (SendState == 1)
{
UpdateSTR = "UPDATE TX0 SET F9 = 1 FROM (SELECT TOP " + numericUpDown1.Value
+ " * FROM TX0 WHERE F9 = 0) AS t1 WHERE TX0.Fau = t1.Fau";
conn.Open();
SqlCommand cmd = new SqlCommand(UpdateSTR, conn);
int rowsReturned = cmd.ExecuteNonQuery();
conn.Close();
DataLog.Items.Add("Update " + rowsReturned + " Records");
MessageBox.Show("update ok");
}
timer1.Enabled = true;
}
else
{
timer1.Enabled = false;
LBL.Text = "Sending Completed";
}
}
اینم تابع ارسال


private void SendSMSList()
{
//Name Domain
string Domain = TDomain.Text;
//Farsi Ya En
int[] encoding = new int[80];
//UDHS
string[] udhs = new string[80];
//Message Class
//int[] Mclass = new int[80];

//Olaviat Bandi Payam
int[] priority = new int[80];
//Sms ID
long[] CMI = new long[80];

// Class Ersall Konnande Sms
try
{
SoapSmsQueuableImplementationService SSQ = new SoapSmsQueuableImplementationService();
SSQ.Credentials = new NetworkCredential(TUser.Text, TPass.Text); //UserName Va PassWord Web Service
results = SSQ.enqueue(Domain, mbody, Rnumber, SNumber, encoding, udhs, MSGclass, priority, CMI);
SendState = 1;

}
catch (System.Net.WebException)
{
SendState = 0;