【转+修改】容联云通讯api调用短信发送调用
转自 https://my.oschina.net/u/1995134/blog/814540
需要荣联云通讯 的 相对应SDKjar包。
CCP_REST_SMS_SDK_JAVA_v2.6.3r.jar
调用测试在main方法里:
public static void main(String[] args){
ResponseObj obj = FhPhoneMassageSender.testSender("176****5720","呵呵"); -- 手机号码及内容
System.out.println(obj.getResultMsg());
}
上代码:
import java.util.HashMap;
import java.util.Set; import com.cloopen.rest.sdk.CCPRestSmsSDK;public class FhPhoneMassageSender {
private static String sms_ytx_url="appsms.cloopen.com";
private static String sms_ytx_port="8883";
private static String sms_ytx_sid="*****************ff2dea1de4a6f";
private static String sms_ytx_token="fa9b5d*************2457508977";
private static String sms_ytx_appid="aaf98f89544cd9d9015475b429082343";
private static String sms_ytx_valid_min="5";
private static String sms_ytx_tempid="8****40";
/**
* <p class="detail">
* 功能:容联云通讯-发送短信
* </p>
* @author liuwh
* @date 2016-1-22
* @param tel 手机号码,多个用,分隔
* @param verifyCode 验证码
* @return
*/
public static ResponseObj sendRegCodeByYTX(String tel, String verifyCode,String verifyName){ ResponseObj obj = new ResponseObj(true, "操作成功");
HashMap<String, Object> result = null;
//初始化SDK
CCPRestSmsSDK restAPI = new CCPRestSmsSDK(); restAPI.init(Global.getConfig("sms_ytx_url"), Global.getConfig("sms_ytx_port")); restAPI.setAccount(Global.getConfig("sms_ytx_sid"), Global.getConfig("sms_ytx_token"));//账号、密码 restAPI.setAppId(Global.getConfig("sms_ytx_appid"));//应用ID String smsValidMin=Global.getConfig("sms_ytx_valid_min"); //验证码过期时间
if(StringUtils.isEmpty(smsValidMin)){
smsValidMin="5";
}
result = restAPI.sendTemplateSMS(tel, Global.getConfig("sms_ytx_tempid"),new String[]{verifyName,verifyCode, smsValidMin}); System.out.println("SDKTestGetSubAccounts result=" + result);
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"));
obj.setSuccessful(false);
obj.setResultMsg(String.valueOf(result.get("statusMsg")));
}
return obj;
} /**
* <p class="detail">
* 功能:容联云通讯-发送催款信息
* </p>
* @author liuwh
* @date 2016-1-22
* @param tel 手机号码,多个用,分隔
* @param verifyName 参数值(多个替换坑)
* @return
*/
public static ResponseObj sendPressMoneyByYTX(String tel,String... verifyName){ ResponseObj obj = new ResponseObj(true, "操作成功");
HashMap<String, Object> result = null;
//初始化SDK
CCPRestSmsSDK restAPI = new CCPRestSmsSDK(); restAPI.init(sms_ytx_url, sms_ytx_port); restAPI.setAccount(Global.getConfig("sms_ytx_sid"), Global.getConfig("sms_ytx_token"));//账号、密码 restAPI.setAppId(Global.getConfig("sms_ytx_appid"));//应用ID result = restAPI.sendTemplateSMS(tel, Global.getConfig("sms_ytx_press_tempid"), verifyName); 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"));
obj.setSuccessful(false);
obj.setResultMsg(String.valueOf(result.get("statusMsg")));
}
return obj;
}
public static ResponseObj testSender(String tel,String... verifyName){
ResponseObj obj = new ResponseObj(true, "操作成功");
HashMap<String, Object> result = null;
//初始化SDK
CCPRestSmsSDK restAPI = new CCPRestSmsSDK(); restAPI.init(sms_ytx_url,sms_ytx_port); restAPI.setAccount(sms_ytx_sid, sms_ytx_token);//账号、密码 restAPI.setAppId(sms_ytx_appid);//应用ID result = restAPI.sendTemplateSMS(tel, sms_ytx_tempid, verifyName); 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"));
obj.setSuccessful(false);
obj.setResultMsg(String.valueOf(result.get("statusMsg")));
}
return obj;
}
public static void main(String[] args){
ResponseObj obj = FhPhoneMassageSender.testSender("176****5720","呵呵");
System.out.println(obj.getResultMsg());
}
}
Global 是用来获取配置文件内容的。实际开发中可以像测试代码中那样把api需要的配置信息直接写在静态变量中。
ResponseObj 是自己封装的返回数据的类型:
package com.thinkgem.jeesite.common.utils; /**
* Created by antis on 2017/6/27.
*/
public class ResponseObj {
/**
* 总记录数
*/
private int total;
/**
* 当前记录集合
*/
private Object data;
/**
* 是否成功
*/
private boolean successful;
/**
* 结果消息
*/
private String resultMsg;
/**
* 错误类型
*/
private String type;
/**
* 添加数据
* @param data
* @return
*/
public static ResponseObj successResult(Object data) {
return new ResponseObj(1,data,true, "", "");
}
/**
* 添加数据
* @param data
* @return
*/
public static ResponseObj successResult(Object data,int total) {
return new ResponseObj(total,data,true, "", "");
}
/**
* 返回失败信息
* @param exMessage
* @return
*/
public static ResponseObj failedResult(String exMessage) {
return new ResponseObj(0, "", false,exMessage, "error");
}
/**
* 返回失败信息和类型
* @param exMessage
* @param type
* @return
*/
public static ResponseObj failedResult(String exMessage, String type) {
return new ResponseObj(0, "",false, exMessage, type);
}
/**
* 构造函数,类型为error
*
*/
public ResponseObj() {
type = "error";
}
public ResponseObj(boolean successful,String resultMsg){
this.successful = successful;
this.resultMsg = resultMsg;
}
public ResponseObj(int total, Object data, boolean successful,String resultMsg, String type) {
this.total = total;
this.data = data;
this.successful = successful;
this.resultMsg = resultMsg;
this.type = type;
}
/**
* @return the 总记录数
*/
public int getTotal() {
return total;
}
/**
* @param total 总记录数 the total to set
*/
public void setTotal(int total) {
this.total = total;
}
/**
* @return the 是否成功
*/
public boolean isSuccessful() {
return successful;
} /**
* @param successful 是否成功
* the successful to set
*/
public void setSuccessful(boolean successful) {
this.successful = successful;
} /**
* @return the data
*/
public Object getData() {
return data;
}
/**
* @param data the data to set
*/
public void setData(Object data) {
this.data = data;
}
/**
* @return the 结果消息
*/
public String getResultMsg() {
return resultMsg;
} /**
* @param resultMsg 结果消息
* the resultMsg to set
*/
public void setResultMsg(String resultMsg) {
this.resultMsg = resultMsg;
} /**
* @return the 错误类型
*/
public String getType() {
return type;
} /**
* @param type 错误类型
* the type to set
*/
public void setType(String type) {
this.type = type;
}
}
解释一下api需要的各个参数
private static String sms_ytx_url="appsms.cloopen.com"; --容联的appsms的url是固定不变的
private static String sms_ytx_port="8883"; --端口号,应该也是不变的
private static String sms_ytx_sid="*****************ff2dea1de4a6f"; --容联主账户的ACCOUNT SID
private static String sms_ytx_token="fa9b5d*************2457508977"; --容联主账户的AUTH TOKEN
private static String sms_ytx_appid="aaf98f89544cd9d9015475b429082343"; --正在开发的应用的 APP ID
private static String sms_ytx_valid_min="5"; --验证码有效时间 可以自己设置,分钟为单位
private static String sms_ytx_tempid="8****40"; --短信模板ID


【转+修改】容联云通讯api调用短信发送调用的更多相关文章
- python-在python3中使用容联云通讯发送短信验证码
容联云通讯是第三方平台,能够提供短信验证码和语音通信等功能,这里只测试使用短信验证码的功能,因此只需完成注册登录(无需实名认证等)即可使用其短信验证码免费测试服务,不过免费测试服务只能给控制台中指定的 ...
- 容联云通讯_提供网络通话、视频通话、视频会议、云呼叫中心、IM等融合通讯能力开放平台。
容联云通讯_提供网络通话.视频通话.视频会议.云呼叫中心.IM等融合通讯能力开放平台. undefined
- Luffy之注册认证(容联云通讯短信验证)
用户的注册认证 前端显示注册页面并调整首页头部和登陆页面的注册按钮的链接. 注册页面Register,主要是通过登录页面进行改成而成. 先构造前端页面 <template> <div ...
- mevan引入容联云通讯jar
首先从官网下载jar 然后拷贝到lib目录下 最后在pom.xml中这样写 <dependency> <groupId>cn.com</groupId> <a ...
- .Net语言 APP开发平台——Smobiler学习日志:如何调用API进行短信发送
最前面的话:Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台,也许比Xamarin更方便 一.目标样式 我们要实现上图中的效果,需要如下的操作: 二.发送短信代码 VB: Pr ...
- Java版阿里云通信短信发送API接口实例(新)
阿里云通信(原名阿里大于)的短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力,支持快速发送短信验证码.短信通知等. 完美支撑双11期间2亿用户,发送6亿短信 ...
- asp.net mvc短信接口调用——阿里大于API开发心得
互联网上有许多公司提供短信接口服务,诸如网易云信.阿里大于等等.我在自己项目里需要使用到短信服务起到通知作用,实际开发周期三天,完成配置.开发和使用,总的说,阿里大于提供的接口易于开发,非常的方便,短 ...
- 阿里云短信服务调用例子-Python
阿里云短信服务调用例子 阿里云官方文档https://helpcdn.aliyun.com/document_detail/101893.html 首先需要安装阿里云PythonSDK(下面是pyth ...
- 短信接口调用以及ajax发送短信接口实现以及前端样式
我们短信api用的是云信使平台提供的非免费短信服务:官网提供的demo有两种,分别是function加其调用.class文件加其调用. 在这里我们用class文件加调用: 首先,ThinkPHP里面自 ...
随机推荐
- springmvc与html之间的Json交互
1.配置pom.xml 错误信息:The container 'Maven Dependencies' references non existing library 解决方案:下图的checkbox ...
- [转]在windows service中使用timer
本文转自:http://blog.csdn.net/sharpnessdotnet/article/details/7637180 一定要使用System.Timers.Timer timer 而不是 ...
- android LinearLayout
Android的布局方式共有6种,分别是LinearLayout(线性布局).TableLayout(表格布局).FrameLayout(帧布局).RelativeLayout(相对布局).GridL ...
- Java基础(3)——变量
从这篇文章起开始正式进入正题啦,本文将较为简单的介绍一下变量以及常量.变量,顾名思义,就是可以变的量,常量那么久相反了,常常不变的量就叫常量._(¦3」∠) 变量 在 Java 中,任何一个变量都得有 ...
- 用手机管理及维护MySQL,Oracle等数据库
现在移动办公的情况及需求越来越多,平时MySQL,Oracle,SQLServer等数据库的管理都要通过客户端工具操作,现在有一款基于web网页的软件:TreeSoft数据库管理系统,在服务器布署一套 ...
- DOM基础操作实战代码
对于已经讲解给大家的DOM实战,我今天给大家几个实战代码,可以让大家加深对此的理解! 1.用DOM动态生成这样一个结构: <div class=”example”> <p class ...
- process对象
一.目录 process对象是Node的一个全局对象,提供当前Node进程的信息.它可以在脚本的任意位置使用,不必通过require命令加载.该对象部署了EventEmitter接口. 二.属性 pr ...
- qt5.6.3下使用firebird
有人把firebird比作数据库界的瑞士军刀,想学习一下其在QT5.6中的使用,于是便开始了一场自己挖坑,自己埋的旅程. 环境说明:win7 64位+QT5.6 mingw4.9 32位(好像官网上也 ...
- BZOJ4513: [Sdoi2016]储能表(数位dp)
题意 题目链接 Sol 一点思路都没有,只会暴力,没想到标算是数位dp??Orz 首先答案可以分成两部分来统计 设 \[ f_{i,j}= \begin{aligned} i\oplus j & ...
- iView定制主题报错问题的解决方法
按照iView官网来是这样的: 1. 在main.js当前目录下新建themes文件夹,里面新建一个叫blue.less的文件 2. 在mian.js里面引入blue.less文件 3. blue.l ...
