如何使用腾讯云短信API发送验证码
前言: (写在前面的一些废话)最近在写给手机发送短信的一个功能,之前一直在用“创蓝253短信平台”,调用起来也是非常简单,根据域名构建一个Http请求即可。但是最近这个平台对签名审核变得非常的严格且对一些平台和APP是不发的(应该是因为这些小平台的安全性没有做好,才会这么严格),申请的时候还需要 APP的下载地址、官网、设计图纸等等,付款还需要公对公,这对于我们这些独立开发者来说很不友好,我提供了公司的营业执照(一个朋友的空壳公司)和部分APP的设计图纸(做的一个交友类小游戏),申请了三四次都给我驳回了,联系客服又给我说交友类、棋牌类游戏不发(一万个草泥马)。决定还是研究腾讯的短信服务吧,但是腾讯的短信API调用起来不是一般的麻烦(由于腾讯的SDK不支持在Windows环境,所以只能硬着头皮调用API了)。下面主要记录一下在调用腾讯短信API中的一些主要步骤。 最终目的: 使用UE4调用腾讯的发送短信API,给手机发送短信。 介绍腾讯云短信服务及用“API Explorer"在线发送验证码 官方文档上有详细的文档说明,这里就不多赘述,这里主要是总结一下用法。我用的V3.0版本的API,使用 API的核心就是通过一些加密算法构建“签名串”,这个签名串用于构建HTTP请求,加密算法主要用的是“Opessll库”里面的部分函数,这个库的用法我单独写了一篇文章,参考“在Windows下配置Openssl环境”。 在测试阶段推荐使用“API Explorer”,这个可以在线发送验证码,生成签名串。发送验证码需要开通短信服务并申请签名和签名模板,还要申请腾讯SDK的秘钥和 ID(每个用户最多申请两个秘钥和 ID,)这部分官方文档有详细步骤,参考我当时发送的界面如图1-1所示。“API Explorer”生成的签名串可以用来验证你的生成签名串的程序,如图1-2所示。 使用"Postman"测试发送Http/Https请求 在使用C++编写HTTP请求之前,可以先使用软件“Postman”发送测试请求,以确保请求串没有错误。使用方法如图1-3所示: 使用纯C++项目生成“签名串” 创建一个C++的空项目,添加一个CPP文件后,将官网的代码粘贴进去(官方文档链接:https://cloud.tencent.com/document/product/382/52072#C.2B.2B),参考文章“在Windows下配置Openssl环境”配好环境后,还需要改一个名叫“get_data”函数,如下面示例所示,之后应该就可以编译通过了。官网示例使用的接口不是发送短信接口,所以需要稍微改动一下代码。发送短信的部分改动代码如下: 函数改动: string get_data(int64_t& timestamp) { int64_t ii = 1231232133; string utcDate; char buff[20] = { 0 }; //改动了这里,牵扯到time_t类型的初始化 time_t timenow = (time_t)(timestamp); 1 2 3 4 5 6 7 8 9 10 11 struct tm sttime; //sttime = *gmtime(×tamp); gmtime_s(&sttime, &timenow); //gmtime_s(, ); strftime(buff, sizeof(buff), "%Y-%m-%d", &sttime); utcDate = string(buff); return utcDate; } SendSms接口,生成字符串所必要的一些参数: // 密钥参数 string SECRET_ID = “AKI**evvfCU”; string SECRET_KEY = “3pLaZrkNkFTQ6VdU5PS”;...