欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

API发送短信验证码

程序员文章站 2022-06-04 16:17:19
...

由于 阿里大于 的短信签名一直申请不通过,没办法只好用别的短信。
这次用的是朋友推荐的 haoservice ,价格和阿里云差不多,好处是:

1、第一次买的话可以买10块钱的,300条,也就是3分钱一条,相对测试来说很便宜。
2、购买的条数,没有时间限制,不像阿里的有24个月限制。
3、没有复杂的认证,模版签名一块审核,通过的速度很快,不像阿里的还得上传营业执照,授权书等等。

言归正传:

首先登陆之后申请短信api服务,之后进入我的数据,点击短信模版,添加属于自己的模版。

API发送短信验证码

提交审核,审核挺快的,我当时十分钟就审核完了。

API发送短信验证码

开始整合项目:

pom.xml导包
		<!-- Gson -->
		<dependency>
		    <groupId>com.google.code.gson</groupId>
		    <artifactId>gson</artifactId>
		    <version>2.8.5</version>
		</dependency>
工具类 SendSMSUtil.java 需要修改的地方,改为你自己的,注意:content里的内容除了变量#code#,其他的需要和你的模版内容一样。

import java.io.*;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import com.google.gson.Gson;
/**
 * 
* 类描述: 发送短信验证码 (次数 状态 时间 code 手机号)
* 项目名称:store   
* 类名称:SendSMS      
* 创建人:ZLY   
* 创建时间:2019年4月15日 下午5:40:53     
* 备注:
 */
public class SendSMSUtil {
	/**
	 * 发送短信验证码
	 * @param phone   手机号码
	 * @param tpl_id  模板ID
	 * @param code    验证码
	 * @author ZLY   
	 * @date 2019年4月15日 下午5:42:03     
	 * @param
	 */
	public static boolean sendPaste(String phone, String tpl_id, String code) {
//		if(!ContastValue.FORMALSERVER){
//			return false;
//		}
		Gson gson = new Gson();
		try {
			//接口url,其他接口的话,地址不一样,方法通用
			URL url = new URL("http://apis.haoservice.com/sms/sendv2");
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setDoOutput(true);
			connection.setDoInput(true);
			connection.setUseCaches(false);
			connection.setRequestMethod("POST");//
			connection.setInstanceFollowRedirects(true);
			connection.setConnectTimeout(60000);
			connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
			StringBuffer params = new StringBuffer();
			connection.connect();
			params.append("key=你自己的key").append("&").append("mobile=").append(phone)
					.append("&").append("tpl_id=" + tpl_id).append("&").append("content=").append(" 【英雄联盟】欢迎您注册英雄联盟,您的验证码为"+code+",请勿泄漏于他人!");
			OutputStream outputStream = connection.getOutputStream();
			byte[] data = params.toString().getBytes("UTF-8");
			outputStream.write(data);
			outputStream.flush();
			outputStream.close();
			BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
			String line;
			while ((line = reader.readLine()) != null) {
				ResultJsonBean resultJsonBean = gson.fromJson(line, ResultJsonBean.class);
				System.out.println(resultJsonBean.toString());
				if (resultJsonBean != null) {
					if ("0".equals(resultJsonBean.getError_code())) {
						return true;
					} else {
						return false;
					}
				}
			}
			reader.close();
			connection.disconnect();
		} catch (MalformedURLException e) {
			System.out.println(e.toString());
			e.printStackTrace();
		} catch (IOException e) {
			System.out.println(e.toString());
			e.printStackTrace();
		} catch (Exception e) {
			System.out.println(e.toString());
			e.printStackTrace();
		}
		return false;
	}
	
	//测试
	public static void main(String[] args) {
		String code = (int) ((Math.random() * 9 + 1) * 100000) + "";
		sendPaste("你的手机号", "你的模版id", code);
	}
}

ResultJsonBean.java

/**
 * 
* 类描述:  发短信时候gson.fromJson的返回类
* 项目名称:store   
* 类名称:ResultJsonBean      
* 创建人:ZLY   
* 创建时间:2019年4月15日 下午5:40:47     
* 备注:
 */
public class ResultJsonBean {
	  private String error_code; 
      private String reason ;
      private String result ;
	public String getError_code() {
		return error_code;
	}
	public void setError_code(String error_code) {
		this.error_code = error_code;
	}
	public String getReason() {
		return reason;
	}
	public void setReason(String reason) {
		this.reason = reason;
	}
	public String getResult() {
		return result;
	}
	public void setResult(String result) {
		this.result = result;
	}
	@Override
	public String toString() {
		return "ResultJsonBean [error_code=" + error_code + ", reason="
				+ reason + ", result=" + result + "]";
	}
	
	
}

控制台成功,手机接到短信。

API发送短信验证码