赤青1

那些我们丢失的美好!是我们永远的遗憾与记忆

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

http://smsow.zhenzikj.com/doc/java_sdk_doc.html:榛子平台(平台不行)

一下是短信JAVA版本的API文档

1.安装

方法1:使用maven安装

	            <dependency>
	               <groupId>com.zhenzikj</groupId>
	               <artifactId>zhenzisms</artifactId>
	               <version>1.0.2</version>
	            </dependency>
            

下载最新的maven版本: maven

方法2:直接下载jar安装

下载后的SDK只包含一个jar文件,并且不依赖任何其他jar包或文件,直接导入到工程中即可使用。

2.用法

使用事先申请的AppId、AppSecret初始化ZhenziSmsClient:

ZhenziSmsClient client = new ZhenziSmsClient(apiUrl, appId, appSecret);

1)发送短信

String result = client.send("15811111111", "您的验证码为2323");

send方法用于单条发送短信

参数1:接收者手机号码,参数2:短信内容

返回结果是json格式的字符串, code: 发送状态,0为成功。非0为发送失败,可从data中查看错误信息

注: 测试发送短信内容不要使用"你好"或"12132"全数字形式,这种短信内容没有具体的意义,可能会被运营商屏蔽

			{
			    "code":0,
			    "data":"发送成功"
			}
			

2)发送短信(返回状态报告)

String result = client.send("15811111111", "您的验证码为2323", "dfee_dfdw_xdfd_dfdfd");

send方法用于单条发送短信,并且开发者可接受短信发送状态报告,具体使用请参考:API说明

参数1:接收者手机号码,参数2:短信内容, 参数3:messageId即该条短信的唯一标识, 不能重复

返回结果是json格式的字符串, code: 发送状态,0为成功。非0为发送失败,可从data中查看错误信息

错误代码表

错误码原因解决方案
100 参数格式错误 检查请求参数是否为空, 或手机号码格式错误
101 短信内容超过1000字 短信内容过长,请筛检或分多次发送
105 appId错误或应用不存在 请联系工作人员申请应用或检查appId是否输入错误
106 应用被禁止 请联系工作人员查看原因
107 ip错误 如果设置了ip白名单,系统会检查请求服务器的ip地址,已确定是否为安全的来源访问
108 短信余额不足 需要到用户中心进行充值
109 今日发送超过限额 如果设置了日发送数量,则每个接收号码不得超过这个数量
110 应用秘钥(AppSecret)错误 检查AppSecret是否输入错误,或是否已在用户中心进行了秘钥重置
111 账号不存在 请联系工作人员申请账号
1000 系统位置错误

请联系工作人员或技术人员检查原因

 

3)查看余额

通过该接口可查看当前剩余的短信条数

String result = client.balance();

返回结果是json格式的字符串, code: 查询状态,0为成功,data为剩余短信条数。非0为查询失败,可从data中查看错误信息

错误代码表

错误码原因解决方案
100 参数格式错误 检查请求参数是否为空
105 appId错误或应用不存在 请联系工作人员申请应用或检查appId是否输入错误
106 应用被禁止 请联系工作人员查看原因
107 ip错误 如果设置了ip白名单,系统会检查请求服务器的ip地址,已确定是否为安全的来源访问
110 应用秘钥(AppSecret)错误 检查AppSecret是否输入错误,或是否已在用户中心进行了秘钥重置
1000 系统位置错误 请联系工作人员或技术人员检查原因

4)查询短信

接口描述

根据messageId查询已发送短信

String result = client.findSmsByMessageId("dfee_dfdw_xdfd_dfdfd");
注: 必须是post请求,个人开发者域名使用sms_developer.zhenzikj.com,企业开发者域名使用sms.zhenzikj.com

请求参数

参数名称必选类型描述
appId string 应用id,可通过用户中心,应用详情查看
appSecret string 应用秘钥,可通过用户中心,应用详情查看
messageId string 信息id,对应发送短信接口的messageId字段

返回结果

返回结果是json格式的字符串, code: 查询状态,0为成功。非0为失败,可从data中查看错误信息

			{
			    "code":0,
			    "data":{}
			}
			

返回结果是json格式的字符串, code: 查询状态,0为成功,data短信信息的json字符串

 

 

 

核心代码:

 

public Object sendNote(HttpServletRequest request, String userPhone,
HttpServletResponse response) {

// TODO Auto-generated method stub
try {
JSONObject json = null;
//生成6位验证码
String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000);
System.out.println("后台码" + verifyCode);
//发送短信
ZhenziSmsClient client = new ZhenziSmsClient("https://sms_developer.zhenzikj.com", "100656", "ZmI5M2FkOTgtODk4NS00ODkwLWIwNTMtYTg1ZmM4YzI0NGJk");
String result = client.send(userPhone, "您的验证码为:" + verifyCode + ",该码有效期为5分钟,该码只能使用一次!");
System.out.println("发送的相关信息" + result);
json = JSONObject.parseObject(result);
if (json.getIntValue("code") != 0) {//发送短信失败
return "fail";
} else {
//将验证码存到session中,同时存入创建时间
//以json存放
HttpSession session = request.getSession();
json = new JSONObject();
json.put("verifyCode", verifyCode);
json.put("createTime", System.currentTimeMillis());
// 将认证码存入SESSION
request.getSession().setAttribute("verifyCode", json);
System.out.println("session域中的值" + json);
return "success";
}
} catch (Exception e) {
e.printStackTrace();
}
return "error";
}

/**
* 手机注册发送短信
*/
@RequestMapping(value = "/sendSms", method = RequestMethod.POST)
@ResponseBody
public Object sendSms(HttpServletRequest request, String userPhone,
HttpServletResponse response) throws IOException,
ExecutionException, InterruptedException {
System.out.println("use" + userPhone);
response.setContentType("application/json; charset=UTF-8");
Object message = bookUserService.sendNote(request, userPhone, response);
return message;
}

 

/**
* 手机注册--db
*/
@RequestMapping(value = "/phoneRegister", method = RequestMethod.POST)
@ResponseBody
public String phoneRegister(HttpServletRequest request,
String userPassword, String userPhone, String verifyCode) {
int i = 0;
System.out.println(verifyCode);
JSONObject json = (JSONObject) request.getSession().getAttribute(
"verifyCode");
if (!json.getString("verifyCode").equals(verifyCode)) {
return "验证码错误";
}
if ((System.currentTimeMillis() - json.getLong("createTime")) > 1000 * 60 * 5) {
/* return "验证码过期"; */
return "验证码过期";
}
// 将用户信息存入数据库
BookUser bookUser = new BookUser();
bookUser.setUserPhone(userPhone);
bookUser.setUserPassword(userPassword);
i = bookUserService.register(bookUser);
System.out.println("------");
if (i != 0) {
return "success";
} else {
System.out.println("该用户已被注册");
return "fail";
}
}

 

 

 

学生作品记录:有不足之处,请多指教

以上内容是针对Java实现的一个短信验证真实功能,可以看看玩玩

posted on 2019-06-26 19:01  赤青1  阅读(695)  评论(0编辑  收藏  举报