推荐一个简单好对接的DELPHI语言的短信demo
//接口类型:互亿无线触发短信接口,支持发送验证码短信、订单通知短信等。
//账户注册:请通过该地址开通账户 http://user.ihuyi.com/?DKimmu
//注意事项:
//(1)调试期间,请使用用系统默认的短信内容:您的验证码是:【变量】。请不要把验证码泄露给其他人。
//(2)请使用 用户名 及 APIkey来调用接口,APIkey在会员中心可以获取;
//(3)该代码仅供接入互亿无线短信接口参考使用,客户可根据实际需要自行编写;
//************************************************************************ //
// The types declared in this file weregenerated from data read from the
// WSDL File described below:
// WSDL :http://106.ihuyi.com/webservice/sms.php?wsdl
// >Import : http://106.ihuyi.com/webservice/sms.php?wsdl:0
// Encoding : utf-8
// Version : 1.0
// (2013/11/26 10:37:24 - - $Rev: 10138$)
//************************************************************************ //
unit sms;
interface
uses InvokeRegistry, SOAPHTTPClient,Types, XSBuiltIns;
const
IS_OPTN = $0001;
IS_REF = $0080;
type
//************************************************************************ //
// The following types, referred to in the WSDL document are not beingrepresented
//in this file. They are either aliases[@] of other types represented or werereferred
// to but never[!] declared in the document. The types from the lattercategory
// typically map to predefined/known XML or Borland types; however, theycould also
// indicate incorrect WSDL documents that failed to declare or import aschema type.
//************************************************************************ //
// !:int -"http://www.w3.org/2001/XMLSchema"[Gbl]
// !:string -"http://www.w3.org/2001/XMLSchema"[Gbl]
// !:srting -"http://www.w3.org/2001/XMLSchema"[Gbl]
SubmitResult = class; {"http://106.ihuyi.com/"[GblCplx] }
ChangePasswordResult = class; { "http://106.ihuyi.com/"[GblCplx]}
GetNumResult = class; {"http://106.ihuyi.com/"[GblCplx] }
VersionInfoResult = class; {"http://106.ihuyi.com/"[GblCplx] }
//************************************************************************ //
// XML : SubmitResult,global,
// Namespace : http://106.ihuyi.com/
//************************************************************************ //
SubmitResult = class(TRemotable)
private
Fcode: Integer;
Fmsg: WideString;
Fsmsid: Integer;
published
property code: Integer read Fcode write Fcode;
property msg: WideString read Fmsg write Fmsg;
property smsid: Integer readFsmsid write Fsmsid;
end;
//************************************************************************ //
// XML :ChangePasswordResult, global,
// Namespace : http://106.ihuyi.com/
// ************************************************************************//
ChangePasswordResult = class(TRemotable)
private
Fcode: Integer;
Fmsg: WideString;
published
property code: Integer readFcode write Fcode;
property msg: WideString read Fmsg write Fmsg;
end;
//************************************************************************ //
// XML : GetNumResult,global,
// Namespace : http://106.ihuyi.com/
//************************************************************************ //
GetNumResult = class(TRemotable)
private
Fcode: Integer;
Fmsg: WideString;
Fnum: Integer;
published
property code: Integer readFcode write Fcode;
property msg: WideString read Fmsg write Fmsg;
property num: Integer read Fnum write Fnum;
end;
//************************************************************************ //
// XML : VersionInfoResult,global,
// Namespace : http://106.ihuyi.com/
//************************************************************************ //
VersionInfoResult = class(TRemotable)
private
Fmsg: WideString;
published
property msg: WideString readFmsg write Fmsg;
end;
// ************************************************************************//
// Namespace : http://106.ihuyi.com/
// soapAction: http://106.ihuyi.com/%operationName%
// transport : http://schemas.xmlsoap.org/soap/http
// style : document
// binding : smsSoap
// service : sms
// port : smsSoap
// URL :http://106.ihuyi.com/webservice/sms.php?smsService
//************************************************************************ //
smsSoap = interface(IInvokable)
['{228902AE-4B53-39C9-05CA-F389FEE82174}']
function Submit(const account:WideString; const password: WideString; const mobile: WideString; constcontent: WideString): SubmitResult; stdcall;
function ChangePassword(constaccount: WideString; const password: WideString; const newpassword:WideString): ChangePasswordResult; stdcall;
function GetNum(const account:WideString; const password: WideString): GetNumResult; stdcall;
function VersionInfo:VersionInfoResult; stdcall;
end;
function GetsmsSoap(UseWSDL:Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): smsSoap;
implementation
uses SysUtils;
function GetsmsSoap(UseWSDL: Boolean;Addr: string; HTTPRIO: THTTPRIO): smsSoap;
const
defWSDL = 'http://106.ihuyi.com/webservice/sms.php?wsdl';
defURL ='http://106.ihuyi.com/webservice/sms.php?smsService';
defSvc = 'sms';
defPrt = 'smsSoap';
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 smsSoap);
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(smsSoap),'http://106.ihuyi.com/', 'utf-8');
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(smsSoap),'http://106.ihuyi.com/%operationName%');
InvRegistry.RegisterInvokeOptions(TypeInfo(smsSoap), ioDocument);
RemClassRegistry.RegisterXSClass(SubmitResult, 'http://106.ihuyi.com/','SubmitResult');
RemClassRegistry.RegisterXSClass(ChangePasswordResult,'http://106.ihuyi.com/', 'ChangePasswordResult');
RemClassRegistry.RegisterXSClass(GetNumResult, 'http://106.ihuyi.com/','GetNumResult');
RemClassRegistry.RegisterXSClass(VersionInfoResult, 'http://106.ihuyi.com/','VersionInfoResult');
end.