阿里云短信接口DLL版,Delphi7可用

//-----------------------------------------------------------------------------
//作者:酋长(3989850) 2017.12.12   (2020.03.31改)
//备注:自己在写DLL的时候,函数未加StdCall;参数传递时,地址一直有问题,搞了一夜才查出来。。。
//功能:阿里云短信接口
//配置文件:放置2个核心参数,通过INI文件,可以方便的更换
//预读取可执行文件目录下的SMS.INI,核心参数预读取,调用代码时,只需要调用CreateVCode
//建立随机验证码,然后再调用ALI_SendMSG,填上电话号码和参数就可以了
//设计这段代码,主要是为了短信验证码,功能已经完全实现
//因为把模板和名字都放出来了,所以不仅可以发送验证码,也可配合模板发送其他信息。
//短信发送代码段是参考 《全能地图(QQ:64445322)》的最新代码,阿里没提供DELPHI
//的SDK和DEMO,感谢 全能地图 的无私共享,不支持DELPHI7,所以用XE编译了DLL供D7调用。
//-----------------------------------------------------------------------------


unit GetALiMsg;

interface

uses SysUtils;

AliyunDysmsFullAccess

管理短信服务(SMS)的权限

AliyunDysmsReadOnlyAccess

只读访问短信服务(SMS)的权限

{-----------------------------------------------------------------------------
阿里需要2个授权,短信,分别是读取和管理授权
-----------------------------------------------------------------------------}
function ALI_SendMSG(const PhoneNumbers, TemplateParam,TemplateCode, FreeSignName :String;
                     var ResultMsg:String):Boolean;


//生成指定长度的随机验证码
function CreateVCode(sLen: Integer): string;

implementation

function ALI_SendSMS(const PhoneNumbers, TemplateParam: PAnsiChar;
                     const TemplateCode, FreeSignName :PAnsiChar;
                     var ResultMsg:PChar;Var ResultLen:integer):Boolean;stdcall;external 'AliSMS.dll';


//生成指定长度的随机验证码
function CreateVCode(sLen: Integer): string;
var
  j, k: Integer;
  strResult: string;
begin
  Result := '';
  strResult := '';
  for j := 1 to sLen do
  begin
    Randomize;
    k := Random(1000) mod 10;
    strResult := strResult + Format('%.1d', [k]);
  end;
  Result := strResult;
end;

function ALI_SendMSG(const PhoneNumbers, TemplateParam,TemplateCode, FreeSignName :String;
                     var ResultMsg:String):Boolean;
var
//  tReciveNumber,tTemplateContent,tResultMSG:string;
//  tTemplateCode, tFreeSignName :String;
//  tVCode,tStr:string;
  inReviceNumber, inTemplateContent:PAnsiChar;
  inTemplateCode, inFreeSignName ,tResultMSG:PAnsiChar;
  i:integer;
begin
  Result := False;
  tResultMSG:= allocmem(512);  //同时初始化为0
  try
    inReviceNumber := PAnsiChar(AnsiString(PhoneNumbers));
    inTemplateContent := PAnsiChar(AnsiString(TemplateParam));
    inTemplateCode := PAnsiChar(AnsiString(TemplateCode));
    inFreeSignName := PAnsiChar(AnsiString(FreeSignName));
    i := 512;
    if ALI_SendSMS( inReviceNumber, inTemplateContent,
                    inTemplateCode, InFreeSignName,
                    PChar(tResultMSG), i ) then
      Result := True;
    ResultMsg := AnsiString(tResultMSG);
  finally
    FreeMemory(tResultMSG);
  end;
end;

end.
 

下载地址:https://download.csdn.net/download/chaselife/12293417

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
修改说明: ================================================================================== 1 原只支持Delphi XE,本改为可以支持Delphi6/7,在Delphi6下编译运行通过 2 修正了原无法支持中文名称的BUG 使用示例: ================================================================================== ossTemp := TAliOssFileSystem.Create(OSS_ACCESS_ID, OSS_ASSCESS_KEY, OSS_HOSTNAME); ossTemp.ChangeVolumn(sBucketName); ossTemp.UploadFile(sLocalFileName, sOSSFileName); ossTemp.Free; 原说明: ================================================================================== 该SDK使用Delphi/Object Pascal编程语言编写,完整实现了阿里云OSS API的全部功能,并提 供了两套API:第一套API(类名:TAliOss)仿照OSS PHP SDK实现了全部函数,第二套API( 类名:TAliOssFileSystem)封装了TAliOss,并在其的基础上实现了类似于文件系统的API, 实现了包括“卷”、“文件夹”、“文件”等抽象概念,并提供相应的功能函数。 两套API面向的应用场景不同:TAliOssFileSystem适合于将OSS服务看作是一种文件系统的应 用,开发人员不必了解OSS API的内部参数及XML定义,可提高编程效率,使用方便;TAliOSS 适合于其他类型的应用,当编程人员需要更加定制化的调用或者需要更加灵活的参数设置时, 可以直接使用该SDK操作调用参数和返回值。两套API互不干扰,可以在项目中同时使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值