Integre fácilmente el servicio de SMS de Tencent Cloud para enviar SMS (implementado en Java)

Independientemente de si se trata de Alibaba Cloud o Tencent Cloud, si desea implementar la función de envío de SMS en su sitio web, primero debe asegurarse de que el nombre de dominio de su sitio web esté registrado, porque la firma de SMS requiere una captura de pantalla del nombre de dominio registrado, por lo que el nombre de dominio está aprobado y la solicitud es muy La aprobación será exitosa pronto.
(En cuanto al registro, primero debe comprar el nombre de dominio y el servidor, y luego enviar la información material. Lo llamarán para verificar la información básica, como la dirección del nombre de dominio que solicitó, cuál es el propósito del sitio web, etc., y luego, una vez aprobada la revisión inicial, espere cinco o seis días)

De acuerdo, continúe.
Verificación de firma por SMS
Vale la pena mencionar que Alibaba Cloud y Tencent Cloud ahora están participando en actividades. Tencent Cloud está regalando 200 mensajes de texto de prueba y Alibaba Cloud está regalando 100 mensajes de texto de prueba. Esto es suficiente para aprendiendo.
SMS en la nube de Tencent
SMS en la nube de Alibaba
Una vez que la firma de SMS y la plantilla de SMS se hayan revisado correctamente, puede comenzar oficialmente el viaje del envío de SMS.

A continuación, se muestra un ejemplo de la prueba de SMS de Tencent Cloud

  1. La mensajería en la nube Unirse a Tencent se basa en el siguiente archivo pom de proyectos relacionados (si no es un proyecto maven, debe descargar el paquete jar correspondiente) para ver el documento oficial específico Tencent Cloud SMS Java SDK

    <dependency>
        <groupId>com.tencentcloudapi</groupId>
        <artifactId>tencentcloud-sdk-java</artifactId>
        <version>3.1.62</version><!-- 注:这里只是示例版本号,请获取并替换为 最新的版本号 -->
    </dependency>
    
  2. Escribe y envía un código de verificación por SMS

import com.tencentcloudapi.common.Credential;
import com.tencentcloudapi.common.exception.TencentCloudSDKException;
//导入可选配置类
import com.tencentcloudapi.common.profile.ClientProfile;
import com.tencentcloudapi.common.profile.HttpProfile;
// 导入 SMS 模块的 client
import com.tencentcloudapi.sms.v20190711.SmsClient;
// 导入要请求接口对应的 request response 类
import com.tencentcloudapi.sms.v20190711.models.SendSmsRequest;
import com.tencentcloudapi.sms.v20190711.models.SendSmsResponse;
/**
* Tencent Cloud Sms Sendsms
* https://cloud.tencent.com/document/product/382/38778
*
*/
public class SendSms
{
    
    
  public static void main( String[] args )
  {
    
    
      try {
    
    
          /* 必要步骤:
           * 实例化一个认证对象,入参需要传入腾讯云账户密钥对 secretId 和 secretKey
           * 本示例采用从环境变量读取的方式,需要预先在环境变量中设置这两个值
           * 您也可以直接在代码中写入密钥对,但需谨防泄露,不要将代码复制、上传或者分享给他人
           * CAM 密钥查询:https://console.cloud.tencent.com/cam/capi
           */
          Credential cred = new Credential("secretId", "secretKey");
           // 实例化一个 http 选项,可选,无特殊需求时可以跳过
          HttpProfile httpProfile = new HttpProfile();
          // 设置代理
          httpProfile.setProxyHost("host");
          httpProfile.setProxyPort(port);
          /* SDK 默认使用 POST 方法。
           * 如需使用 GET 方法,可以在此处设置,但 GET 方法无法处理较大的请求 */
          httpProfile.setReqMethod("POST");
          /* SDK 有默认的超时时间,非必要请不要进行调整
           * 如有需要请在代码中查阅以获取最新的默认值 */
          httpProfile.setConnTimeout(60);
          /* SDK 会自动指定域名,通常无需指定域名,但访问金融区的服务时必须手动指定域名
           * 例如 SMS 的上海金融区域名为 sms.ap-shanghai-fsi.tencentcloudapi.com */
          httpProfile.setEndpoint("sms.tencentcloudapi.com");
           /* 非必要步骤:
           * 实例化一个客户端配置对象,可以指定超时时间等配置 */
          ClientProfile clientProfile = new ClientProfile();
          /* SDK 默认用 TC3-HMAC-SHA256 进行签名
           * 非必要请不要修改该字段 */
          clientProfile.setSignMethod("HmacSHA256");
          clientProfile.setHttpProfile(httpProfile);
          /* 实例化 SMS 的 client 对象
           * 第二个参数是地域信息,可以直接填写字符串 ap-guangzhou,或者引用预设的常量 */
          SmsClient client = new SmsClient(cred, "ap-guangzhou",clientProfile);
          /* 实例化一个请求对象,根据调用的接口和实际情况,可以进一步设置请求参数
           * 您可以直接查询 SDK 源码确定接口有哪些属性可以设置
           * 属性可能是基本类型,也可能引用了另一个数据结构
           * 推荐使用 IDE 进行开发,可以方便地跳转查阅各个接口和数据结构的文档说明 */
          SendSmsRequest req = new SendSmsRequest();
           /* 填充请求参数,这里 request 对象的成员变量即对应接口的入参
           * 您可以通过官网接口文档或跳转到 request 对象的定义处查看请求参数的定义
           * 基本类型的设置:
           * 帮助链接:
           * 短信控制台:https://console.cloud.tencent.com/smsv2
           * sms helper:https://cloud.tencent.com/document/product/382/3773 */
           /* 短信应用 ID: 在 [短信控制台] 添加应用后生成的实际 SDKAppID,例如1400006666 */
          String appid = "1400009099";
          req.setSmsSdkAppid(appid);
           /* 短信签名内容: 使用 UTF-8 编码,必须填写已审核通过的签名,可登录 [短信控制台] 查看签名信息 */
          String sign = "签名内容";
          req.setSign(sign);
           /* 模板 ID: 必须填写已审核通过的模板 ID,可登录 [短信控制台] 查看模板 ID */
          String templateID = "400000";
          req.setTemplateID(templateID);
           /* 下发手机号码,采用 e.164 标准,+[国家或地区码][手机号]
           * 例如+8613711112222, 其中前面有一个+号 ,86为国家码,13711112222为手机号,最多不要超过200个手机号*/
          String[] phoneNumbers = {
    
    "+8621212313123", "+8612345678902", "+8612345678903"};
          req.setPhoneNumberSet(phoneNumbers);
           /* 模板参数: 若无模板参数,则设置为空*/
          String[] templateParams = {
    
    "5678"};
          req.setTemplateParamSet(templateParams);
           /* 通过 client 对象调用 SendSms 方法发起请求。注意请求方法名与请求对象是对应的
           * 返回的 res 是一个 SendSmsResponse 类的实例,与请求对象对应 */
          SendSmsResponse res = client.SendSms(req);
           // 输出 JSON 格式的字符串回包
          System.out.println(SendSmsResponse.toJsonString(res));
           // 可以取出单个值,您可以通过官网接口文档或跳转到 response 对象的定义处查看返回字段的定义
          System.out.println(res.getRequestId());
       } catch (TencentCloudSDKException e) {
    
    
          e.printStackTrace();
      }
  }
}

Los comentarios en el código también son muy detallados, así que no explicaré más, explicaré brevemente cómo completar los parámetros secretId, secretKey, appid y template.

En cuanto al contenido de la firma y el ID de la firma en la vista de gestión de firmas en

Se puede acceder y obtener SecretId y secretKey: consulta de clave CAM

Llave

Appid Get AppID Habrá una aplicación predeterminada al principio, o puede crearla usted mismo

AppID

Hay una gestión de plantilla de texto de parámetro de plantilla

plantillas
Tome el mío como ejemplo, si hay dos parámetros {1} y {2} en el contenido del cuerpo, estos dos parámetros deben completarse en el método, de la siguiente manera

  /* 模板参数: 若无模板参数,则设置为空*/
  String[] templateParams = {"1234", "1"};
  req.setTemplateParamSet(templateParams);

El diagrama de efectos es el siguiente

Gratis para ver

Gracias por su atención, deje un mensaje si tiene alguna pregunta, corríjame si está mal. ! !

Supongo que te gusta

Origin blog.csdn.net/hyx1249273846/article/details/113481458
Recomendado
Clasificación