Java使用云片API发送短信验证码

下面开始介绍的是如何利用机器完成批量操作,将短信业务自动化。

获取APIKEY

云片网提供了完整的SDK和API,可以帮助开发者快速完成业务开发。

在开始Coding前,需要先获取APIKEY,如下所示。

获取APIKEY

点击眼睛按钮后,输入验证码,就可以查看APIKEY了。

这里需要说明的是,APIKEY特别重要,一定要保护好它,避免泄露。云片这边提供了几重保护机制,例如验证、敏感处理、子账号独立APIKEY等,看得出来他们的安全意识还是挺不错的。

开始Coding

有了APIKEY,就可以直接开始Coding了。

最主要的接口就是这三个,单条发送接口批量发送接口批量个性化发送接口。搞清楚这三个接口后,其它的开发基本就是信手拈来了。

单条发送接口

* 单条短信发送,智能匹配短信模板
 *
 * @param apikey 成功注册后登录云片官网,进入后台可查看
 * @param text  需要使用已审核通过的模板或者默认模板
 * @param mobile 接收的手机号,仅支持单号码发送
 * @return json格式字符串
 */
public static String singleSend(String apikey, String text, String mobile) {
  Map<String, String> params = new HashMap<String, String>();//请求参数集合
  params.put("apikey", apikey);
  params.put("text", text);
  params.put("mobile", mobile);
  return post("https://sms.yunpian.com/v2/sms/single_send.json", params);//请自行使用post方式请求,可使用Apache HttpClient
}

这其中,APIKEY是从云片后台获得的。

例如我要给1888888888这个号码发送,代码如下:

String apikey = fx33mio3561dah34jdk748vz9dkfjkd373zdfg28df43dfhjadj;
String text = "[云片网] 您的短信验证码是 1234";
String mobile = 18888888888;
testSendSms(apikey, text, mobile);

这样一条短信就发送出去了。详细的介绍可以看这里

批量发送接口

也可以给多个手机号发送相同内容的短信,代码如下:

/**
 * 批量发送短信,相同内容多个号码,智能匹配短信模板
 *
 * @param apikey 成功注册后登录云片官网,进入后台可查看
 * @param text  需要使用已审核通过的模板或者默认模板
 * @param mobile 接收的手机号,多个手机号用英文逗号隔开
 * @return json格式字符串
 */
public static String batchSend(String apikey, String text, String mobile) {
  Map<String, String> params = new HashMap<String, String>();//请求参数集合
  params.put("apikey", apikey);
  params.put("text", text);
  params.put("mobile", mobile);
  return post("https://sms.yunpian.com/v2/sms/batch_send.json", params);//请自行使用post方式请求,可使用Apache HttpClient
}

多个手机号之间使用逗号分隔,mobile可以这样赋值

String mobile = "1888888888, 1234567890, 9876543210"

详细的说明可以参看这里

批量个性化发送接口

很多时候,我们遇到的需求没有那么简单,经常要给不同的手机号发送不同的内容,而云片也提供了对应的API。

/**
 * 批量个性化发送
 */
public static String multiSend() throws UnsupportedEncodingException {
  Map<String, String> params = new HashMap<String, String>();//请求参数集合
  params.put("apikey", "your apikey");
  params.put("text", java.net.URLEncoder.encode("【云片网】您的验证码是1234", "UTF-8") + ","
      + java.net.URLEncoder.encode("【云片网】您的登录码是8888", "UTF-8"));
  params.put("mobile", "13812345678,18888888888");
  return post("https://sms.yunpian.com/v2/sms/multi_send.json", params);//请自行使用post方式请求,可使用Apache HttpClient
}

上面这段代码的结果就是第一条短信"【云片网】您的验证码是1234"发给了13812345678,第二条短信"【云片网】您的登录码是8888"发给了18888888888,当然这样的实现方式还是看起来很蠢,不过不用担心,云片网还提供了变量模板,只要替换模板中对应的变量部分,就可以轻松实现给多个号码发送不同的短信内容,关于变量模板,以后可以再多聊聊,反正他完美执行了设计模式中OCP原则,简直经典。

更详细的介绍,可以看这里

这篇文章主要用的是Java实现短信验证码,以后还会写一篇PHP实现短信验证码的,如果等不及了,云片的文档中也有对PHP的说明,可以先睹为快。

(0)

相关推荐

  • java发送短信系列之限制发送频率

    本篇是发送短信的第二部分, 这里我们介绍一下如何限制向同一个用户(根据手机号和ip)发送短信的频率. 1.使用session 如果是web程序, 那么在session中记录上次发送的时间也可以, 但是可以被绕过去. 最简单的, 直接重启浏览器 或者 清除cache等可以标记session的数据, 那么就可以绕过session中的记录. 虽然很多人都不是计算机专业的, 也没学过这些. 但是我们需要注意的是, 之所以限制发送频率, 是为了防止"短信炸弹", 也就是有人恶意的频繁的请求向某个

  • java使用短信设备发送sms短信的示例(java发送短信)

    复制代码 代码如下: import gnu.io.*;import java.util.*;import java.io.*; public class CommTest{    static CommPortIdentifier portId;    static Enumeration portList;    static int bauds[] = { 9600, 19200, 57600, 115200 };    //检测端口所支持的波特率 public static void ma

  • JAVA实现利用第三方平台发送短信验证码

    前段时间自己做的一个小项目中,涉及到用短信验证码登录.注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来. 本文以注册为例,在SpringMVC+Spring+Mybatis框架的基础上完成该短信验证码功能. 发送短信验证码的原理是:随机生成一个6位数字,将该6位数字保存到session当中,客户端通过sessionid判断对应的session,用户输入的验证码再与session记录的验证码进行比较. 为了防止有广告嫌疑

  • java发送短信系列之限制日发送次数

    在前两篇文章中, 我们实现了同步/异步发送短信以及限制发送短信频率.这一篇, 我们介绍一下限制每日向同一个用户(根据手机号和ip判断)发送短信的次数 1.数据表结构 由于需要记录整天的发送记录, 因此这里我们将数据保存到数据库中. 数据表结构如下: type为验证码的类型, 比如注册, 重置密码等. sendTime的默认值为当前时间. 2.限制日发送次数 我们这里需要用到上一篇中提到的接口和实体类. DailyCountFilter.java public class DailyCountFi

  • java发送短信的实现步骤

    一.在中国网建中注册用户:本程序是通过中国网建提供的SMS短信平台实现的,该平台新用户注册可以拥有免费5条普通短信和3条彩信,足够进行尝试和体验了.中国网建注册地址:http://sms.webchinese.cn/reg.shtml: 二.修改短信签名:注册成功后登陆,用户登陆有首先要修改短信签名,因为中国网建中规定了,发送的短信如果没有正规的签名是不能成功发送的,提示性信息见下图: 修改短信签名的步骤:用户信息修改--->修改用户信息--->保存信息,如下图: 三.修改验证码网关和绑定短信

  • java发送短信系列之同步、异步发送短信

    本篇本章是发送短信的第一部分, 说一下同步/异步发送短信的代码, 以后几篇我们稍微完善一下功能, 添加发送频率的限制和日发送次数的限制. 发送短信的方法可能不少, 我们的方法是使用服务商提供的服务. 一般来说, 这些服务都是和语言无关的, 这里我们使用java写示例程序. 1.发送短信的接口 根据自己的情况选择服务商. 2.开发文档 从开发文档中我们可以看到. 可以直接使用http请求也可以使用WebService请求发送短信. 由于DEMO文件夹下的java和jsp文件夹中的代码都是使用htt

  • java使用smslib连接短信猫发送短信代码分享

    复制代码 代码如下: import java.util.ArrayList;import java.util.List; import org.apache.log4j.Logger;import org.smslib.ICallNotification;import org.smslib.IInboundMessageNotification;import org.smslib.IOutboundMessageNotification;import org.smslib.InboundMess

  • Java使用云片API发送短信验证码

    下面开始介绍的是如何利用机器完成批量操作,将短信业务自动化. 获取APIKEY 云片网提供了完整的SDK和API,可以帮助开发者快速完成业务开发. 在开始Coding前,需要先获取APIKEY,如下所示. 获取APIKEY 点击眼睛按钮后,输入验证码,就可以查看APIKEY了. 这里需要说明的是,APIKEY特别重要,一定要保护好它,避免泄露.云片这边提供了几重保护机制,例如验证.敏感处理.子账号独立APIKEY等,看得出来他们的安全意识还是挺不错的. 开始Coding 有了APIKEY,就可以

  • django项目中使用云片网发送短信验证码的实现

    1. 在apps包下新建一个utils的python包 2. utils包中新建一个YunPian.py文件,文件中代码如下 import requests import json def send_single_sms(apikey, code, mobile): # 发送单条短信 url = "https://sms.yunpian.com/v2/sms/single_send.json" text = "[后端学习]您的验证码是{}.如非本人操作,请忽略本短信"

  • java实现发送短信验证码

    最近用学习了一下调用第三方接口发送短信验证码的程序,希望能够帮助到大家. 1.首先下图为项目的目录结构,需要带入三个包: commons-httpclient-3.1.jar commons-logging-1.0.4.jar codec-1.3.jar 2.其次要创建模拟POST.GET请求的工具类: package com.demo.util; import java.io.IOException; import java.util.Map; import org.apache.common

  • Java实现发送短信验证码+redis限制发送的次数功能

    java实现短信验证码发送,由于我们使用第三方平台进行验证码的发送,所以首先,我们要在一个平台进行注册.这样的平台有很多,有的平台在新建账号的时候会附带赠几条免费短信.这里我仅做测试使用(具体哪个平台见参考三,很简单,注册账号就行,记得添加短信签名). 另外,在实际项目中,如果有人恶意攻击,不停的发送短信验证码,就会造成很大的损失.故对发送次数做一定的限制就非常必要,这里我们限制一个手机号一天可以发多少短信和短信平台无关. 这里采用的是存redis来实现这一个功能.就是每次调用发送验证码这个接口

  • Java实现发送短信验证码功能

    一个发送短信验证码的功能,使用的是信易通的短信平台接口,然后在Java中使用HttpClient模拟POST请求或者GET请求(看短信平台要求,一般的情况下都是POST请求),调用短信平台提供的接口(遵循短信平台的接口规范即可).具体看代码: 使用HttpClient的时候需要在项目中引入: commons-httpclient-3.1.jar 这个jar包, 项目结构: 1.创建一个Http的模拟请求工具类,然后写一个POST方法或者GET方法 /** * 文件说明 * @Descriptio

  • java接入创蓝253短信验证码的实例讲解

    说明 项目是springboot框架 1.短信配置文件 包含验证码发送路径.用户名.密码 chuanglan.requesturl= chuanglan.account= chuanglan.pswd= 配置文件 具体值 查看官网 位置查看截图 红框已经标红 2.读取配置文件类 3.发送数据request实体类 public class SmsVariableRequest { private String account; private String password; private St

  • java 随机生成6位短信验证码实例代码

    生成6位随机数字其实很简单,只需一行代码,具体如下: String verifyCode = String.valueOf(new Random().nextInt(899999) + 100000); 具体实现发送短信验证码功能,以注册为例,其实现代码如下: 这里需要用到第三方短信验证码接口,这里用到的是乐信短信验证码接口,乐信接口API文档说明(http://www.lx598.com/apitext.html),乐信java调用短信验证码接口 demo(http://www.lx598.c

  • Java调取创蓝253短信验证码的实现代码

    基于创蓝253短信服务平台的Java调用短信接口API package com.bcloud.msg.http; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.net.URLDecoder; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpStatus; i

  • python网络爬虫实现发送短信验证码的方法

    前言:今天要总结的是如何用程序来实现短信发送功能.但是呢,可能需要我们调用一些api接口,我会详细介绍.都是自己学到的,害怕忘记,所以要总结一下,让写博客成为一种坚持的信仰.废话不多说,我们开始吧! 网络爬虫实现发送短信验证码 在实现我们目标的功能之前,我们要有自己的思路,否则你没有方向,又如何实现自己的代码功能呢? 我们要发送短信,那么我们其实是需要分析的.我们可以去分析一个可以发送短信的网站页面. 我们来到这里如下: 可以看到这是一个注册界面,我们在注册时会被要求需要填写手机号码的·,其实还

随机推荐