# Native Code > برنامه نویسی در Delphi > مباحث عمومی دلفی و پاسکال > سوال: نحوه ارتباط  برنامه به زبان دلفی با وب سرویس ؟

## patomat59

با سلام
من می خوام از دلفی به یک وب سرویس  وصل شم ولی با خطا مواجه میشم نمونه کدی هم که نوشتم براتون می ذارم . لطفا در این زمینه راهنمایی بفرمایید.
مسیر وب سرویس 

http://webservice.tivasms.ir/tivauseraccount.asmx?wsdl
می تونین متد TestDelphi  رو هم برا چک استفاده کنین .
 مشکل اینجاست که نمی تونه پارامتری به متدها ارسال کنه .

----------


## BORHAN TEC

سلام



> می تونین متد TestDelphi رو هم برا چک استفاده کنین .


متدی با این نام در وب سرویس وجود ندارد!  :متفکر:

----------


## patomat59

تشکر از توجه تون
این لینک wsdl من هست می تونین متدهاش رو ببینین
http://webservice.tivasms.ir/tivauseraccount.asmx?wsdl

----------


## patomat59

با سلام مجدد
دوستان از طریق برنامه های دیگه مثل php ، asp ، java ، vb6 هم تونستن به وب سرویس وصل شن و مسئله ما سر ارتباط دلفی با وب سرویس مون هست .
من Sample asp.net برنامه رو هم می ذارم تا اگه نیاز بود بررسی کنین.
باز هم از توجه تون ممنون.

----------


## BORHAN TEC

قبل از هر چیز باید توجه داشته باشید که وب سرویسی که نوشته اید مشکل داره. کافیه که به آدرس زیر بروید و مشکل را ببینید و برای ادامه کار خطای مربوطه را رفع کنید:
http://webservice.tivasms.ir/tivauseraccount.asmx
در ضمن من تونستم با دلفی به وبسرویس وصل بشم ولی حتماً خطای مربوطه را رفع کنید. در مورد ارتباط با وب سرویس در دلفی هم من قبلاً ویدئویی را در لینک زیر قرار داده ام که می توانید از آن استفاده کنید:
http://www.irstu.com/?p=3461
اگر باز هم مشکلی بود همین تاپیک را ادامه دهید تا دوستان راهنمایی کنند.

----------


## patomat59

مشکل برطرف شد الان می تونین تست کنین.

----------


## BORHAN TEC

الان هیچ مشکلی وجود نداره. 
این هم نتیجه:
اگر عبارت "Delphi" را به متد TestDelphi ارسال کنیم نتیجه برگشتی "Hello Delphi Hello" خواهد بود.

----------


## patomat59

با سلام مجدد
دوستان من یه برنامه exe هم می ذارم برا تست برا اونایی که احتمالا visual studio رو سیستم شون نصب نیست
پیشاپیش از توجه تون ممنون.

----------


## BORHAN TEC

> دوستان من یه برنامه exe هم می ذارم برا تست برا اونایی که احتمالا visual studio رو سیستم شون نصب نیست


من متوجه نمی شوم. یعنی باز هم مشکلی دارید که این فایل را قرار داده اید؟  :متفکر:

----------


## یوسف زالی

اشکال از Importer ورژن های قبلی دلفی هست که با هر نوع WSDLی سازگاری کامل نداره.
من مورد شما رو روی دو نسخه XE و 7 تست کردم.
یونیت ساخته شده در ورژن 7 یک خط لازم داره:

  InvRegistry.RegisterInvokeOptions(TypeInfo(TivaUse  rAccountSoap), ioDocument);


به همین دلیل بود که پارامتر هاتون رو نمی تونستید دریافت کنید.
متن کامل یونیت رو براتون می گذارم.
کافیه اون رو در اختیار برنامه نویس هاتون قرار بدید.
روی دلفی 7 و دلفی XE هر دو جواب گرفتم.
موفق باشید.

unit tivauseraccount;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

type
  TivaUserAccountSoap = interface(IInvokable)
  ['{72E54176-A5D4-8E9D-B1E1-1ABA56831FAC}']
    function  TestDelphi(const test: WideString): WideString; stdcall;
    function  UpdateTivaUserPass(const lastuser: WideString; const lastpass: WideString; const user: WideString; const pass: WideString): WideString; stdcall;
    function  GetCreditInfo(const username: WideString; const password: WideString): WideString; stdcall;
    function  SendSMS(const username: WideString; const password: WideString; const messagebodies: WideString; const sender: WideString; const recipientNumbers_ARRAY: WideString): WideString; stdcall;
    function  SendSMSWithId(const username: WideString; const password: WideString; const messagebodies: WideString; const sender: WideString; const recipientNumbers_ARRAY: WideString): WideString; stdcall;
    function  GetMessageStatus(const Refrences: WideString): WideString; stdcall;
    function  GetMessageStatusWithId(const SendId: WideString): WideString; stdcall;
    function  SendPPSMS(const username: WideString; const password: WideString; const messagebodies_Array: WideString; const sender: WideString; const recipientNumbers_ARRAY: WideString): WideString; stdcall;
    function  SendPPSMSWithId(const username: WideString; const password: WideString; const messagebodies_Array: WideString; const sender: WideString; const recipientNumbers_ARRAY: WideString): WideString; stdcall;
    function  DeliveryRefresh(const username: WideString; const password: WideString): WideString; stdcall;
    function  GetLastDeliveryStatus(const username: WideString; const password: WideString): WideString; stdcall;
    function  GetUserInfo(const username: WideString; const password: WideString): WideString; stdcall;
    function  UserPermission(const username: WideString; const password: WideString): WideString; stdcall;
    function  GetUnReadReceivedSMS(const username: WideString; const password: WideString; const phonenumber: WideString): WideString; stdcall;
    function  GetReceivedSMSWithStatus(const username: WideString; const password: WideString; const phonenumber: WideString; const status: Integer): WideString; stdcall;
    function  GetTopReceivedSMS(const username: WideString; const password: WideString; const phonenumber: WideString; const status: Integer; const TopSender: Integer): WideString; stdcall;
    function  GetReceivedSMSWithDate(const username: WideString; const password: WideString; const phonenumber: WideString; const status: Integer; const FromDate: WideString; const ToDate: WideString): WideString; stdcall;
    function  NumberConfirm(const username: WideString; const password: WideString; const number: WideString): WideString; stdcall;
  end;

function GetTivaUserAccountSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): TivaUserAccountSoap;

implementation

function GetTivaUserAccountSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): TivaUserAccountSoap;
const
  defWSDL = 'http://webservice.tivasms.ir/tivauseraccount.asmx?wsdl';
  defURL  = 'http://webservice.tivasms.ir/tivauseraccount.asmx';
  defSvc  = 'TivaUserAccount';
  defPrt  = 'TivaUserAccountSoap';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as TivaUserAccountSoap);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;

initialization
  InvRegistry.RegisterInterface(TypeInfo(TivaUserAcc  ountSoap), 'http://webservice.TivaSMS.ir', 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(Tiv  aUserAccountSoap), 'http://webservice.TivaSMS.ir/%operationName%');
{Here was your problem in old versions}
  InvRegistry.RegisterInvokeOptions(TypeInfo(TivaUse  rAccountSoap), ioDocument);
end.

----------


## patomat59

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

----------


## patomat59

> من متوجه نمی شوم. یعنی باز هم مشکلی دارید که این فایل را قرار داده اید؟


 بله آقای عشایری ، من با دلفی 7 می خوام وصل شم که خطا میده.

----------


## BORHAN TEC

> تست کردم ولی باز هم همون خطا رو داد. امکانش هست همه فایل های پروژه رو آپلود کنین ؟


یک پروژه نمونه ضمیمه شد. نسخه دلفی مورد استفاده در این پروژه XE3 است.

----------


## یوسف زالی

با اجازه شاهین جان نمونه دلفی 7 هم ضمیمه شد.

----------


## patomat59

از لطف دوستان بینهایت سپاسگذارم.  عذرخواهی به خاطر این پست از مدیران سایت و بخش ، چون دوستان دلفی کار کمک زیادی به من کردن و فقط دکمه تشکر کافی نبود :)

----------


## aidin_y

> با اجازه شاهین جان نمونه دلفی 7 هم ضمیمه شد.


با تشکر از شما استاد گرامی

من میخوام تو دلفی6 اجراش کنم خط زیر رو ارورو میده:
تصویر اول مربوط به یونیت2 

تصویر دوم هم هنگام اجراست که خطا میده

منون میشم اگه راهنمایی بفرمایید

----------


## یوسف زالی

متاسفانه بنده دلفی 6 ندارم ولی ظاهرا این ایراد به دلیل تفاوت ورژن های RIO بوجود میاد.
اون خطوط رو کامنت کنید دوباره تست کنید ببینید درست می شه یا نه.
 در این صورت باید دوباره بررسی کنیم..

----------


## Valadi

با سلام 
مشكلي كه در وب سرويس ها است در دلفي 2009 به پايين ساپورت نكردن soap 1.2 

اما براي رفع مشكل 2 تا راه حل 
1 - استفاده از xml 
2 - جهت استفاده از سرويس پيامك مي توني از sms server  خودم كه از دلفي 6 تا XE4 ساپورته

----------


## یوسف زالی

دوست من اگر بنا به تبلیغ باشه بنده از دلفی 4 تا XE4 رو ساپورت دارم، مولتی ترد، مولتی سنتر، مولتی لاین. (قابلیت تعریف همزمان چندین شماره، چندین سرور ..)
قراره مشکل حل کنیم نه این که خودمون رو تبلیغ کنیم.
در خصوص استفاده از XML برای رفع مشکل توضیح بدید لطفا.

----------


## aidin_y

جناب زالی من اون دو خط رو کامنت کردم ولی بازم اجرا نشد

خطای زیر رو میده

----------


## aidin_y

اساتید کسی جواب نمیده؟
آقا هزینه اشم پرداخت میشه

----------


## hojat_y

سلام به دوستان.
من به web service وصل میشم میزان اعتبارمو میتونم بگیرم اما وقتی میخوام پیام ارسال کنم این پیغام خطا رو میده .لطفا کمکککک
11111111111111111111111111111111.JPG

----------


## sempaisaleh

با سلام
من از تكه كد زير استفاده مي كنم ارور ميده. دوستان يه نيم نگاهي بندازن.
    function  AccountCredentials(const Username: string; const Password:string): widestring; stdcall;
    function  SendMessage(const lineno: String; const body: String; const recipient: String; const messageClass: integer; const scheduleTime: String;const AccountCredentials1:AccountCredentials): WideString; stdcall;

اينم براي فراخواني.
  x.AccountCredentials('user','pass');
  ShowMessage( x.SendMessage('number','TEXT','شماره مقصد',0,'','?')

اينم لينك راهنماي استفاده از وب سرويس اين شركت.
مشكل من اينجاست كه واسه ابراز هويت بايد تو همون متد sendmassage بذارم. ميشه بگين چطوري؟ تو قسمت فراخواني جاي ؟ چي بايد بذارم؟

----------


## sempaisaleh

> با سلام
> من از تكه كد زير استفاده مي كنم ارور ميده. دوستان يه نيم نگاهي بندازن.
>     function  AccountCredentials(const Username: string; const Password:string): widestring; stdcall;
>     function  SendMessage(const lineno: String; const body: String; const recipient: String; const messageClass: integer; const scheduleTime: String;const AccountCredentials1:AccountCredentials): WideString; stdcall;
> 
> اينم براي فراخواني.
>   x.AccountCredentials('user','pass');
>   ShowMessage( x.SendMessage('number','TEXT','شماره مقصد',0,'','?')
> 
> ...


دوستان كسي نيست در اين خصوص پاسخي بده؟؟؟؟؟؟؟؟

----------


## sempaisaleh

با سلام خدمت دوستان عزيز
دوستان حل اين مساله خيلي مهمه. كسي نيست يه نگاهي بندازه؟؟؟؟؟ :ناراحت:  :افسرده:

----------


## یوسف زالی

> دوستان حل اين مساله خيلي مهمه.


البته برای شما.

یوزر پس تستی رو پیام خصوصی کنید وقت کنم بررسی می کنم.

----------


## یوسف زالی

یوزر پس رو دادید و شماره رو ندادید. خب با چی تست کنم ؟؟؟

روش کار:
- یک شی THTTPRIO از تب WebServices روی فرم بگذارید
- در خصوصیت HTTPWebNode قسمت UseUTF8InHeader رو true کنید
- در خصوصیت WSDLLocation آدرس WSDL رو وارد کنید
- روی خصوصیت Service کلیک کرده یکی را انتخاب کنید
- روی خصوصیت Port کلیک کرده یکی را انتخاب کنید
- در قسمت ارسال شبیه این کد رو بنویسید:

var
  X: AccountCredentials;
  SMS: SmsServiceSoap;
begin
  X := AccountCredentials.Create;
  X.username := '****';
  X.password := '****';

  (HTTPRIO1 as ISoapHeaders).Send(X);
  SMS := HTTPRIO1 as SmsServiceSoap;
  SMS.SendMessage('3000...', 'test', '0912...', 0, '');
end;


موفق باشید.

----------


## sempaisaleh

> یوزر پس رو دادید و شماره رو ندادید. خب با چی تست کنم ؟؟؟
> 
> روش کار:
> - یک شی THTTPRIO از تب WebServices روی فرم بگذارید
> - در خصوصیت HTTPWebNode قسمت UseUTF8InHeader رو true کنید
> - در خصوصیت WSDLLocation آدرس WSDL رو وارد کنید
> - روی خصوصیت Service کلیک کرده یکی را انتخاب کنید
> - روی خصوصیت Port کلیک کرده یکی را انتخاب کنید
> - در قسمت ارسال شبیه این کد رو بنویسید:
> ...


با سلام
با تشکر از توجهتون. از  X: AccountCredentials ارور میگیره که تعریف نشده.

----------


## یوسف زالی

خب مسلمه. یونیتی رو که generate کردید use نکردید.

----------


## sempaisaleh

با سلام
ميشه يه نمونه Demo از اين كد همراه با Unit اش بذاريد؟
با تشكر

----------


## sempaisaleh

> خب مسلمه. یونیتی رو که generate کردید use نکردید.


 با سلام
حل نشد.
ميشه يه نمونه برنامه بذاريد.
با تشكر

----------


## یوسف زالی

کافی بود یک بار ShowMessage می کردید.

var
  X: AccountCredentials;
  SMS: SmsServiceSoap;
  Ret: WsSendResponce;
begin
  X := AccountCredentials.Create;
  X.username := '72321089';
  X.password := '123456';

  (HTTPRIO1 as ISoapHeaders).Send(X);
  SMS := HTTPRIO1 as SmsServiceSoap;
  Ret := SMS.SendMessage('10009111766582', 'test', '09123780840', 0, '');

  ShowMessage(Ret.ErrorDesc);
end;

----------


## sempaisaleh

> کافی بود یک بار ShowMessage می کردید.
> 
> var
>   X: AccountCredentials;
>   SMS: SmsServiceSoap;
>   Ret: WsSendResponce;
> begin
>   X := AccountCredentials.Create;
>   X.username := '72321089';
> ...


 دوست عزيز در پست 28 هم گفته بودم از خط 2 كه نوشته X: AccountCredentials; ارور ميگيره ميگه:
 [Error] Unit1.pas(45): Undeclared identifier: 'AccountCredentials'
از خطوط 3و4 هم همينطور

----------


## یوسف زالی

من هم گفتم که یونیتتون رو یوز نکردید.
یونیتی که از طریق Importer درست کردید.
همون که کدهای اتصال و تعاریف متدها توشه.
پیام خصوصی هم ندید لطفا. همین جا پیگیری کنید.

----------


## sempaisaleh

من از دلفي 7 استفاده مي كنم. فقط يه شي soap گذاشتم كه از طريق اون سرويس و پورت رو خودش شناخه بعد از اينكه لينك wsdl‌ رو دادم بهش(گزينه importer پيدا نكردم تو دلفي 7).  اگه منظورتون از يونيت همون مثالي كه دوستان بالاتر گذاشته بودن بود گذاشتم ولي باز هم جواب نميده. ضمنا ممنون از اينكه جواب ما آماتورها رو ميديد :تشویق:

----------


## یوسف زالی

من هم دلفی 7 دارم.
پس اصلا ایمپورتی انجام نشده.
در حالی که پروژتون بازه، برید تو File -> New -> Other و از بخش WebServices آیتم WSDL Importer رو بزنید.
در کادر باز شده آدرس رو بدبد و Next و Finish کنید.
یونیتی که الان باز شد رو در یونیت فرم اصلی تون یوز کنید...

----------


## sempaisaleh

> من هم دلفی 7 دارم.
> پس اصلا ایمپورتی انجام نشده.
> در حالی که پروژتون بازه، برید تو File -> New -> Other و از بخش WebServices آیتم WSDL Importer رو بزنید.
> در کادر باز شده آدرس رو بدبد و Next و Finish کنید.
> یونیتی که الان باز شد رو در یونیت فرم اصلی تون یوز کنید...


 با تشكر از پاسخ سريعتون
از خط 12 ارور ميگيره ميگه نوع يكي نيست.
[Error] Unit1.pas(55): Incompatible types: 'WsSendResponce' and 'WideString'

----------


## sempaisaleh

قابل توجه دوستان بلاخره از خودشون يه تكه كد گرفتم ولي جواب نداد از خط 8 ارور ميگيره.
procedure TForm1.Button2Click(Sender: TObject);
var
  WS: SmsServiceSoap;
  H: AccountCredentials;
  E:string;
begin
  H := nil;
  WS := GetSmsServiceSoap;
  try
    H := AccountCredentials.Create;
    H.username := 'user1';
    H.password:='ttttttt';
    (WS as ISOAPHeaders).Send(H);
    E:=WS.SendMessage('30007211','test','936xxxxxxx',1  ,'').ErrorDesc;
    ShowMessage(E);
  finally
    FreeAndNil(H);
  end;

end;

اينم ارورش
[Error] Unit1.pas(48): Incompatible types: 'SmsService.SmsServiceSoap' and 'Unit1.SmsServiceSoap'

----------


## یوسف زالی

کدشون دقیقا با کد من یکسانه! (جز در فری کردن شی در خط آخر)
جالبه برام، البته قصدم تخریب یا تحقیر نیست، جالبه برام که شما متوجهش نشدید.
تداخلش هم برام جالبه. چون شما دوبار با دو اسم مختلف یونیت رو ساختید.
یکی از اینها رو از یوز در بیارید.
توصیه اکید هم می کنم که در اولین فرصت سری به آموزش های دلفی بزنید و از پایه خودتون رو تقویت کنید. برای کسی که چنین مشکلاتی داره، درگیر شدن با اس ام اس (منظورم استفاده از اشیای عجیب غریب با استفاده از رابط هاست) یکم زوده.
به هر جهت آرزو می کنم موفق باشید.

----------


## arsisman2006

سلام دوستان
مشکل من با ارسال sms فارسی هستش (دلفی 7)

لطفا راهنمایی کنید

----------


## یوسف زالی

سلام.
خب با دقت نمی خونید دیگه.



> - در خصوصیت HTTPWebNode قسمت UseUTF8InHeader رو true کنید

----------


## arsisman2006

ممنون از راهنمایی شما ولی
1) خصوصیت مورد نظر True هست
2) وب سرویس ، پیام رو فارسی شناسایی می کند
3) متغیر message از نوع string

ولی پیام بصورت "تست" => "ÊÓÊ" نمایش داده میشود.

لطفا راهنمایید کنید
ممنون

----------


## یوسف زالی

کاملا بستگی به دریافت کننده داره. بعید می دونم مسیج string بتونه باشه. باید widestring باشه.
یک بار دیگه importer رو ران کنید تا یونیتتون مجدد ساخته شه. اشکال پیش اومده شبیه به اشکال ansi و unicode هست.
اگر باز هم string ساخته شد، با دلفی های نسخه بالاتر بسازید و ازش استفاده کنید، یا این که دستی wide کنید.
در صورتی که مشکل همچنان وجود داشت، از شرکت ارائه دهنده درخواست نمونه کد (به هر زبانی که بود) کنید، یا اینکه نمونه پکت ارسالی رو در قالب یک xml با همون متن فارسی کنید تا استاندارد اونها رو پیاده کنید.
به نظرم بهترین راه همینه.
ارائه دهنده سرویس ملزم هست که نحوه اتصال به سرویس دهنده رو دقیق شرح بده.

----------


## arsisman2006

ممنون

1) وب سرویس ، پیام رو فارسی شناسایی می کند
2) متغیر message از نوع widestring
3) دلفی 2011 هیچ مشکلی نداره ولی 7 شناسایی نمیکنه
4) ارائه دهنده سرویس  میگه unicode باشه

لطفا راهنمایی کنید
 ممنون

----------


## یوسف زالی

1) برای تشکر از دکمه استفاده کنید.
2) WSDL + User + Pass + Number رو خصوصی پیام کنید.
3) از ارائه دهنده پکت XML رو نگرفتید.
4) مستندات و لیست ارورها رو هم بدید.

وقت داشته باشم بررسی می کنم.

----------


## sempaisaleh

> قابل توجه دوستان بلاخره از خودشون يه تكه كد گرفتم ولي جواب نداد از خط 8 ارور ميگيره.
> procedure TForm1.Button2Click(Sender: TObject);
> var
>   WS: SmsServiceSoap;
>   H: AccountCredentials;
>   E:string;
> begin
>   H := nil;
>   WS := GetSmsServiceSoap;
> ...


 با سلام خدمت دوست عزيز *You-See*
*برنامه رو از رو همين كد ها نوشتم حالا به وب سرويس وصل ميشه ولي موقع ارسال پيام ميگه: نام كاربري شما وجود ندارد. از طرف سرويس دهنده پرسيدم اين جواب رو داد. ميشه يه راهنمايي كنيد يعني چي؟
*هدر پیام ارسالی از برنامه شما بصورت زیر میباشد<?xml version="1.0"?>
<NS1:AccountCredentials xsi:type="NS1:AccountCredentials"><username xsi:type="xsd:string">test1</username>
<password xsi:type="xsd:string">pass1</password></NS1:AccountCredentials>

در صورتی که باید بصورت ذیل باشد

<?xml version="1.0" encoding="utf-8"?>


<AccountCredentials  xmlns="http://smspishkhan.ir/webservices/"><username>test1</username>
<password>pass1</password>
</AccountCredentials>
 
به نظر میرسد یونیت خود را باید جوری بسازید که 
NS1
را نداشته باشد و 
 encoding="utf-8"
را داشته باشد

----------


## یوسف زالی

من فکر می کنم کسی که وب سرویسشون رو نوشته چیز زیادی از XML نمی دونه.
این رو هم تست کردم مشکل داشت:

procedure TForm1.Button1Click(Sender: TObject);
var
  X: AccountCredentials;
  SMS: SmsServiceSoap;
  Ret: WsSendResponce;
begin
  X := AccountCredentials.Create;
  X.username := '72321089';
  X.password := '123456';

//  HTTPRIO1.SOAPHeaders.Send(X);
//  (HTTPRIO1 as ISoapHeaders).Send(X);
  SMS := HTTPRIO1 as SmsServiceSoap;
  Ret := SMS.SendMessage('10009111766582', 'test', '09123780840', 0, '');

  ShowMessage(Ret.ErrorDesc);
end;

procedure TForm1.HTTPRIO1BeforeExecute(const MethodName: String;
  var SOAPRequest: WideString);
begin
  SOAPRequest :=
 '<?xml version="1.0" encoding="utf-8"?>' +
 '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
 'xmlns:xsd="http://www.w3.org/2001/XMLSchema">' +
 '<soap:Header>' +
 '<AccountCredentials xmlns="http://smspishkhan.ir/webservices/">' +
 '<username>72321089</username>' +
 '<password>123456</password>' +
 '</AccountCredentials>' +
 '</soap:Header>' +
 '<soap:Body>' +
 '<SendMessage xmlns="http://smspishkhan.ir/webservices/">' +
 '<lineNo>10009111766582<lineNo>' +
 '<body>test</body>' +
 '<recipient>9123780840</recipient>' +
 '<messageClass>0</messageClass>' +
 '</SendMessage>' +
 '</soap:Body>' +
 '</soap:Envelope>' ;
end;

ارسال کنید ببینید بهونشون دیگه چیه

----------


## arsisman2006

سلام 
مشکل من حل شد
از شرکت kavenegar سرویس خریدم
با دلفی 7 تا 2011 تست کردم ، جواب داد

برای اتصال و استفاده از سرویس بدون استفاده از نام کاربری و رمز ، یه روش بهتری رو انتخاب کرده

----------


## sempaisaleh

> من فکر می کنم کسی که وب سرویسشون رو نوشته چیز زیادی از XML نمی دونه.
> این رو هم تست کردم مشکل داشت:
> 
> procedure TForm1.Button1Click(Sender: TObject);
> var
>   X: AccountCredentials;
>   SMS: SmsServiceSoap;
>   Ret: WsSendResponce;
> begin
> ...


 دوست عزيز نمونه برنامه اي كه فرستادم رو تست كرديد؟ از ارائه دهنده وب سرويس بهم گفتن كه باز هم هدر تغيير نكرده و هدر قبليه

----------


## sempaisaleh

> دوست عزيز نمونه برنامه اي كه فرستادم رو تست كرديد؟ از ارائه دهنده وب سرويس بهم گفتن كه باز هم هدر تغيير نكرده و هدر قبليه


 با سلام
دوستان كمكي نميتونن بكنن؟؟؟

----------


## sempaisaleh

> دوست عزيز نمونه برنامه اي كه فرستادم رو تست كرديد؟ از ارائه دهنده وب سرويس بهم گفتن كه باز هم هدر تغيير نكرده و هدر قبليه


 با سلام
دوست عزيز ميشه خودتون يه تغييري بديد. تو نمونه برنامه اي كه فرستادم هست.
چون ارائه دهنده سرويس ميگه هيچ تغييري در هدر نداشته و همون هدر قبلي ارسال شده

----------


## MOJTABAATEFEH

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

با تشکر

----------


## aliooali

باسلام خدمت شما دوستان عزیز 

من یه سورس ضمینه کردم که برای ارسال شماره 3000 هستش

لطفا بازبینیش کنید و کمکم کنید که بتونم ازش استفاده کنم و لوگین کنم به وب سرویسم و پیامک ارسال کنم 

راستی اصلا نمیدونم باید کجا آدرس وب سرویس سایت خدمات sms رو وارد کنم

با تشکر از شما استاید محترم

sms sample.part1.rar
sms sample.part2.rar
sms sample.part3.rar
sms sample.part4.rar

----------


## یوسف زالی

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

----------


## aliooali

از یکی از پست های همین سایت دانلود کردم

دوست عزیز فایل ضمینه (sms.rar)که شما ارسال کرده بودین در این تاپیک هم مشکل داشت و ارور میداد

----------


## aliooali

از اینجا دانلود کردم 

https://barnamenevis.org/showthread.p...DB%8C-30000%29

----------


## aliooali

دوست عزیز حالا من چیکار باید انجام بدم که بشه با سورس ارسال پیامک انجام بدم

----------


## یوسف زالی

آدرس WSDL سایتی که وب سرویس ارائه می ده چیه؟
اصلا با وب سرویسه یا دیوایس داره؟ چه شرکتی؟ سایت داره؟ یا با پنل سخت افزاری ارسال می کنید؟

----------


## aliooali

http://parsasms.com/webservice/v2.asmx?WSDL


شرکت اصلی قاصدک هستش


http://ghasedak-ict.com/

----------


## یوسف زالی

اون فایلی که شما گرفتید داستانش فرق داره. بگردید دنبال ارتباط با وب سرویس در دلفی، خود من نمونه اش رو هم گذاشتم.
موفق باشید.

----------


## aliooali

دوست عزیز سرچ کردم چیز درستی پیدا نکردم 

میشه نمونه سورسی برام قرار دهید تا با مطالعه اون بیشتر با وب سرویس ها آشنا بشم

----------


## Mask

وب سرویس ساده ای داره :
کدشم که معلومه :
Getv2Soap().SendSMS()
برای آشنا شدن با وب سرویس ها فیلم شاهین رو پیشنهاد میکنم.

----------


## aliooali

دوست عزیز میشه برام یه سورس نمونه ضمینه کنید

----------


## یوسف زالی

یکم هم خودتون زحمت بکشید.
نمونه کد چی؟ کدش به سادگی کدی هست که Gold گذاشت.
نمونه سورس رو هم که من گذاشتم. شروع کنید به یادگیری و تمرین و آزمون و خطا، ما هم کمک می کنیم. سوالاتون رو بپرسید. مثلا این که چکار کردید؟ به کجا رسیدید؟ کجا گیر کردید؟

----------


## aliooali

سورس sms.rar که شما ضمینه کردین باید توی کدوم خط کد یوزر و پسورد خودمو وارد کنم که به سرویس پیامکی که متعلق به خودمه متصل بشم ؟

----------


## یوسف زالی

تنبلی دارید می کنید دوست عزیز:
https://barnamenevis.org/showthread.p...=1#post1905918

----------


## aliooali

دوست عزیز سورس تست رو براتون پیام خصوصی کردن لطفا بازبینیش میکنید ؟

----------


## aliooali

دوست عزیز این ارور رو میده


http://uplod.ir/mvlmxneirps7/erroe.JPG.htm



سورس:

http://uplod.ir/i2alnruai8jg/test.rar.htm

----------


## یوسف زالی

1- در مورد پیام خصوصی می تونید نظر من رو در امضا ببینید.
2- فایلی که دادید خودتون تا حالا ران کردید؟
3- یونیت v کجاست؟
4- یوزر پس کجاست؟
5- ..

----------


## aliooali

دوست عزیز من باید سرویس و پورت رو چی قرار بدم ؟

----------


## sempaisaleh

با سلام
دوست عزيز *You-See* خسته نباشيد
چندي قبل در خصوص مشكل ارتباط با وب سرويس شركت "سامانه پيام كوتاه پيشخوان" صحبت كرده بوديم. در اين پست شما گفتيد معلوم نيست چه چيزي نوشتن. من هنوز مشكلم رو نتونستم با اون شركت حل كنم. شما راه حلي نميتونين پيشنهاد كنيد؟
يه چنين يونيتي رو اضافه كردم ولي هيچ جوابي نميده. جديدا هرچي ميذارم ميگه كاربر مورد نظر وجود ندارد.
برنامه كامل همراه با يوزر و پسورد رو هم براتون پيام خصوصي كردم
// **************************************************  ********************** //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : http://ws.smspishkhan.ir/SmsService.asmx?wsdl
// Encoding : utf-8
// Version  : 1.0
// (2013/11/04 12:56:02 È.Ù - 1.33.2.5)
// **************************************************  ********************** //

unit SmsService;

interface

uses InvokeRegistry, SOAPHTTPClient, Types, XSBuiltIns;

type

  // **************************************************  ********************** //
  // The following types, referred to in the WSDL document are not being represented
  // in this file. They are either aliases[@] of other types represented or were referred
  // to but never[!] declared in the document. The types from the latter category
  // typically map to predefined/known XML or Borland types; however, they could also 
  // indicate incorrect WSDL documents that failed to declare or import a schema type.
  // **************************************************  ********************** //
  // !:string          - "http://www.w3.org/2001/XMLSchema"
  // !:int             - "http://www.w3.org/2001/XMLSchema"
  // !:decimal         - "http://www.w3.org/2001/XMLSchema"
  // !:short           - "http://www.w3.org/2001/XMLSchema"
  // !:float           - "http://www.w3.org/2001/XMLSchema"

  AccountCredentials   = class;                 { "http://smspishkhan.ir/webservices/"[H] }
  WsResponce           = class;                 { "http://smspishkhan.ir/webservices/" }
  WsMessageInfo        = class;                 { "http://smspishkhan.ir/webservices/" }
  WsSendResponce       = class;                 { "http://smspishkhan.ir/webservices/" }
  WsListOfStringResponce = class;               { "http://smspishkhan.ir/webservices/" }
  WsScheduleInfo       = class;                 { "http://smspishkhan.ir/webservices/" }
  WsRecieveMessage     = class;                 { "http://smspishkhan.ir/webservices/" }
  WsRecieveResponce    = class;                 { "http://smspishkhan.ir/webservices/" }



  // **************************************************  ********************** //
  // Namespace : http://smspishkhan.ir/webservices/
  // **************************************************  ********************** //
  AccountCredentials = class(TSOAPHeader)
  private
    Fusername: WideString;
    Fpassword: WideString;
  published
    property username: WideString read Fusername write Fusername;
    property password: WideString read Fpassword write Fpassword;
  end;

  ArrayOfDecimal = array of TXSDecimal;         { "http://smspishkhan.ir/webservices/" }


  // **************************************************  ********************** //
  // Namespace : http://smspishkhan.ir/webservices/
  // **************************************************  ********************** //
  WsResponce = class(TRemotable)
  private
    FErrorCode: Integer;
    FErrorDesc: WideString;
  published
    property ErrorCode: Integer read FErrorCode write FErrorCode;
    property ErrorDesc: WideString read FErrorDesc write FErrorDesc;
  end;



  // **************************************************  ********************** //
  // Namespace : http://smspishkhan.ir/webservices/
  // **************************************************  ********************** //
  WsMessageInfo = class(TRemotable)
  private
    FMessagesId: TXSDecimal;
    FRecipient: WideString;
    FPartsCount: Smallint;
    FTariff: Single;
    FAmount: TXSDecimal;
    FStatus: Smallint;
    FStatusTime: WideString;
    FResponseDesc: WideString;
    FUserMessageRef: WideString;
  public
    destructor Destroy; override;
  published
    property MessagesId: TXSDecimal read FMessagesId write FMessagesId;
    property Recipient: WideString read FRecipient write FRecipient;
    property PartsCount: Smallint read FPartsCount write FPartsCount;
    property Tariff: Single read FTariff write FTariff;
    property Amount: TXSDecimal read FAmount write FAmount;
    property Status: Smallint read FStatus write FStatus;
    property StatusTime: WideString read FStatusTime write FStatusTime;
    property ResponseDesc: WideString read FResponseDesc write FResponseDesc;
    property UserMessageRef: WideString read FUserMessageRef write FUserMessageRef;
  end;

  ArrayOfWsMessageInfo = array of WsMessageInfo;   { "http://smspishkhan.ir/webservices/" }


  // **************************************************  ********************** //
  // Namespace : http://smspishkhan.ir/webservices/
  // **************************************************  ********************** //
  WsSendResponce = class(WsResponce)
  private
    FRequestId: TXSDecimal;
    FTotalCount: TXSDecimal;
    FTotalParts: TXSDecimal;
    FTotalAmount: TXSDecimal;
    FIsPartitioned: Smallint;
    FStatus: Smallint;
    FStatusTime: WideString;
    FMessages: ArrayOfWsMessageInfo;
    FSubRequestsId: ArrayOfDecimal;
  public
    destructor Destroy; override;
  published
    property RequestId: TXSDecimal read FRequestId write FRequestId;
    property TotalCount: TXSDecimal read FTotalCount write FTotalCount;
    property TotalParts: TXSDecimal read FTotalParts write FTotalParts;
    property TotalAmount: TXSDecimal read FTotalAmount write FTotalAmount;
    property IsPartitioned: Smallint read FIsPartitioned write FIsPartitioned;
    property Status: Smallint read FStatus write FStatus;
    property StatusTime: WideString read FStatusTime write FStatusTime;
    property Messages: ArrayOfWsMessageInfo read FMessages write FMessages;
    property SubRequestsId: ArrayOfDecimal read FSubRequestsId write FSubRequestsId;
  end;

  ArrayOfString = array of WideString;          { "http://smspishkhan.ir/webservices/" }


  // **************************************************  ********************** //
  // Namespace : http://smspishkhan.ir/webservices/
  // **************************************************  ********************** //
  WsListOfStringResponce = class(WsResponce)
  private
    FLines: ArrayOfString;
  published
    property Lines: ArrayOfString read FLines write FLines;
  end;



  // **************************************************  ********************** //
  // Namespace : http://smspishkhan.ir/webservices/
  // **************************************************  ********************** //
  WsScheduleInfo = class(TRemotable)
  private
    FScheduleTime: WideString;
    FIntervalPeriod: Integer;
    FIntervalCount: Integer;
    FDayStartTime: WideString;
    FDayEndTime: WideString;
  published
    property ScheduleTime: WideString read FScheduleTime write FScheduleTime;
    property IntervalPeriod: Integer read FIntervalPeriod write FIntervalPeriod;
    property IntervalCount: Integer read FIntervalCount write FIntervalCount;
    property DayStartTime: WideString read FDayStartTime write FDayStartTime;
    property DayEndTime: WideString read FDayEndTime write FDayEndTime;
  end;



  // **************************************************  ********************** //
  // Namespace : http://smspishkhan.ir/webservices/
  // **************************************************  ********************** //
  WsRecieveMessage = class(TRemotable)
  private
    FId: TXSDecimal;
    FLineNo: WideString;
    FSenderNo: WideString;
    FUDH: WideString;
    FBody: WideString;
    FEncoding: Smallint;
    FTariff: Single;
    FPartsCount: Smallint;
    FAmount: TXSDecimal;
    FRecieveTime: WideString;
  public
    destructor Destroy; override;
  published
    property Id: TXSDecimal read FId write FId;
    property LineNo: WideString read FLineNo write FLineNo;
    property SenderNo: WideString read FSenderNo write FSenderNo;
    property UDH: WideString read FUDH write FUDH;
    property Body: WideString read FBody write FBody;
    property Encoding: Smallint read FEncoding write FEncoding;
    property Tariff: Single read FTariff write FTariff;
    property PartsCount: Smallint read FPartsCount write FPartsCount;
    property Amount: TXSDecimal read FAmount write FAmount;
    property RecieveTime: WideString read FRecieveTime write FRecieveTime;
  end;

  ArrayOfWsRecieveMessage = array of WsRecieveMessage;   { "http://smspishkhan.ir/webservices/" }


  // **************************************************  ********************** //
  // Namespace : http://smspishkhan.ir/webservices/
  // **************************************************  ********************** //
  WsRecieveResponce = class(WsResponce)
  private
    FRecieveMessages: ArrayOfWsRecieveMessage;
  public
    destructor Destroy; override;
  published
    property RecieveMessages: ArrayOfWsRecieveMessage read FRecieveMessages write FRecieveMessages;
  end;


  // **************************************************  ********************** //
  // Namespace : http://smspishkhan.ir/webservices/
  // soapAction: http://smspishkhan.ir/webservices/%operationName%
  // transport : http://schemas.xmlsoap.org/soap/http
  // binding   : SmsServiceSoap
  // service   : SmsService
  // port      : SmsServiceSoap
  // URL       : http://ws.smspishkhan.ir/SmsService.asmx
  // **************************************************  ********************** //
  SmsServiceSoap = interface(IInvokable)
  ['{18256B71-4CBE-04CC-E231-F277B843141D}']
    function  SendMessage(const lineNo: WideString; const body: WideString; const recipient: WideString; const messageClass: Integer; const scheduleTime: WideString): WsSendResponce; stdcall;
    function  SendGroupMessage(const lineNo: WideString; const body: WideString; const recipients: ArrayOfString; const messageClass: Integer; const scheduleInfo: WsScheduleInfo): WsSendResponce; stdcall;
    function  GetUserLines: WsListOfStringResponce; stdcall;
    function  RecieveMessages(const lineNo: WideString; const timeFrom: WideString; const messageCount: Integer): WsRecieveResponce; stdcall;
    function  GetRequestStatus(const requestId: TXSDecimal): WsSendResponce; stdcall;
  end;

function GetSmsServiceSoap(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): SmsServiceSoap;


implementation

procedure HTTPRIO1BeforeExecute(const MethodName: String;
  var SOAPRequest: WideString);
begin
  SOAPRequest :=
 '<?xml version="1.0" encoding="utf-8"?>' +
 '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+
 // '<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"' +
 'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"' +
 'xmlns:xsd="http://www.w3.org/2001/XMLSchema">' +
 '<soap:Header>' +
 '<AccountCredentials xmlns="http://smspishkhan.ir/webservices/">' +
 '<username>user</username>' +
 '<password>pass</password>' +
 '</AccountCredentials>' +
 '</soap:Header>' +
 '<soap:Body>' +
 '<SendMessage xmlns="http://smspishkhan.ir/webservices/">' +
 '<lineNo>10000333000000<lineNo>' +
 '<body>test</body>' +
 '<recipient>9115152509</recipient>' +
 '<messageClass>0</messageClass>' +
 '</SendMessage>' +
 '</soap:Body>' +
 '</soap:Envelope>' ;
end;

function GetSmsServiceSoap(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): SmsServiceSoap;
const
  defWSDL = 'http://ws.smspishkhan.ir/SmsService.asmx?wsdl';
  defURL  = 'http://ws.smspishkhan.ir/SmsService.asmx';
  defSvc  = 'SmsService';
  defPrt  = 'SmsServiceSoap';
var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;
  if HTTPRIO = nil then
    RIO := THTTPRIO.Create(nil)
  else
    RIO := HTTPRIO;
  try
    Result := (RIO as SmsServiceSoap);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;
end;


destructor WsMessageInfo.Destroy;
begin
  if Assigned(FMessagesId) then
    FMessagesId.Free;
  if Assigned(FAmount) then
    FAmount.Free;
  inherited Destroy;
end;

destructor WsSendResponce.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(FMessages)-1 do
    if Assigned(FMessages[I]) then
      FMessages[I].Free;
  SetLength(FMessages, 0);
  for I := 0 to Length(FSubRequestsId)-1 do
    if Assigned(FSubRequestsId[I]) then
      FSubRequestsId[I].Free;
  SetLength(FSubRequestsId, 0);
  if Assigned(FRequestId) then
    FRequestId.Free;
  if Assigned(FTotalCount) then
    FTotalCount.Free;
  if Assigned(FTotalParts) then
    FTotalParts.Free;
  if Assigned(FTotalAmount) then
    FTotalAmount.Free;
  inherited Destroy;
end;

destructor WsRecieveMessage.Destroy;
begin
  if Assigned(FId) then
    FId.Free;
  if Assigned(FAmount) then
    FAmount.Free;
  inherited Destroy;
end;

destructor WsRecieveResponce.Destroy;
var
  I: Integer;
begin
  for I := 0 to Length(FRecieveMessages)-1 do
    if Assigned(FRecieveMessages[I]) then
      FRecieveMessages[I].Free;
  SetLength(FRecieveMessages, 0);
  inherited Destroy;
end;

initialization
  InvRegistry.RegisterInterface(TypeInfo(SmsServiceS  oap), 'http://smspishkhan.ir/webservices/', 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(Sms  ServiceSoap), 'http://smspishkhan.ir/webservices/%operationName%');
  InvRegistry.RegisterHeaderClass(TypeInfo(SmsServic  eSoap), AccountCredentials, 'AccountCredentials', '');
  RemClassRegistry.RegisterXSClass(AccountCredential  s, 'http://smspishkhan.ir/webservices/', 'AccountCredentials');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfDe  cimal), 'http://smspishkhan.ir/webservices/', 'ArrayOfDecimal');
  RemClassRegistry.RegisterXSClass(WsResponce, 'http://smspishkhan.ir/webservices/', 'WsResponce');
  RemClassRegistry.RegisterXSClass(WsMessageInfo, 'http://smspishkhan.ir/webservices/', 'WsMessageInfo');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfWs  MessageInfo), 'http://smspishkhan.ir/webservices/', 'ArrayOfWsMessageInfo');
  RemClassRegistry.RegisterXSClass(WsSendResponce, 'http://smspishkhan.ir/webservices/', 'WsSendResponce');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfSt  ring), 'http://smspishkhan.ir/webservices/', 'ArrayOfString');
  RemClassRegistry.RegisterXSClass(WsListOfStringRes  ponce, 'http://smspishkhan.ir/webservices/', 'WsListOfStringResponce');
  RemClassRegistry.RegisterXSClass(WsScheduleInfo, 'http://smspishkhan.ir/webservices/', 'WsScheduleInfo');
  RemClassRegistry.RegisterXSClass(WsRecieveMessage, 'http://smspishkhan.ir/webservices/', 'WsRecieveMessage');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfWs  RecieveMessage), 'http://smspishkhan.ir/webservices/', 'ArrayOfWsRecieveMessage');
  RemClassRegistry.RegisterXSClass(WsRecieveResponce  , 'http://smspishkhan.ir/webservices/', 'WsRecieveResponce'); //'http://smspishkhan.ir/webservices'

end.

----------


## Mask

با اجازه دادا یوسف :قلب:  :
دوست عزیز sempaisaleh :آخه چرا اینقدر سختش میکنید. همه چیز گویاست.
شما کافیه wsdl رو در برنامتون import کنید و در مرحله بعد با صدا زدن متد SendMessage به راحتی پیامکتون رو ارسال کنید.
عکس زیر نمایانگر راحتی کار و متدهای موردنیاز هست.
Untitled.png


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

----------


## sempaisaleh

> با اجازه دادا یوسف :
> دوست عزیز sempaisaleh :آخه چرا اینقدر سختش میکنید. همه چیز گویاست.
> شما کافیه wsdl رو در برنامتون import کنید و در مرحله بعد با صدا زدن متد SendMessage به راحتی پیامکتون رو ارسال کنید.
> عکس زیر نمایانگر راحتی کار و متدهای موردنیاز هست.
> Untitled.png
> 
> 
> و با مراجعه به این لینک در مورد پارامترهای این متد هم میتونید اطلاعات لازم ر به دست بیارید.
> البته اگه من جای شما بودم. سمپلهای دیگه به زبانهای دیگه ای که این شرکت آماده کرده رو میگرفتم و کدهاش رو مطالعه میکردم تا با پارامتره بیشتر آشنا بشوم.


سلام
با تشكر از جوابتون
همين كارهايي كه گفتيد رو كردم ولي مشكل اينجاست كه نام كاربري و رمز ورد بايد از طريق هدر بره كه منم هركاري كردم بازم هدر خالي ارسال ميشه. مقدار دهي هم كردم ولي نشد. بازم ميگه كاربر وجود ندارد.
نمونه برنامه رو براتون پيام خصوصي ميكنم

----------


## Mask

این شرکت سمپل برای زبانهای دیگه نداره.؟ که از اونا ایده بگیرید؟
..........................update
وبسرویسشون رو تست کردم. مشکل داره . درست طراحی نشده.
بهتره یه سمپل با هر زبانی دیگه ای غیر دلفی هم اگه باشه، ازشون بگیرید تا بشه روند کار رو دید.
تو شرایط عمومی و معمولی وبسرویس درست طراحی نشده. البته شاید باید کارهای اضافی دیگه ای جهت ارتباط انجام بشه . که در نگاه اول ناقص بودن وب سویس رو نشون میده.

----------


## sempaisaleh

> این شرکت سمپل برای زبانهای دیگه نداره.؟ که از اونا ایده بگیرید؟
> ..........................update
> وبسرویسشون رو تست کردم. مشکل داره . درست طراحی نشده.
> بهتره یه سمپل با هر زبانی دیگه ای غیر دلفی هم اگه باشه، ازشون بگیرید تا بشه روند کار رو دید.
> تو شرایط عمومی و معمولی وبسرویس درست طراحی نشده. البته شاید باید کارهای اضافی دیگه ای جهت ارتباط انجام بشه . که در نگاه اول ناقص بودن وب سویس رو نشون میده.


با سلام
سمپل كه نداره. اين برنامه هم خودم نوشتم. يونيت هم كه ادد شده. فقط يه فايل داره كه توضيحات دستورات توش قرار داره كه برايتان با پيام خصوصي ارسال مي كنم. 
با خود سامانه تماس ميگيرم ميگه قبلا تو دلفي مشكل داشتيم كه تونستيم حلش كنيم ولي جواب من رو كه كسي فعلا نداده.

----------


## Mask

اینو بر اساس همون راهنمای شما نوشتم.
ببینید درسته.؟

----------


## joker

ی زمانی من با این وب سرویسهای پیامکی  همین مشکلات را داشتم ، با php  سمت سرور خودم ی اسکریپت رابط نوشتم شرو کندم... :)

----------


## joker

من نگفتم چیزی کم داره :) دلفی  خداسسسسسسسسسسسسسس :قلب: 
من حال سروکله زدن نداشتم صورت مسئله را پاک کردم :)

----------


## sempaisaleh

> اینو بر اساس همون راهنمای شما نوشتم.
> ببینید درسته.؟


با سلام
نوشته : "خطاي مورد نظر يافت نشد"
نميدونم يعني چي؟؟؟؟؟
لطف كردين برنامه رو نوشتين ولي چرا سورس رو نفرستادين؟؟؟؟؟

----------


## sempaisaleh

> اینو بر اساس همون راهنمای شما نوشتم.
> ببینید درسته.؟


مشكل حل شد تو برنامه شما شماره موبايل گيرنده بايد بدون صفر باشه.
فقط لطف مي كنيد سورس رو برام بفرستيد؟؟
با تشكر

----------

