您的位置:首页 > 其它

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

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

首先,要去阿里大于平台注册账号,然后去创建一个应用,应用里面会有一个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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  阿里大于 maven