具体实现

  在做项目时,想将手机注册登录整合到项目当中,但是阿里云已经不支持个人认证,腾讯云好像也不支持。有人推荐说用容联云,经过调试,成功的实现短信发送。需要注意的是,验证码是我们后端程序生成,然后由运营商接收发送的。
  首先注册一个容联云账号,然后创建一个应用,应用不用上线,没关系。代码如下:

import com.cloopen.rest.sdk.BodyType;
import com.cloopen.rest.sdk.CCPRestSmsSDK;import java.util.HashMap;
import java.util.Random;
import java.util.Set;/*** @author zxb*/
public class MsmTest {/*** 生成六位验证码** @return 验证码*/public static String generateCode() {Random random = new Random();StringBuilder sb = new StringBuilder();for (int i = 0; i < 6; i++) {sb.append(random.nextInt(10));}return sb.toString();}public static void main(String[] args) {// 整合容联云短信服务//生产环境请求地址:app.cloopen.comString serverIp = "app.cloopen.com";//请求端口String serverPort = "8883";//主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKENString accountSId = "accountSId"; // 需修改String accountToken = "auth token"; // 需修改//请使用管理控制台中已创建应用的APPIDString appId = "appId";  // 需修改CCPRestSmsSDK sdk = new CCPRestSmsSDK();sdk.init(serverIp, serverPort);sdk.setAccount(accountSId, accountToken);sdk.setAppId(appId);sdk.setBodyType(BodyType.Type_JSON);// 多个号码之间用英文逗号隔开,号码数不超过 200 个String to = "139xxxxxxx,178xxxxxxx";// 模板id,官网控制台模板列表获取。测试模板写死是 1String templateId = "1";String code = generateCode();// datas 用于替换短信模板中的值,可以定义多个。这里替换模板中的 验证码 和 有效时间String[] datas = {code, "3"};// subAppend 扩展码,可选,四位数字 0~9999,具体用处尚不明确,建议注释// String subAppend = "1234";// reqId 第三方自定义消息id,可选,最大支持32位英文数字,同账号下同一自然天内不允许重复,建议注释// String reqId = "fadfafas";// HashMap<String, Object> result = sdk.sendTemplateSMS(to, templateId, datas, subAppend, reqId);HashMap<String, Object> result = sdk.sendTemplateSMS(to, templateId, datas);if ("000000".equals(result.get("statusCode"))) {//正常返回输出data包体信息(map)HashMap<String, Object> data = (HashMap<String, Object>) result.get("data");Set<String> keySet = data.keySet();for (String key : keySet) {Object object = data.get(key);System.out.println(key + " = " + object);}} else {//异常返回输出错误码和错误信息System.out.println("错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg"));}}}

maven依赖

     <dependency><groupId>com.cloopen</groupId><artifactId>java-sms-sdk</artifactId><version>1.0.3</version></dependency>

最终效果

问题

在发送短信的过程中,如果出现如下问题:

那么就是你可能用了 HashMap<String, Object> result = sdk.sendTemplateSMS(to, templateId, datas, subAppend, reqId); 五参的方法,这里 reqId 一天之内不能重复,建议使用三参的方法。

如果有如下问题:

那么请将 gson 的依赖升级下,我用的是如下版本,亲测有效:

     <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.6</version></dependency>

如果还有其他问题,欢迎大家一起讨论!

Java实现手机登录功能相关推荐

  1. 【尚医通】手机登录功能

    文章目录 1.功能概述 2.短信服务 3.登录校验代码 1.功能概述 该项目的手机登录功能是采取 手机号 + 验证码 的方式进行登录验证,所以该功能需要阿里云短信服务的支持,如今由于我们个人没办法申请 ...

  2. java多端登录_【Java】一个登录功能也能玩出这么多花样?sa-token带你轻松搞定多地登录、单地登录、同端互斥登录...

    需求场景 说起登录,你可能会不屑一顾,还有比这更简单的功能吗? 获取一下用户提交参数 username + password 和数据库中一比对,有记录返回[登录成功],无记录返回[用户名或密码错误] ...

  3. Java 实现单点登录功能

    J2EE社区 苟有恒,何必三更起五更眠; 最无益,只怕一日曝十日寒. posts - 238, comments - 317, trackbacks - 0, articles - 16 导航 首页 ...

  4. Java个人手机账户功能的基本操作实现

    所需技术:面向对象之封装,构造方法,数组,Scanner,程序的流程控制,list集合 创建实体类Phone 启动程序进入主菜单,控制台上打印[1]用户登录 [2]办理手机号 [3]退出 用户登录模块 ...

  5. java实现手机验证码功能

    手机短信验证现在在各种系统可以说都是用的非常普遍的,这个可能是方便和安全性的考虑,所以才广泛的使用简单实用一下短信接口. Demo下载 链接: 百度网盘 请输入提取码 提取码: i1r8 实用短信接口 ...

  6. Abp Core添加手机登录功能

    交流QQ号:555913397 有什么问题可以加群大家一起交流 上一章讲解了如何添加短信验证码登录,这一章给大家讲讲如何用"手机号"加"密码"登录,多的不说了, ...

  7. java仿qq登录 界面设计,Java Swing仿QQ登录界面效果

    本文实例为大家分享了Java Swing仿QQ登录界面展示的具体代码,供大家参考,具体内容如下 闲来无事将早些时候已实现的QQ登录界面再实现了一遍,纯手工打造(意思是没有用NetBeans.MyEcl ...

  8. java实现简单扫码登录功能(模仿微信网页版扫码)

    java实现简单扫码登录功能 模仿微信pc网页版扫码登录 使用js代码生成qrcode二维码减轻服务器压力 js循环请求服务端,判断是否qrcode被扫 二维码超时失效功能 二维码被扫成功登录,服务端 ...

  9. Java实现手机验证码登录和SpringSecurity权限控制

    手机验证码登录和SpringSecurity权限控制 手机快速登录功能,就是通过短信验证码的方式进行登录.这种方式相对于用户名密码登录方式,用户不需要记忆自己的密码,只需要通过输入手机号并获取验证码就 ...

  10. 手机短信注册验证与登录功能

    文章目录 一.前言 二.准备工作 三.发布短信 1.基本测试发布 ①可-使用测试模板进行调试 ②测试结果 ③注意,可能会调试失败,是因为没有余额.进入首页点击头像>进入余额充值:一条大概4分钱 ...

最新文章

  1. 推荐 xiaotie 的开源GIS专题文章索引
  2. Tair的桶分布策略介绍及新的机器级位置安全优先策略实现
  3. SQL--Chapter1_Overview of SQL Server
  4. QT的QFileOpenEvent类的使用
  5. 十大经典数据挖掘算法:EM
  6. 浅谈蓝牙“嗅探”功能设计
  7. 机器学习基石HOW部分(1)
  8. 夯实Java基础(十九)——集合
  9. 数据结构实验之图论九:最小生成树
  10. matlab虚拟现实之在V-Realm Builder2中建立父子关系
  11. [51nod1106]质数检测
  12. 英文文献翻译-----改进三维网格分析和分割的马尔可夫随机场
  13. 用rhino做一个地球_2
  14. .NET获取微信openid
  15. signature=0805b6a4f11b6551d9a746082990b689,Derived certificate based on changing identity
  16. 如何修复iPhone、iPad 或 Mac 上的 AirDrop 连接问题?
  17. Windows server DHCP服务器为多个VLAN分配IP地址
  18. android 实现调查问卷-单选-多选
  19. ArcGIS engine中Display类库——Display(一)
  20. FileWriter和BufferedWriter用处,区别

热门文章

  1. 回眸2020,展望2021
  2. 科学计算机开方符号是什么意思,计算器里开平方的符号请举来瞧瞧,好让自己购 – 手机爱问...
  3. python自带idle_使用自带的IDLE
  4. 台式计算机有乱码如何解决,电脑乱码怎么办,开机乱码解决方法
  5. stm32摄像头调试 | 串口传输照片数据 | 用python来设计上位机通信软件
  6. walking机器人仿真教程-应用-多点导航结合摄像头实现在线查房
  7. 服务器打开xlsm文件,XLSM 文件扩展名: 它是什么以及如何打开它?
  8. linux KVM的网络设置方法(bridge和nat)
  9. LiveChart样式参数介绍
  10. 新手小白如何挑选吉他,附几款超高性价比吉他推荐