Example #1
0
        /// <summary>
        /// 构建发送验证码短信的请求参数:指明由易盾生成验证码
        /// </summary>
        private static Dictionary <String, String> CreateSendParam(
            String businessId, String templateId, IDictionary <string, string> variables, String to, String countryCallingCode)
        {
            var paramDict = new Dictionary <string, string>
            {
                ["nonce"]     = ParamUtils.CreateNonce(),
                ["timestamp"] = DateTimeOffset.Now.ToUnixTimeMilliseconds().ToString(),
                ["version"]   = "v2",

                ["secretId"]   = SECRET_ID,
                ["businessId"] = businessId,

                ["templateId"] = templateId,
                ["mobile"]     = to,

                ["paramType"] = "json",
                ["params"]    = ParamUtils.SerializeVariables(variables),

                // 指明由易盾生成验证码:
                // codeName 表示目标模板内容中,验证码的占位符变量名。如,模板内容为 “您的验证码为${code},5分钟内有效,请勿泄露。”,则 codeName 的值应为 code
                ["codeName"] = "code",
                // codeLen 表示验证码的数字个数
                ["codeLen"] = "6",
                // codeValidSec 表示验证码的有效期。单位:秒
                ["codeValidSec"] = "300"
            };

            // 如果要发送国际短信,则需要指明国际电话区号。如果不是国际短信,则不要指定此参数
            if (!string.IsNullOrWhiteSpace(countryCallingCode))
            {
                paramDict["internationalCode"] = countryCallingCode;
            }

            // 在最后一步生成此次请求的签名
            paramDict["signature"] = ParamUtils.GenSignature(SECRET_KEY, paramDict);

            return(paramDict);
        }