利用阿里大于进行短信验证

注册用户的时候需要输入手机验证码进行验证,可以自己去弄个短信猫进行开发,也可以利用阿里大于平台进行完成

首先,要去阿里大于平台注册账号,然后去创建一个应用,应用里面会有一个AppKey和SecretKey,之后调用接口会用到这个信息。

然后,去短信通知里面去配置短信签名和配置短信模板,这个填完了,需要一个小时左右的审核。

接着,按照他的文档就可以开发了。

先把两个jar包加入到maven中,

注册两个jar包

mvn install:install-file -Dfile=taobao-sdk-java-auto_1455552377940-20160607.jar -DgroupId=com.taobao -DartifactId=taobao-api -Dversion=1.0.0.RELEASE -Dpackaging=jar

mvn install:install-file -Dfile=taobao-sdk-java-auto_1455552377940-20160607-source.jar -DgroupId=com.taobao -DartifactId=taobao-source -Dversion=1.0.0.RELEASE -Dpackaging=jar

pom.xml引用

 <dependency>
            <groupId>com.taobao</groupId>
            <artifactId>taobao-api</artifactId>
            <version>1.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.taobao</groupId>
            <artifactId>taobao-source</artifactId>
            <version>1.0.0.RELEASE</version>
        </dependency>

完成功能函数

    @ResponseBody
    @RequestMapping(value = "/getSmsCode", method = RequestMethod.POST)
    public Map<String, Object> getSmsCode(String mobile) {
        Map<String, Object> resultMap = new HashMap<String, Object>();
        try {
            String smscode="测试code";
            TaobaoClient client = new DefaultTaobaoClient("http://gw.api.taobao.com/router/rest", "你的accesskey","你的secretkey");
            AlibabaAliqinFcSmsNumSendRequest req = new AlibabaAliqinFcSmsNumSendRequest();
            req.setExtend("123");//公共回传参数,在“消息返回”中会透传回该参数;举例:用户可以传入自己下级的会员ID,在消息返回时,该会员ID会包含在内,用户可以根据该会员ID识别是哪位会员使用了你的应用
            req.setSmsType("normal");//短信类型,传入值请填写normal
            req.setSmsFreeSignName("你的短信签名");//短信签名,传入的短信签名必须是在阿里大于“管理中心-短信签名管理”中的可用签名。如“阿里大于”已在短信签名管理中通过审核,则可传入”阿里大于“(传参时去掉引号)作为短信签名。短信效果示例:【阿里大于】欢迎使用阿里大于服务。
            req.setSmsParamString("{'name':\""+"测试用户\""+",'code':\""+smscode+"\"}");//短信模板变量,传参规则{"key":"value"},key的名字须和申请模板中的变量名一致,多个变量之间以逗号隔开。示例:针对模板“验证码${code},您正在进行${product}身份验证,打死不要告诉别人哦!”,传参时需传入{"code":"1234","product":"alidayu"}
            req.setRecNum(mobile);//短信接收号码。支持单个或多个手机号码,传入号码为11位手机号码,不能加0或+86。群发短信需传入多个号码,以英文逗号分隔,一次调用最多传入200个号码。示例:18600000000,13911111111,13322222222
            req.setSmsTemplateCode("你的短信模板号");//短信模板
            // ID,传入的模板必须是在阿里大于“管理中心-短信模板管理”中的可用模板
            AlibabaAliqinFcSmsNumSendResponse rsp = client.execute(req);
            System.out.println(rsp.getBody());
            JSONObject jsonObject=JSONObject.fromObject(rsp.getBody());
            Object object = jsonObject.get("alibaba_aliqin_fc_sms_num_send_response");
            if(object!=null&&JSONObject.fromObject(JSONObject.fromObject(object).get("result")).get("success").toString().equals("true")){
                resultMap.put("msg", "获取验证码成功");
                resultMap.put("code", 0);
                try{
                    //记录到缓存中
                }catch (Exception e){
                    resultMap.put("msg", "获取手机号码错误,请联系管理员");
                    resultMap.put("code", 4);
                }
            }else{
                Object error_response = jsonObject.get("error_response");
                if(jsonObject.fromObject(error_response).get("sub_code").equals("isv.MOBILE_NUMBER_ILLEGAL")){
                    resultMap.put("msg", "手机号码格式错误");
                    resultMap.put("code", 1);
                }else if(jsonObject.fromObject(error_response).get("sub_code").equals("isv.BUSINESS_LIMIT_CONTROL")){
                    resultMap.put("msg", "获取频繁,请60s后获取");
                    resultMap.put("code", 2);
                }else{
                    resultMap.put("msg", "获取手机号码错误,请联系管理员");
                    resultMap.put("code", 3);
                }
            }
        } catch (Exception e) {
            resultMap.put("msg", "获取验证码失败");
            resultMap.put("code", 4);
        }
        return resultMap;
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值