Delphi 一个函数实现腾讯云最新版(API3.0)短信发送

目录

一、腾讯云短信基本知识

    1. 需要在腾讯云后台注册账号

    2. 需要在腾讯云中开通短信功能

    3. 腾讯云短信版本说明

    4. 短信内容的组成

特定规范

二、短信发送函数

三、下载源代码(收费)


一、腾讯云短信基本知识

        如今我们随时都收到短信验证码,注册码等等。这是程序通过腾讯云后台发送,并不是通过手机直接发送,可以实现程序根据条件自动发送。

腾讯云短信后台发送需要具备如下条件:

    1. 需要在腾讯云后台注册账号

注册地址:登录 - 腾讯云

    2. 需要在腾讯云中开通短信功能

腾讯云短信支持公司,也支持个人,如果是公司账号,可以使用更多的关于短信的API,如果是个人账号,有一些限制,比如不能通过API增加签名等。

开通短信功能后,如果使用腾讯云SDK,则不在本文讨论范围,本文讨论的是直接使用腾讯云提供的API发送短信。那么开通了短信功能之后,还有一个非常重要的事情要做,就是设置访问密钥只有设置了访问密钥,后续函数调用才能成功,因为函数调用时需要访问密钥的。设置成功后会有两个参数: SecretId 和 SecretKey。

    3. 腾讯云短信版本说明

腾讯云短信随着时间的发展,已经产生了很多版本,目前最新的版本是 API 3.0 (2021-01-11),这个版本的前一个版本是2019-07-11,当前这两个版本都支持,随着时间的推移,老版本会停止维护。官方最新短信版本说明

    4. 短信内容的组成

根据规定,短信必须有短信签名,一般就是接收到短信的中文方括号中间的内容。例如上面的【神州海纳】,另外短信必须通过模板发送,也就是说短信的主体内容是固定,审批后是不能变动的,但是里边的参数可以替换。

国内短信由签名+正文组成,签名符号为【】(注:全角),发送短信时,必须选择签名+正文模板;

创建签名时,必须选择签名类型:

签名类型 签名内容 要求及申请说明
公司 公司全称或简称 -
App App 名称或简称 申请说明:需填写任一应用商店的展示页链接。
网站 网站名称或简称 申请说明:需填写已备案的网站域名。
公众号或小程序 微信公众号名称或小程序名称 要求:公众号或小程序必须已上线且能在微信上搜索到。
申请说明:需填写公众号或小程序的全称。
商标 商标名称或简称 -
政府/机关事业单位/其他机构 政府/机关事业单位/其他机构的名称或简称 -
  • 签名内容不能含有黄赌毒、宗教和党政等信息。
  • 签名必须能辨别所属公司或个人,不支持中性化签名。
  • 国内短信签名由【】和签名内容组成,格式为【签名内容】。签名内容要求长度为2 - 12个字,由中英文、数字组成,内容不包含【】。 建议国内短信签名内容尽量使用中文。
  • 国际/港澳台短信签名由[]和签名内容组成,格式为[签名内容]。签名内容要求2 - 15个字,内容不包含[]。

短信正文模板可以包含变量,用户可通过变量实现自定义短信内容。

类别 规范
格式 固定格式:{数字},如{1}。同一模板中,如果存在多个变量,须从1开始连续编号,如{1}{2}等。
长度
  • 验证码短信,模板变量的实际内容仅支持0 - 6位(包括6位)纯数字。
  • 非验证码短信,个人认证用户,每个变量限制为1~12个字符;企业认证用户没有变量字符限制。
其他规范
  • 不支持全变量模板。
  • 模板中的两个变量不能相邻,前后需加文字说明,以体现模板使用者的意图,不支持组合变量或变量相邻,例如{1}{2}。正确示例:{1}为您的登录验证码,请于{2}分钟内填写,如非本人操作,请忽略本短信。
  • 变量内不支持传入链接(包含短链接),即不允许将变量的取值设置为链接(包含短链接)
  • 不允许设置变量链接(包含短链接),例如www.{1}.com

特定规范

除公共规范外,不同短信类型的正文模板还有相应的特定规范,详情如下表所示。

短信类型 内容规范
普通短信(验证码短信)
  • 国内验证码短信必须含有关键词验证码,国际/港澳台验证码短信必须含有关键词 code
  • 验证码短信模板变量的实际内容仅支持0 - 6位(包括6位)纯数字。
  • 除公共规范外,另禁止发送营销推广类的内容和链接,包括运营商内部业务宣传信息等。
普通短信(通知类短信) 除公共规范外,另禁止发送营销推广类的内容和链接,包括运营商内部业务宣传信息等。
营销短信
  • 正文模板末尾必须携带退订方式,支持回复“TD”、“T”或“N”进行短信退订。
  • 除公共规范外,另禁止发送教育、房产、金融和贷款四大类营销短信。
  • 除公共规范外,另禁止给非会员用户发送营销短信。
  • 发送会员节日或生日关怀、促销活动通知内容需按营销短信提交。
  • 营销短信发送时间为每日8:00 - 22:00,尽量避免夜间发送,减少用户投诉。

例如如下短信模板:

{1}为您的注册(登录)验证码,请于{2}分钟内填写。如非本人操作,请忽略本短信。

二、短信发送函数

如果有了短信签名和短信模板,就可以通过下面的函数发送短信了。

uses
  uSMS_TX_Component_source;

var
  SecretId, SecretKey,SDKAppId, PhoneNumber,SignName,TemplateID,TemplateParam,SessionContext,ErrorMsg : string;
begin
    //以下是单函数发送短信代码,参数是模拟参数,不能按照下面的参数发送,需要根据实际参数调整。
  SecretId := 'AKIDRirHm5XnocCYfZEi2sX1IL';
  SecretKey := '9A0MNDrLFixVi6D4g';
  SDKAppId := '1400445579';
  PhoneNumber := '+86133429xxxxx';
  SignName := '神州海纳';
  TemplateID := '766907';
  TemplateParam := '["2345","5"]';
  SessionContext := 'ABC123';

  if Send_SMS(SecretId, SecretKey,SDKAppId, PhoneNumber,SignName,TemplateID,TemplateParam,SessionContext,ErrorMsg) then
     ShowMessage('发送完成')
  else
     ShowMessage(ErrorMsg) ;
end;

参数说明:

1. 引用单元:uSMS_TX_Component_source.pas;

2. SecretId 和 SecretKey 就是后台申请的访问密钥

3. SDKAppId 是在腾讯云后台创建的应用ID。应用列表 - 应用管理 - 短信 - 控制台 (tencent.com)

4. PhoneNumber 接收短信的电话号码,包括国家号 +86

5. SifnName 短信签名,是需要在腾讯后台申请好的,不能随便写

6. TemplateID 表示的是模板ID,模板的样式为:

{1}为您的注册(登录)验证码,请于{2}分钟内填写。如非本人操作,请忽略本短信。

7.  TemplateParam 表示的是模板的参数数组,将会用数组中的“2345”替代模板中的 {1},数组中的“5”替代模板中的{2}

8. SessionContext 表示的是后台回调时原封不动返回的值。

最终发送的短信为:

三、下载源代码(收费)

源代码包括有演示程序,演示程序是在D11.2平台上4K分辨率下开发的,可能演示程序在低分比率下显示界面会乱,但是发送短信的uSMS_TX_Component_source.pas单元是没有任何问题的,实际使用只需要引用这一个单元即可。

源代码经过压缩,解压密码为:abitsoft.com

源代码目录结构:

 获取到源代码后,先看 说明.txt

源代码下载(¥49.9)

猜你喜欢

转载自blog.csdn.net/sensor_WU/article/details/129639782