智慧云信

使用Delphi语言调用短信接口发送验证码短信教程

Delphi语言对接验证码短信接口DEMO示例

圆点

使用Delphi语言调用短信接口发送验证码短信教程(图1)

注册、登录、交易这些场景里,短信验证码是常用的验证手段。这篇文章讲怎么用 Delphi 调用短信接口,实现验证码短信的发送。

准备工作

开始之前,先确认已经注册短信服务商(本例用的是 3yit.com),并在开发者文档里查看相关接口信息,包括 sp_idpassword(或 signature)、API 地址等。

获取接口参数

登录智慧云信官网,选择对应的产品(如【验证码】),在上方选项卡中点击【开发者】→【HTTP开发文档】,就能看到具体的 API 方法名称,以及各参数的 key 和对应值,通常包括 sp_idmobilecontentpassword 等。各参数含义如下:

  • sp_id:产品编号,全局唯一,一般由 6 位数字组成。
  • mobile:接收短信的手机号码。
  • content:短信内容,包含签名和正文。例如“【智慧云信】您的验证码是456790,请妥善保管”,其中【智慧云信】是签名,需在签名报备中申请;后面的提示语是短信模板,需在模板报备中申请,审核通过后才能发送。
  • password:用 SP_ID 密码经 MD5 加密后生成的接口密码(非登录密码),由 32 位随机字符串组成。

创建 Delphi 项目

新建一个 VCL Forms Application 项目,界面上放一个发送短信的按钮和一个显示发送结果的文本框。

添加 HTTP 请求组件

Delphi 的 HTTP 请求组件不少,比如 Indy 的 TIdHTTP,以及 Windows 10 及以上版本内置的 TNetHTTPClient。本教程以 TIdHTTP 为例。先在 IDE 的 “Component Palette” 面板里,右键点击 “Additional” 或 “Indy Projects” 区域,选 “Add Indy Components to Palette”,在弹出的对话框中勾选 TIdHTTP,点 “OK”。

编写发送短信代码

在按钮的点击事件里写发送逻辑:

procedure TForm1.ButtonSendClick(Sender: TObject);
var
idHTTP: TIdHTTP;
params: TStringList;
response: string;
jsonResult: TJSONObject;
// ... 其他变量
begin
// 初始化IdHTTP组件
idHTTP := TIdHTTP.Create(nil);
try
// 构造请求参数
params := TStringList.Create;
try
params.Add('sp_id=' + spIdEdit.Text); // sp_id文本框中的值
params.Add('mobile=' + mobileEdit.Text); // 手机号文本框中的值
params.Add('content=' + '【签名】验证码' + IntToStr(Random(1000000))); // 生成随机验证码
// 根据需要选择使用password或signature
if UsePasswordCheckBox.Checked then
params.Add('password=' + md5Hash(passwordEdit.Text)); // 假设md5Hash函数用于计算MD5值
else
params.Add('signature=' + signatureEdit.Text); // 签名文本框中的值
// 如果有扩展号,则添加
if Trim(extEdit.Text) <> '' then
params.Add('ext=' + extEdit.Text);
// 发送POST请求
response := idHTTP.Post('https://api.3yit.com/api/send-sms-single', params.DelimitedText, nil);
// 解析JSON响应
jsonResult := TJSONObject.ParseJSONValue(response) as TJSONObject;
try
if jsonResult.GetValue<Integer>('code') = 0 then
ResultText.Text := '短信发送成功,msg_id: ' + jsonResult.GetValue<string>('msg_id');
else
ResultText.Text := '短信发送失败:' + jsonResult.GetValue<string>('msg');
finally
jsonResult.Free;
end;
finally
params.Free;
end;
finally
idHTTP.Free;
end;
end;
// 假设的MD5计算函数(需要您自己实现或使用第三方库)
function md5Hash(const input: string): string;
begin
// 实现MD5计算逻辑...
Result := '...'; // 返回计算后的MD5值
end;

注意:代码里的 md5Hash 是演示用的假设函数,实际项目要用 Delphi 的加密库或第三方库实现 MD5 计算。

测试与调试

代码写完就可以运行测试。测试前确认 sp_idmobilepassword(或 signature)等参数已填对。发送成功的话,文本框里会显示“短信发送成功”和返回的 msg_id;失败则显示错误信息。

总结

用 Delphi 调短信接口发验证码,流程就是建项目、加 HTTP 组件、写点击事件里的发送逻辑、跑起来测一遍。实际项目里按自己的界面和业务需求调整即可。

其他语言教程:PHP · Java · ASP · ASP.NET(C#) · JSP · Node.js · Go · Python · Ruby · Shell · VB · C++ · C。更多信息见短信API接入指南

代码里的 API 地址、账号和密码替换成你自己的就能跑通。如果还没有账号,去智慧云信官网注册一个,注册就能免费测试,验证码、通知、营销短信都支持。

内容可信度说明

作者:智慧云信通信技术团队

技术审核:国际短信与号码检测产品组

最后更新:2026-08-13

适用范围:国际短信、国际验证码短信、国际语音筛单、空号检测、号码实时检测等出海通信与号码检测场景。

本文结合智慧云信平台产品能力、客户接入问题和通道运营经验整理。不同国家/地区的 Sender ID、模板审核、计费方式和合规要求可能变化,实际发送前建议以当前通道审核与项目沟通结果为准。