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

 更新时间:2017年02月09日 10:47:49   投稿:mrr  
这篇文章主要介绍了Java使用云片API发送短信验证码,主要用的是Java实现短信验证码。需要的朋友可以参考下

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

获取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的说明,可以先睹为快。

相关文章

  • Mybatis使用连表查询的操作代码

    Mybatis使用连表查询的操作代码

    这篇文章主要介绍了Mybatis如何使用连表查询,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-08-08
  • JavaWeb实现文件上传与下载的方法

    JavaWeb实现文件上传与下载的方法

    这篇文章主要介绍了JavaWeb实现文件上传与下载的方法的相关资料,需要的朋友可以参考下
    2016-01-01
  • Java Runnable线程传参,实现让run访问参数

    Java Runnable线程传参,实现让run访问参数

    这篇文章主要介绍了Java Runnable线程传参,实现让run访问参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Spring 中的InitializingBean使用示例

    Spring 中的InitializingBean使用示例

    InitializingBean 是 Spring 框架中的一个接口,用于在 Spring 容器中初始化 bean 时执行特定的初始化逻辑,这篇文章主要介绍了Spring 中的InitializingBean使用示例,需要的朋友可以参考下
    2024-08-08
  • Java 中String StringBuilder 与 StringBuffer详解及用法实例

    Java 中String StringBuilder 与 StringBuffer详解及用法实例

    这篇文章主要介绍了Java 中String StringBuilder 与 StringBuffer详解及用法实例的相关资料,需要的朋友可以参考下
    2017-02-02
  • Java代码重用之功能与上下文重用

    Java代码重用之功能与上下文重用

    代码重用通常使得程序开发更加快速,并使得 BUG 减少。一旦一段代码被封装和重用,那么只需要检查很少的一段代码即可确保程序的正确性。接下来通过本文给大家介绍Java代码重用之功能与上下文重用的相关知识,感兴趣的朋友跟随脚本之家小编一起学习吧
    2018-05-05
  • 一文吃透Spring Cloud gateway自定义错误处理Handler

    一文吃透Spring Cloud gateway自定义错误处理Handler

    这篇文章主要为大家介绍了一文吃透Spring Cloud gateway自定义错误处理Handler方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • Spring单数据源的配置详解

    Spring单数据源的配置详解

    spring数据源的配置网络上有很多例子,这里我也来介绍一下单数据源配置的例子,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • Java中的Object类详细解读

    Java中的Object类详细解读

    这篇文章主要介绍了Java中的Object类详细解读,java.lang.Object是类层次结构的根类,即所有其它类的父类,每个类都使用 Object 作为超类,需要的朋友可以参考下
    2023-11-11
  • springboot关于容器启动事件总结

    springboot关于容器启动事件总结

    在本篇文章里小编给大家整理的是一篇关于springboot容器启动事件相关知识点,需要的朋友们学习下。
    2019-10-10

最新评论