短信驗證碼發送示例(騰訊云)
以騰訊云的國內短信發送為例:
發送短信
代碼示例
using System;
using System.Threading.Tasks;
using TencentCloud.Common;
using TencentCloud.Common.Profile;
using TencentCloud.Sms.V20210111;
using TencentCloud.Sms.V20210111.Models;
namespace TencentCloudExamples
{
class SendSms
{
static void Main(string[] args)
{
try
{
// 必要步驟:
// 實例化一個認證對象,入參需要傳入騰訊云賬戶密鑰對 SecretId,SecretKey。
// 為了保護密鑰安全,建議將密鑰設置在環境變量中或者配置文件中。
// 硬編碼密鑰到代碼中有可能隨代碼泄露而暴露,有安全隱患,并不推薦。
// 這里采用的是從環境變量讀取的方式,需要在環境變量中先設置這兩個值。
// SecretId、SecretKey 查詢:https://console.cloud.tencent.com/cam/capi
Credential cred = new Credential {
SecretId = Environment.GetEnvironmentVariable("TENCENTCLOUD_SECRET_ID"),
SecretKey = Environment.GetEnvironmentVariable("TENCENTCLOUD_SECRET_KEY")
};
/* 非必要步驟:
* 實例化一個客戶端配置對象,可以指定超時時間等配置 */
ClientProfile clientProfile = new ClientProfile();
/* SDK 默認用TC3-HMAC-SHA256進行簽名
* 非必要請不要修改這個字段 */
clientProfile.SignMethod = ClientProfile.SIGN_TC3SHA256;
/* 非必要步驟
* 實例化一個客戶端配置對象,可以指定超時時間等配置 */
HttpProfile httpProfile = new HttpProfile();
/* SDK默認使用POST方法。
* 如果您一定要使用GET方法,可以在這里設置。GET方法無法處理一些較大的請求 */
httpProfile.ReqMethod = "GET";
httpProfile.Timeout = 10; // 請求連接超時時間,單位為秒(默認60秒)
/* 指定接入地域域名,默認就近地域接入域名為 sms.tencentcloudapi.com ,也支持指定地域域名訪問,例如廣州地域的域名為 sms.ap-guangzhou.tencentcloudapi.com */
httpProfile.Endpoint = "sms.tencentcloudapi.com";
// 代理服務器,當您的環境下有代理服務器時設定(無需要直接忽略)
// httpProfile.WebProxy = Environment.GetEnvironmentVariable("HTTPS_PROXY");
clientProfile.HttpProfile = httpProfile;
/* 實例化要請求產品(以sms為例)的client對象
* 第二個參數是地域信息,可以直接填寫字符串ap-guangzhou,支持的地域列表參考 https://cloud.tencent.com/document/api/382/52071#.E5.9C.B0.E5.9F.9F.E5.88.97.E8.A1.A8 */
SmsClient client = new SmsClient(cred, "ap-guangzhou", clientProfile);
/* 實例化一個請求對象,根據調用的接口和實際情況,可以進一步設置請求參數
* 您可以直接查詢SDK源碼確定SendSmsRequest有哪些屬性可以設置
* 屬性可能是基本類型,也可能引用了另一個數據結構
* 推薦使用IDE進行開發,可以方便的跳轉查閱各個接口和數據結構的文檔說明 */
SendSmsRequest req = new SendSmsRequest();
/* 基本類型的設置:
* SDK采用的是指針風格指定參數,即使對于基本類型您也需要用指針來對參數賦值。
* SDK提供對基本類型的指針引用封裝函數
* 幫助鏈接:
* 短信控制臺: https://console.cloud.tencent.com/smsv2
* 騰訊云短信小助手: https://cloud.tencent.com/document/product/382/3773#.E6.8A.80.E6.9C.AF.E4.BA.A4.E6.B5.81 */
/* 短信應用ID: 短信SdkAppId在 [短信控制臺] 添加應用后生成的實際SdkAppId,示例如1400006666 */
// 應用 ID 可前往 [短信控制臺](https://console.cloud.tencent.com/smsv2/app-manage) 查看
req.SmsSdkAppId = "1400787878";
/* 短信簽名內容: 使用 UTF-8 編碼,必須填寫已審核通過的簽名 */
// 簽名信息可前往 [國內短信](https://console.cloud.tencent.com/smsv2/csms-sign) 或 [國際/港澳臺短信](https://console.cloud.tencent.com/smsv2/isms-sign) 的簽名管理查看
req.SignName = "騰訊云";
/* 模板 ID: 必須填寫已審核通過的模板 ID */
// 模板 ID 可前往 [國內短信](https://console.cloud.tencent.com/smsv2/csms-template) 或 [國際/港澳臺短信](https://console.cloud.tencent.com/smsv2/isms-template) 的正文模板管理查看
req.TemplateId = "449739";
/* 模板參數: 模板參數的個數需要與 TemplateId 對應模板的變量個數保持一致,若無模板參數,則設置為空 */
req.TemplateParamSet = new String[] {"1234"};
/* 下發手機號碼,采用 E.164 標準,+[國家或地區碼][手機號]
* 示例如:+8613711112222, 其中前面有一個+號 ,86為國家碼,13711112222為手機號,最多不要超過200個手機號*/
req.PhoneNumberSet = new String[] {"+8613711112222"};
/* 用戶的 session 內容(無需要可忽略): 可以攜帶用戶側 ID 等上下文信息,server 會原樣返回 */
req.SessionContext = "";
/* 短信碼號擴展號(無需要可忽略): 默認未開通,如需開通請聯系 [騰訊云短信小助手] */
req.ExtendCode = "";
/* 國內短信無需填寫該項;國際/港澳臺短信已申請獨立 SenderId 需要填寫該字段,默認使用公共 SenderId,無需填寫該字段。注:月度使用量達到指定量級可申請獨立 SenderId 使用,詳情請聯系 [騰訊云短信小助手](https://cloud.tencent.com/document/product/382/3773#.E6.8A.80.E6.9C.AF.E4.BA.A4.E6.B5.81)。 */
req.SenderId = "";
SendSmsResponse resp = client.SendSmsSync(req);
// 輸出json格式的字符串回包
Console.WriteLine(AbstractModel.ToJsonString(resp));
/* 當出現以下錯誤碼時,快速解決方案參考
* [FailedOperation.SignatureIncorrectOrUnapproved](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Afailedoperation.signatureincorrectorunapproved-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
* [FailedOperation.TemplateIncorrectOrUnapproved](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Afailedoperation.templateincorrectorunapproved-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
* [UnauthorizedOperation.SmsSdkAppIdVerifyFail](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Aunauthorizedoperation.smssdkappidverifyfail-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
* [UnsupportedOperation.ContainDomesticAndInternationalPhoneNumber](https://cloud.tencent.com/document/product/382/9558#.E7.9F.AD.E4.BF.A1.E5.8F.91.E9.80.81.E6.8F.90.E7.A4.BA.EF.BC.9Aunsupportedoperation.containdomesticandinternationalphonenumber-.E5.A6.82.E4.BD.95.E5.A4.84.E7.90.86.EF.BC.9F)
* 更多錯誤,可咨詢[騰訊云助手](https://tccc.qcloud.com/web/im/index.html#/chat?webAppId=8fa15978f85cb41f7e2ea36920cb3ae1&title=Sms)
*/
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
Console.Read();
}
}
}
詳情可參考官網的文檔:https://cloud.tencent.com/document/product/382/43198

浙公網安備 33010602011771號