# برنامه نویسی با محصولات مایکروسافت > برنامه نویسی مبتنی بر Microsoft .Net Framework > WCF , Web Services , .Net Remoting >  مشکل ارسال SMS با مگفا

## net_ved

من  چند وقته که با مگفا دارم کار می کنم  برای ارسال اس ام اس ولی این شرکت کمکی برای حل مشکلم نمی کنه منم گفتم برنامه نمونه ایی را که خودشون دادنو 

اینجا بذارم شاید شما دوستان اشکالشو پیدا کنید یا دست کم راهنماییم کنید که واسه ارسال و دریافت اس ام اس از طریق مگفا چه باید کرد
شرکت مگفا به من 3 تا شناسه داده ... Username , Pass , domain
یک url هم داده که مربوط می شه به server
ولی در برنامه نمونه یک webproxy هم داده شده که شامل address , User , pass می شه که معلوم نیست چیه ... خودشون می گن که این موارد رو باید با همون موارد 

قبلی پر کنی و یکی هم می گه این مربوط به اینترنت داخلی خودشونه و باید حذف بشه در حالت اول error 404 میده که مربوط به User , Pass اشتباس ولی در حالت دوم 

401 می ده که با سربرگ .net هست
من مثال و کد خطا هارو میذارم اینجا کسایی که کار کردن و تجربه دارن و احتمالا برنامه نویس این نمونه کد لطفا کمکم کنه
ممنون می شم

----------


## abadanboy

1- روی پروژه کلیک راست می کنی و گزینه add web refrence رو انتخاب می کنی و بعد تو کادری که url می خواد آدرس زیر رو وارد می کنی و صبر می کنی تا لود بشه وقتی لود شد کزینه add refrence رو می زنی و همه چی حله. به همین راحتی 

آدرس وب سرویس



> http://webservice.magfa.com/services...PSmsQueue?wsdl


2- کد ارسال

using Payamak.com.magfa.webservice;
using System.Net;
 
//Name Domain
string Domain = "***";
//Matn Sms
string[] mbody = newstring[1]; 
mbody[0]= textBox1.Text;
//Shomare Girande SMS
string[] Rnumber = newstring[1]; 
Rnumber[0] = "0913312";
//Shomare Ersal Konnande Sms
string[] SNumber = newstring[1]; 
SNumber[0] = "3000012";
//Farsi Ya En
int[] encoding = newint[1]; 
//UDHS
string[] udhs = newstring[1];
//Message Class 
int[] Mclass = newint[1]; 
//Olaviat Bandi Payam
int[] priority = newint[1];
//Sms ID
long[] CMI = newlong[1];
 
// Class Ersall Konnande Sms
SoapSmsQueuableImplementationService SSQ = newSoapSmsQueuableImplementationService();
SSQ.Credentials = newNetworkCredential("user"," pass"); //UserName Va PassWord Web Service
SSQ.enqueue(Domain, mbody, Rnumber, SNumber, encoding, udhs, Mclass, priority, CMI);
 


using ها به صورت پیش فرض مثل زیر هست

using com.magfa.webservice;
using System.Net;

----------


## abadanboy

متاسفانه editor برنامه نویس بعضی اوقات فاصله هارو به هم می چسبونه

کلمه new از string یه space فاصله داره یعنی new string 

از copy و past کد خود داری کن و خودت بنویسش 

موفق باشی

----------


## net_ved

دسته شما درد نکنه 
من همه این کار هارو بسیار دقیق انجام دادم
برنامه دیگه هیچ خطایی نداره ولی SMS ارسال نمی شه
User , Pass رو تو سایت http://messaging.magfa.com تست کردم و درست بود ... می شه بیشتر کمک کنید

----------


## abadanboy

دیگه نمی دونم چه کمکی می شه کرد من با همین کد می فرستم و موردی نداره 
user و pass رو تو http://webservice.magfa.com چک کن

----------


## net_ved

بازم ممنون از اینکه اینقد شیوا راهنمایی کردین ... 
من کدی رو که دادین به برنامه پایین تبدیل کردم ... اول از همه می خوام بدونم که مشکلی که نداره ؟
بد اینکه کد خطا رو چطوری بر گردونم ؟
و لطفا دریافت SMS و همچنین Delivery رو هم بهش اضافه کنید لطفا
و شنیدم میشه بجای Delivery فرستنده یک پیام دلخواه واسش ارسال کرد مثل برنامه 90 آیا با Magfa هم می شه ؟ اگه می شه چطوری ...

من بررسی کردم متوجه شدم پکیجی که از مگفا خریده بودم Webservise نداشت که مجبور شدم اونم سفارش بدم ... ولی تحقیق کردم و دیدم با همون پکیج ساده هم می شه ارسال SMS داشت ... از طریق ارسال یک سری پارامتر به صورت URL به Panel مگفا ... 
اگه از این روش هم اطلاع دارین لطفا کمکم کنید
ممنون

----------


## net_ved

من چک کردم نرم افزار پگاه سیستم بدون اینکه از پکیج Webservise استفاده کنه و فقط با داشتن یک پکیج معمولی داره اس ام اس ارسال می کنه ... پس شدنی هست ... کسی می دونه چطوری؟

----------


## net_ved

پیوست مشکل بالا این PDF رو پیدا کردم ولی کمی گنگه ... کسی قبلا با این روش کار کرده؟

----------


## net_ved

من تازه از Delphi به C#‎ اومدم ... لطفا کمکم کنید
اگه می شه به کدی که نوشتم کد اعلام خطا اضافه کنید . یعنی اگه خطایی رخ داد مثل اشتباه بودن Pass

----------


## abadanboy

با سلام 
1- شرمنده ما اسباب کشی داشتیم یه 2 هفته هست که به سایت نیومدم 
2- برای در یافت با همون pdf  ترافیک می تونی در یافت داشته باشی 
خیلی راحته اگه با asp.net  کار کرده باشی 
سرور مگفا به صورت اتوماتیک url که شما ساختین رو چک می کنه (هر 5 دقیقه ) و شما می تونید اطلاعات رو از اون در یافت و تو دیتابیس خودتون در وب سایت خود ذخیره کنید.
3- در مورد Delivery  باید بگم که وقتی فراخونی می کنید اگه Deliver شده باشه پیام شما یه id به شما بر می گردونه و اگه ایدی (8-10 ) رقمی بر نگردونه به کد خطا میده پس نتیجتن اگه ایدی برگردونه شما هر کاری می تونیین باش بکنین
4- مثل برنامه 90 می شه کار کرد ربطی به مگفا ، آتیه داده پرداز و یا رهیاب هم نداره به سیستم خودت بستگی داره که این قابلیت رو داشته باشه که بتونه جواب ارسال کنه 
به جای Delivery  نمی شه چیزی فرستاد Delivery   مخابرات می فرسته واسه کسی که sms زده 

موفق باشی

----------


## flash_mx

با سلام

كسي ميدونه چطور ميشه در اس ام اس كه توسط وب سرويس ارسال ميشه مي تونيم Enter  بزنيم

مثلا اس ام اس در موبايل به صورت زير دريافت شه:

Your password is : 12114145
www.barnamenevis.ir
thanks

----------


## alireza_raj

سلام خسته نباشید همگی  :لبخند: راستش من دارم یه برنامه می نویسم با سی شارپ برای یه شرکت که بتونه این نرم افزار ارسال و دریافت اس ام اس رو بفروشه . حالا چندتا سوال هست . یکی اینکه بعضی شرکت ها به مگفا وصلن با سرور خودشنون . یعنی خودشون سرور دارن و از طریق سرور خودشون ارسال میکنن بعد میرسه به مگفا . چه نیازی به سرور هست ؟ بعد من اگه یه شماره 14 یا کمتر رقمی از حالا شرکت های در این رابطه بگیرم آیا می تونم با همین یه شماره دریافت هم داشه باشم.یعنی بفروشم به چند نفر بعد مثلا یه مشتری میخادلیست قیمت بگیره به این شماره اس بزنه و لیستشو بگیره و یه شرکت دیگه به داره از همین نرم افزار استفاده میکنه و با همین شماره بعد اونم مشتریش به اس بزنه و دریافت خواص خودش رو داشته باشه؟یا باید برای همچین کاری خط مجزا برای هر مشتری تهیه کرد؟واقعا ممنون میشم :لبخند:  :لبخند:

----------


## behrad110

دوستان زحمت کشیدند کد ارسال رو نوشتن .
1) اساتید اگه لطف کنن یک کد هم برای  دریافتsms بذارن خیلی ممنون میشم ؟
2) حتما برای دریافت باید از web application استفاده کرد ؟
با تشکر

----------


## aminrocker

سلام به همه 
 من در ارسال با مگفا مشکل ندارم اما برای دریافت  باید از متد getallmesages استفاده کنم که دو تا ورودی داره اولیش دامین هست و دومیش تعداد message های دریافتی کدی که نوشتم اینه 

SSQ.Credentials = new NetworkCredential("name karbar", "password");
objarrey.Text= SSQ.getAllMessages("domain", 1);
 for (int i = 0; i < objarrey; i++)
                {
                   
                    richTextBox1.Text += objarrey[i].ToString() + " , ";
                }



اما متنی که در تکست باکس میاد اینه
magfa.com.magfa.webservice.CustomerReturnIncomingF  ormat

----------


## hercules_3d

برای اینکه بشه یه وب سرویس خودوم بنویسم برای همین ارسال و دریافت پیامک از طریق اینترنت باید چیکار کرد؟

----------


## tazaree

گمانم باید با مخابرات طرف معامله بشید

----------


## mohsena2008

این سایت رو ببین
هم وب سرویس داره و هم api
پشتیبانیش هم عالیه
من باهاش کار کردم
حتی می تونی نمایندگیش رو بگیری
www.bssms.com

----------


## reza_Sa

با سلام 

مشکل من اینه که
 [QUOTE]روی پروژه کلیک راست می کنی و گزینه add web refrence رو انتخاب می کنی و بعد تو کادری که url می خواد آدرس زیر رو وارد می کنی و صبر می کنی تا لود بشه وقتی لود شد کزینه add refrence رو می زنی و همه چی حله. به همین راحتی[/
QUOTE]

بعد از این مرحله چیزی به نام com.magfa.webservice به پروژه اضافه نمیشه 
بلکه webservice1 رو دارم 

بنابر این using com.magfa.webservice; رو هم نمی تونم استفاده کنم ، باید اسم رو به صورت خاصی وارد کنم ؟

، وقتی هم که می خوام از همون webservice1 استفاده کنم ، چیزی به نام SoapSmsQueuableImplementationService() درش وجود نداره 

Dim wsClient As New magfa.SoapSmsQueuableImplementationClient

چیزی که هست به نظر میاد اینه اونم توابعش با اونی که تو مثال هست فرق می کنه 
کسی می تونه کمک کنه؟

----------


## microsona

سلام
من از یک شرکت وب سرویس گرفتم ، راهنمای خوبی براش نوشتند
مشکلی هم داشتی می تونی زنگ بزنی بپرسی .
شاید بتونه کمکتون بکنه
من برای یک سایت گرفتم  - کار می کنم
http://dl.parsgreen.com/files/doc/sm...B-SERVICE2.pdf

----------


## shaki_phd

برنامه كلاينت من به زبان C#‎  كدنويسي شده است و متاسفانه هنگام برقراري ارتباط دچار مشكل مي شود و  با پيغام خطاي زير 
روبرو مي شود  
The HTTP request is unauthorized with client authentication scheme 'Anonymous'. The authentication header received from 
the server was 'Basic realm="AXIS"'  
با توجه به پيغام خطا دليل مي تواند مشكل در ارسال user pass از طريق header باشد   
كارشناسان پشتيباني مگفا پيشنهاد دادند كه شبيه سمپل موجود در سايت اطلاعات ارسال شود كه متاسفانه پروژه هاي سمپل موجود در سايت 
هم با ورژن وب سرويس همخواني ندارند (  تعداد كلاس ها و ... يكي نيست)  
دوستان كسي ميدونه من چگونه ميتونم اين username password را چگونه به وب سرويس مگفا ارسال كنم

----------


## Rambod

سئوالتون مربوط به چندین سال پیش میشه. ولی چون من خودم به این مشکل برخورد کردم و راه حل رو پیدا کردم اینجا میذارم تا اگه کسی مشکلی داشت، مثل من یه روز کامل علاف نشه! اول اینکه در فایل web.config باید تگهای زیر رو داشته باشید:

  <binding name="TSOAPSoapBinding">
          <security mode="Transport">
            <transport clientCredentialType="Basic" proxyCredentialType="None"
                       realm="AXIS" />
          </security>
 </binding>


دوم اینکه نحوه ارسال یوزرنیم و پسورد اینجوریه:

  var sms = new MagfaSMS.SoapSmsQueuableImplementationClient();
            string[] msgbody = { "This is a test" };
            string[] recp = { "0912xxxx"};
            string[] sender = { "3000xxx" };
            
            sms.ClientCredentials.UserName.UserName = "username";
            sms.ClientCredentials.UserName.Password = "password";
            sms.enqueue("yourdomain", msgbody, recp, sender, null, null, null, null, null);

----------


## negineg

سلام میدونم خیلی سال گذشته و من دقیقا یک روزه علافم پشتیبانیشونم به هیچ دردی نمیخوره من از کد شما استفاده کردم اما بخش web config خطا میده میشه راهنماییم کنید که چطور مشکل رو حل کنم

 The configuration section 'binding' cannot be read because it is missing a section declaration

----------

