【近况】杂事+分享阿里大于短信验证码的完整实现…
2018-06-17 18:57:53来源:未知 阅读 ()
最近一直在忙其他事情,FOL停了好久,汗。。。
1、上个月帮朋友搞了个微信的公众号,然后因为公众号要做些用户管理的,又去把短信验证这块做了一下,用的是阿里大于的服务。期间被sign码拖了两天,总算是搞定了。等下把代码分享一下。
2、公众号的事情剩下一些页面的工作没做,因为朋友那边一直没提供页面内容,也没办法做。刚好回老家喝酒的时候,堂弟那边说要帮他做个房产审批小工具,4-5年没做这种东西了,以为1-2天能搞定,没想到又要搞授权、又要分级审批,还有各种打印、导出excel,给的数据又乱,还得分析、提取老旧数据,这一来头头尾尾又去了5天。今天刚好台风天待家里,总算把所有功能全搞完了。难得清闲一下。
3、接下去还是继续准备把微信公众号这个事情给做完,再继续FOL了。等公众号这个做完,再发一篇介绍delphi开发微信公众号的。
分享一下阿里大于的短信验证码实现,还是贴代码。
1、注意:uses System.Hash;
2、Delphi XE10.1
3、在盒子那边发过,那边有些同学在讨论,有问题可以去那边看看。传送门
4、代码如下
procedure TForm1.Button1Click(Sender: TObject); var lvSecret: string; lvStrings: TStringList; i: Integer; lvSign: string; lvMD5: THashMD5; lvResponse: TStringStream; begin lvStrings:= TStringList.Create; lvResponse:= TStringStream.Create; try lvSecret:= Edit3.Text; //加密用到的参数就这些,不要乱加参数 lvStrings.Add('app_key'+Edit2.Text); lvStrings.Add('format'+'xml'); lvStrings.Add('method'+'alibaba.aliqin.fc.sms.num.send'); lvStrings.Add('sign_method'+'md5'); lvStrings.Add('timestamp'+'2016-09-17 21:35:06'); lvStrings.Add('v'+'2.0'); lvStrings.Add('rec_num'+Edit6.Text); lvStrings.Add('sms_free_sign_name'+'个人测试'); lvStrings.Add('sms_param'+Edit5.Text); lvStrings.Add('sms_template_code'+Edit4.Text); lvStrings.Add('sms_type'+'normal'); lvStrings.Sort; for i:= 0 to lvStrings.Count -1 do lvSign:= lvSign + lvStrings[i]; lvSign:= lvSecret + lvSign + lvSecret; //加密前的串,格式是:Secret + 拼装的参数名参数值串 + Secret lvSign:= UpperCase(lvMD5.GetHashString(lvSign)); //按照阿里大于的帮助文档组装加密后得到的Sign,很多人都卡这里 Memo1.Lines.Add('sign='+lvSign); lvStrings.Clear; lvStrings.Add('app_key='+edit2.Text); //阿里大于后台的app_key lvStrings.Add('format='+'xml'); //这里选择xml格式,也可以用json lvStrings.Add('method='+'alibaba.aliqin.fc.sms.num.send'); //短信发送API名称,固定,不要变 lvStrings.Add('sign_method='+'md5'); //加密方法,这里选择md5 lvStrings.Add('timestamp='+'2016-09-17 21:35:06'); lvStrings.Add('v='+'2.0'); lvStrings.Add('rec_num='+Edit6.Text); //要接收的手机号码,有多个用英文逗号隔开 lvStrings.Add('sms_free_sign_name='+'个人测试'); //阿里大于后台申请的短信签名名称 lvStrings.Add('sms_param='+Edit5.Text); //edit5.text:= '{"code":"5858"}' lvStrings.Add('sms_template_code='+Edit4.Text); //阿里大于后台申请的短信模板,我的格式是:您的验证码${code},60秒内输入有效。 lvStrings.Add('sms_type='+'normal'); lvStrings.Add('sign='+lvSign); IdHTTP1.ReadTimeout:= 3000; IdHTTP1.AllowCookies:= False; IdHTTP1.Request.ContentType:= 'application/x-www-form-urlencoded;charset=utf-8'; IdHTTP1.Post(Edit1.Text,lvStrings,lvResponse); Memo1.Lines.Add('respon_se='+lvResponse.DataString); finally lvResponse.Free; lvStrings.Free; end; end;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- HO引擎近况20190110 2019-01-11
- 针对MSHFlexGrid的一系列通用方法-项目中实践代码分享 2018-06-17
- 经验分享:CSS浮动(float,clear)通俗讲解 2018-06-17
- 關於NPOI的一點補充和示例 2018-06-17
- 最近用Timer踩了一个坑,分享一下避免别人继续踩 2018-06-17
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash