验证码,语音验证码

//发送语音验证码接口的http地址
private static String URI_SEND_VOICE = "https://voice.yunpian.com/v1/voice/send.json";

//智能匹配模版发送接口的http地址
private static String URI_SEND_SMS = "https://sms.yunpian.com/v1/sms/send.json";

/**
* 通过接口发送语音验证码
* @param apikey apikey
* @param mobile 接收的手机号
* @param code 验证码
* @return
*/

public static String sendVoice(String apikey, String mobile, String code) {
Map<String, String> params = new HashMap<String, String>();
params.put("apikey", apikey);
params.put("mobile", mobile);
params.put("code", code);
return post(URI_SEND_VOICE, params);
}
public static boolean smsSendVoice(String mobile, String code){
boolean flag = false;
try {

String result = SmsUtil.sendVoice(AppConfig.apiKey, mobile, code);
logger.info(result);
JSONObject obj = JSONObject.fromObject(result);
int respCode = (Integer)obj.get("code");
String msg = obj.get("msg")==null?"检测您发送短信频率过高,请您稍后再试":(String)obj.get("msg");
logger.info("code: " + respCode + "; msg: " + msg );
if(respCode == 0 && null != msg && "OK".equals(msg)) {
flag = true;
}} catch (Exception e) {
// TODO: handle exception
logger.error("SmsUtil.smsSendVoice IOException", e);
}
return flag;
}

//发送密码接口
public static boolean SmsApiForPwd(String userPhone, String pwd) {
StringBuffer textBuffer = new StringBuffer();
textBuffer.append("【畅的充电】您的密码是").append(pwd).append(",").append("请您妥善保管");
String text = textBuffer.toString();
boolean flag = false;
try {

String mobile = URLEncoder.encode(userPhone, ENCODING);

String result = SmsUtil.sendSms(AppConfig.apiKey, text, mobile);

logger.info(result);

JSONObject obj = JSONObject.fromObject(result);

int respCode = (Integer)obj.get("code");

String msg = (String)obj.get("msg");

logger.info("code: " + respCode + "; msg: " + msg );

if(respCode == 0 && null != msg && "OK".equals(msg)) {
flag = true;
}

} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
logger.error("SmsUtil.SmsApi UnsupportedEncodingException", e1);
} catch (IOException e) {
// TODO Auto-generated catch block
logger.error("SmsUtil.SmsApi IOException", e);
}

return flag;

}
//发送验证码接口
public static boolean SmsApi(String userPhone, String code) {
StringBuffer textBuffer = new StringBuffer();
textBuffer.append("【畅的充电】您的验证码是").append(code).append(",").append(AppConfig.expire_date).append("分钟内有效。若非本人操作请忽略此消息。");
String text = textBuffer.toString();
boolean flag = false;
try {

String mobile = URLEncoder.encode(userPhone, ENCODING);

String result = SmsUtil.sendSms(AppConfig.apiKey, text, mobile);

logger.info(result);

JSONObject obj = JSONObject.fromObject(result);

int respCode = (Integer)obj.get("code");

String msg = obj.get("msg")==null?"检测您发送短信频率过高,请您稍后再试":(String)obj.get("msg");

logger.info("code: " + respCode + "; msg: " + msg );

if(respCode == 0 && null != msg && "OK".equals(msg)) {
flag = true;
}

} catch (UnsupportedEncodingException e1) {
// TODO Auto-generated catch block
logger.error("SmsUtil.SmsApi UnsupportedEncodingException", e1);
} catch (IOException e) {
// TODO Auto-generated catch block
logger.error("SmsUtil.SmsApi IOException", e);
}

return flag;

}

/**
* 智能匹配模版接口发短信
*
* @param apikey apikey
* @param text  短信内容
* @param mobile  接受的手机号
* @return json格式字符串
* @throws IOException
*/

public static String sendSms(String apikey, String text, String mobile) throws IOException {
Map<String, String> params = new HashMap<String, String>();
params.put("apikey", apikey);
params.put("text", text);
params.put("mobile", mobile);
return post(URI_SEND_SMS, params);
}

/**
* 基于HttpClient 4.3的通用POST方法
*
* @param url 提交的URL
* @param paramsMap 提交<参数,值>Map
* @return 提交响应
*/

public static String post(String url, Map<String, String> paramsMap) {
CloseableHttpClient client = HttpClients.createDefault();
String responseText = "";
CloseableHttpResponse response = null;
try {
HttpPost method = new HttpPost(url);
if (paramsMap != null) {
List<NameValuePair> paramList = new ArrayList<NameValuePair>();
for (Map.Entry<String, String> param : paramsMap.entrySet()) {
NameValuePair pair = new BasicNameValuePair(param.getKey(), param.getValue());
paramList.add(pair);
}
method.setEntity(new UrlEncodedFormEntity(paramList, ENCODING));
}
response = client.execute(method);
HttpEntity entity = response.getEntity();
if (entity != null) {
responseText = EntityUtils.toString(entity);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
response.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return responseText;
}

public String getSecurityCode() {
String securityCode = "";
for(int i=0 ; i<4 ; i++) {
securityCode += UmsConfig.intArray[(int) Math.floor(Math.random()*10)];
}
return securityCode;
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//System.out.println(3);
SmsUtil.SmsApi("153********", "999999");
// String str = "{‘code‘:0,‘msg‘:‘OK‘,‘result‘:{‘count‘:1,‘fee‘:0.055,‘sid‘:5033613460}}";
// JSONObject obj = JSONObject.fromObject(str);
// System.out.println((Integer)obj.get("code"));
// System.out.println((String)obj.get("msg"));
}

时间: 2024-10-10 04:51:28

验证码,语音验证码的相关文章

语音验证码接口

详情链接:http://www.haoservice.com/docs/80 通过手机接听验证码实现验证功能,语音验证码api 支持格式: JSON/XML 请求方式: GET/POST 明文方式请求参数:   名称 类型 必填 说明   key string 是 API KEY   mobile String 是 接收验证码的手机号码   valicode String 是 验证码   playtimes Int 是 验证码播放次数,默认2 密文方式请求参数:   名称 类型 必填 说明  

python web框架Flask——图形验证码及验证码的动态刷新

下列代码都是以自己的项目实例讲述的,相关的文本内容很少,主要说明全在代码注释中 自制图形验证码 这里所说的图形验证码都是自制的图形,通过画布.画笔.画笔字体的颜色绘制而成的.将验证码封装成一个类比较好管理,代码里有绝对详细的注释,当然大家可以直接复制. 里面涉及的字体都是从系统电脑上自带的,大家直接复制当前目录下就可以了. 主目录/utils/captcha/__init__.py import random import string # Image:一个画布 # ImageDraw:一个画笔

Java Swing 图形界面实现验证码(验证码可动态刷新)

import java.awt.Color;import java.awt.Font;import java.awt.Graphics;import java.awt.Toolkit;import java.awt.event.MouseAdapter;import java.awt.event.MouseEvent;import java.util.Random;import javax.swing.JFrame; public class CheckCode extends JFrame {

java验证码-汉字验证码

今天整理了一个java实现的汉字输入验证码 主要包含两个类,一个是生成验证码,一个是判断验证码输入是否正确 实现原理非常简单,将汉字和干扰线生成图片并将汉字保存到session,前台获取每次生成验证码图片并用文本框值和session值比较,功能就怎么简单. 生成汉字验证码源码展示 1 package xwcms.net.service; 2 import java.awt.Color; 3 import java.awt.Font; 4 import java.awt.Graphics; 5 i

C# Ajax 手机发送短信验证码 校验验证码 菜鸟级别实现方法

1.Ajax请求处理页面: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.SessionState; using System.Web.Services; namespace Web.User.Ajax { /// <summary> /// SendCheckcode 的摘要说明 /// </summary> [WebSer

java 验证码 jfinal 验证码

效果图 2个帮助类 package com.attendance.util.img; import java.awt.Font; import java.io.ByteArrayInputStream; public class ImgFontByte { public Font getFont(int fontHeight) { try { Font baseFont = Font.createFont(Font.TRUETYPE_FONT, new ByteArrayInputStream(

项目分享之 验证码呀验证码

    项目经验分享详细篇之 验证码 背景:    接手的一个小项目,额,只能说,项目很小,技术很大.....往后省略1M的抱怨&埋怨  先了解了解阮一峰博主写的一篇OAuth的文章 http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html   介入正题: 以这个网站为例:  http://box.gm.163.com/self_help.html?kind_id=617 内容正在整理中..... -----404----

php生成验证码与验证码验证完整实例

标题文档 <!DOCTYPE  html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html  xmlns=" http://www.w3.org/1999/xhtml"> <head> <meta  http-equiv=&quo

C# WinForm 使用SMS接口发送手机验证码+图形验证码+IP限制

https://blog.csdn.net/IT_xiao_guang_guang/article/details/104299983 前言 ??1.发送手机验证码用的是网建的SMS接口(http://sms.webchinese.cn/) ??2.手机验证码简单的做了以下限制: ????①发送验证码1分钟只能点击发送1次 ????②相同IP手机号码1天最多提交20次(这里我用的是本地局域网IP) ????③加入图形验证码 ??注:SMS官网上的建议还有要对手机号码次数进行限制:单个手机号码30