码迷,mamicode.com
首页 > 其他好文 > 详细

【吉光片羽】短信验证

时间:2016-12-29 22:41:01      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:normal   测试   调试   code   ogg   选择   var   erro   res   

早就听说过阿里大于,短信验证绑定手机的过程我们也经历了很多次。下面简单记录下过程。

1.注册一个应用

得到AppKey 和 App Secret     应用管理-->应用列表

 技术分享

2.设置签名  

配置管理-->验证码

签名是出现短信内容最前面的字段,比如【xx科技】xxxx,

技术分享

 这个需要审核。显示是2小时内。

3.设置模板

模板就是用来组织短信内容的部分

技术分享

4. 应用测试

完成上面3步之后,我们就可以测试下,在应用管理--应用测试   

https://www.alidayu.com/center/application/test

技术分享

测试选择好模板,输入签名、电话号码就可以发送了。

5.代码调试

需要先下载个sdk,.net是TopSDK.dll。如果是https,对应的地址是:https://eco.taobao.com/router/rest

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Niqiu.Core.Helpers;
using Top.Api;
using Top.Api.Request;
using Top.Api.Response;

namespace Portal.MVC.Controllers
{
    public class AliMessageController : Controller
    {
        //
        // GET: /AliMessage/

        public static string url = "http://gw.api.taobao.com/router/rest";
        public static string appkey = "--583689";
        public static string secret = "0---6861cb74da5ac98c02c1172---0";
        public ActionResult Index()
        {
            var res = SendRandomCodeToMobile("1xxxxxxxxxx", "stoneniqiu");
            return res;
        }


        public JsonResult SendRandomCodeToMobile(string phone,string username)
        {
            ITopClient client = new DefaultTopClient(url, appkey, secret);
            AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
            req.Extend = "";
            req.SmsType = "normal";
            req.SmsFreeSignName = "好油菜";
            var randomCode = GetID();
            //req.SmsParam = "{name:‘stone‘,number:‘3345‘}";
            req.SmsParam = "{name:‘" + username + "‘,number:‘" + randomCode + "‘}";
            req.RecNum = phone;
            req.SmsTemplateCode = "SMS_36290127";
            AlibabaAliqinFcSmsNumSendResponse rsp = client.Execute(req);
            Console.WriteLine(rsp.Body);
            //存储 结果,发送时间,随机数和手机号
            if (rsp.IsError)
            {
                Logger.Debug(rsp.ErrCode + " " + rsp.ErrMsg);
            }
            return Json(new { success = !rsp.IsError, message = rsp.ErrMsg, code = rsp.ErrCode },JsonRequestBehavior.AllowGet);
        }

        private int GetID()
        {
            Random rd = new Random();
            int num = rd.Next(1000, 9999);
            return num;

        }

    }
}

每个号码有流量限制:

技术分享

测试的时候一小时超过7条就收不到了。发送短信的逻辑就是这么多了,如果要验证用户收到的验证码是否一致 这个就简单了,存储每次发送的手机号和对应的验证码,验证的时候对比下就行了。然后因为该服务是一分钟一条的,所以需要限制下两次获取验证码的间隔是1分钟。这些逻辑都蛮简单的。每个账号有200条免费的可以玩。

【吉光片羽】短信验证

标签:normal   测试   调试   code   ogg   选择   var   erro   res   

原文地址:http://www.cnblogs.com/stoneniqiu/p/6234002.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!