因公司项目需要,研究了一下极光的短信集成,踩了不少坑,特此记录总结一下自己前段时间的学习:

--------------------------------------------------------我是分割线---------------------------------------------------------------

第一部分:

导入jar包,我的项目是用maven,在pom文件的通过依赖注入:

maven 方式

将下边的依赖条件放到你项目的 maven pom.xml 文件里。

其中 slf4j 可以与 logback, log4j, commons-logging 等日志框架一起工作,可根据你的需要配置使用。

<dependency><groupId>cn.jpush.api</groupId><artifactId>jsms-client</artifactId><version>1.2.5</version>
</dependency>
<dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.3</version>
</dependency>
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-api</artifactId><version>1.7.7</version>
</dependency>
<dependency><groupId>cn.jpush.api</groupId><artifactId>jiguang-common</artifactId><version>1.0.8</version>
</dependency>
<!-- For log4j -->
<dependency><groupId>org.slf4j</groupId><artifactId>slf4j-log4j12</artifactId><version>1.7.7</version>
</dependency>
<dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version>
</dependency>

第二部分:

注册极光的账户,拿到AppKey和MasterSecret,此处就不多介绍了,可以参看官网的入门指南点击打开链接,一定要拿到AppKey和MasterSecret后边集成

demo时会用到;认证完后得20条免费的短信,方便测试;

第三部分:
短信文本的设置,签名都可以看下图

根据自己的需求去设置这些东西;

第四部分:

进入极光官网--->极光官网--->开发者服务--->极光短信--->进入会有对短信概要,最下边有个接入平台,如下图:完后会进入RESTAPI,仔细参看API,不然都不知道怎么跳进坑的,所以---->好好了解API

极光还是很人性的,给了源码看看demo相当的仔细,点击打开链接

示例代码如下:

public class JSMSExample {

   
  protected static final Logger LOG = LoggerFactory.getLogger(JSMSExample.class);
   
  private static final String appkey = "242780bfdd7315dc1989fe2b";
  private static final String masterSecret = "2f5ced2bef64167950e63d13";
   
   
  public static void main(String[] args) {
  testSendSMSCode();
  testSendValidSMSCode();
   
  }
  //发送短信验证码
  public static String testSendSMSCode(String phone) {
  SMSClient client = new SMSClient(masterSecret, appkey);
  SMSPayload payload = SMSPayload.newBuilder()
  .setMobileNumber("13800138000")
  .setTempId(1)
  .build();String resule = null;
  try {
  SendSMSResult res = client.sendSMSCode(payload);
  System.out.println(res.toString());
  LOG.info(res.toString());
  } catch (APIConnectionException e) {
  LOG.error("Connection error. Should retry later. ", e);
  } catch (APIRequestException e) {
  LOG.error("Error response from JPush server. Should review and fix it. ", e);
  LOG.info("HTTP Status: " + e.getStatus());
  LOG.info("Error Message: " + e.getMessage());
  }result = res.toString()return result;//返回的是json{msg_id:"4346777"}
  }
   
  //验证码校验
  public static Boolean testSendValidSMSCode(String msg_id,String valid) {
  SMSClient client = new SMSClient(masterSecret, appkey);Boolean valid = false;
  try {
  ValidSMSResult res = client.sendValidSMSCode(msg_id ,valid);valid = res.getIs_Valid
  System.out.println(res.toString());
  LOG.info(res.toString());return valid;
  } catch (APIConnectionException e) {
  e.printStackTrace();
  System.out.println(e.getMessage());
  LOG.error("Connection error. Should retry later. ", e);
  } catch (APIRequestException e) {
  e.printStackTrace();
  if (e.getErrorCode() == 50010) {
  // do something
  }
  System.out.println(e.getStatus() + " errorCode: " + e.getErrorCode() + " " + e.getErrorMessage());
  LOG.error("Error response from JPush server. Should review and fix it. ", e);
  LOG.info("HTTP Status: " + e.getStatus());
  LOG.info("Error Message: " + e.getMessage());
  }
  }
  }

第五部分:

坑1:

验证码valid默认设置成true,当为错误验证信息(空、不是6位数字时)走catch抛异常,默认返回还是true,不对的,改成false就ok;

坑2:

注册接口独立,发送短信接口独立,注册时只有验证码通过才能注册成功,此时问题,发送接口在注册里再被调拿到的msg_id与第一回的不一样,但是必须注册调校验接口传参数msg_id ,最后解决问题,独立调发送接口将msg_id返回安卓,安卓注册时再传进来俩参数,ok

-----------------------------------因公司不能带出来代码,所以没禁止思路跟跳的坑,特此记录、总结,完-----------------------------------------------

java极光短信的集成相关推荐

  1. Java极光短信发送

    1.官网发送api https://docs.jiguang.cn//jsms/server/rest_api_jsms/ 2.官网依赖 https://docs.jiguang.cn//jsms/s ...

  2. 极光小课堂 | 极光短信与 Java 整合指南

    前言 今天大Boss给小优优说,你给咱们的注册系统增加一下短信验证吧.后来一it好友告诉小优优,说用极光短信吧,毕竟人家就是做消息推送出身的,技术以及实时性肯定没的说. 小优优觉得说的对,毕竟人家是专 ...

  3. 极光短信推送-java使用

    首先介绍下这个 极光推送,就是一个平台.里面服务主打app推送.但是也有发送短信的功能.其实文档也还算可以.sdk可用性也很高.不过到底看文档需要时间的.所以我直接写一下用法(仅限于短信) 第一部分: ...

  4. 极光短信验证码的集成过程

    1.注册极光短信验证码的账号 2.JPush的集成步骤: (1)下载SDK,里面有这些内容 [图片] (2)将jar包拷贝到项目的libs目录下,并进行拷贝一个build.grade文件 (3)进行在 ...

  5. 【JAVA】短信集成设计方案

    [JAVA]短信集成设计方案 一.系统集成需求 二.集成方案设计 三.接口设计 一.系统集成需求 1.现场巡视任务中,每一个巡视工单有开始和结束时间,当巡视任务超时.即当前时间已超过巡视工单的预计结束 ...

  6. 极光短信在程序中(JAVA)的使用

    1:配置极光短信的相关属性:注册极光短信后获取 2:创建签名:每个签名都是类似主题的存在,一个签名可以对应多个短信模板 3:创建模板: 模板类型:根据实现情况选择 正文内容:要发送的短信内容 时效 时 ...

  7. java发送短信模板_java发送短信

    java发送短信一般步骤 一.在中国网建中注册用户:本程序是通过中国网建提供的SMS短信平台实现的,该平台新用户注册可以拥有免费5条普通短信和3条彩信,足够进行尝试和体验了.中国网建注册地址:http ...

  8. 中国网建SMS短信接口调用(java发送短信)

    java发送短信 package sms;import org.apache.commons.httpclient.Header; import org.apache.commons.httpclie ...

  9. php 极光短信发送 api

    极光 demo 代码引用如下 <?php//极光 短信 class JpushSmsService {const URL = 'https://api.sms.jpush.cn/v1/';pri ...

最新文章

  1. 深度学习图像分割:网络结构设计一览
  2. ceph存储原理_Ceph存储引擎BlueStore简析
  3. java 高并发第三阶段实战_JAVA多线程编程实战视频-第三阶段(共80节)
  4. Silverlight 2 RTW中ToolTipService.ToolTip不继承父节点的DataContext的问题
  5. 太阳能发电产业有望大发展
  6. Qt 原理-MOC(1)Meta Object Compiler
  7. stringbuilder寻找字符串位置可能存在多个 java_【面试题系列】——Java基础
  8. 1.3求根之牛顿迭代法
  9. html5包含inc文件,HTML中include file标签的用法
  10. 问题 L: 一年中的第几天
  11. 【Noip模拟 20161005】公约数
  12. python dict()函数的奇异之处
  13. 【Try to Hack】masscan
  14. WordPress自动采集发布文章02-软件批量伪原创
  15. 马克思主义哲学(认识论)
  16. Git同时配置github和gitee
  17. 【d3】树图-各种效果集合(附效果图)
  18. 多重共线性:python中利用statsmodels计算VIF和相关系数消除共线性
  19. 如何关闭伽卡他卡的开机自启
  20. python对人工智能的看法_为什么人工智能用python

热门文章

  1. 基于ROS设计一款机械臂控制系统 [转发]
  2. 你是否同意放开二胎政策
  3. 微信小程序原生开发功能合集一:微信小程序开发介绍
  4. MS SQL基本语法及实例操作
  5. 微信图文中出现了腾讯视频时,教你弄到不能直接获取的视频原始地址的方法~
  6. ssd win7 linux找不到硬盘,我的电脑找不到固态硬盘的盘符怎么办|固态硬盘没有显示盘符解决方法-系统城...
  7. css之@media网页适配
  8. Linux网络编程-七
  9. “华为杯”研究生数学建模竞赛2020年-【华为杯】B题:降低汽油精制过程中的辛烷值损失模型(附获奖论文)
  10. DMCTF writeup