【转+修改】容联云通讯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

 

时间: 2024-12-21 02:01:29

【转+修改】容联云通讯api调用短信发送调用的相关文章

容联云通讯API的学习过程及 RestAPI Node.js 封装

进入正文~ 公司最近有个活动,会用到云通讯的功能.作为一个全栈工程师自然是对 JavaScript 比较熟一点,所以决定选择 Nodejs 来进行开发.看了一下云通讯的文档,没有 Nodejs 的 SDK (´°????????ω°????????`) 好在 Rest API 是基于 HTTP 协议的,用其他语言也能很容易地实现接口 (?>?<?) 可能是因为对云通讯这种功能没什么概念吧,看了一遍文档还是云里雾里的.怎么办呢……于是决定对着文档一个一个接口试,试下来以后对云通讯的功能也有了个大

引领手机流量营销 容联云通讯嘿嘿流量打造多场景专业服务

随着4G网络和智能设备的快速普及,手机流量作为移动互联网时代的用户刚需,已经被越来越多的企业采购作为宣传推广产品的敲门砖.手机流量营销,其实是一种全新的激励营销方式,电商.APP.游戏等产品在做营销推广时,以手机流量包作为激励品,刺激用户参与活动和互动,以达到营销推广的目的. 当然,这些流量活动都离不开第三方手机流量分发平台,一个连接着运营商和互联网厂商的关键点.今日,我们就拿嘿嘿流量为例,简单分析下第三方手机流量分发平台的使用场景. 嘿嘿流量:多场景手机流量营销方案 嘿嘿流量为企业提供灵活.便

容联云通讯B轮融资1500万美元,任性送豪礼!!!

很想有钱,但没涨薪怎么有钱: 很想涨薪,没姿(neng)势(li)怎么高薪: 很想涨姿(neng)势(li),没钱怎么涨姿(neng)势(li). 没钱怎么涨姿(neng)势(li)! 没姿(neng)势(li)怎么高薪! 没涨薪怎么有钱! 没钱怎么任性! 云通讯融资1500万美元,任性送豪礼,购物卡.极客学院会员送不停! 这一次,让你没钱也能任性购物,没钱也能任性涨姿(neng)势(li)! 活动时间   即日起-2015年2月4日   活动内容 以下三种参与方式任选一种: 1.打开http:

【shell】创蓝253云通讯平台国际短信API接口DEMO

#!/bin/sh account and password can be change to what you wanna! #author ChuangLan#修改为您的accountaccount=""#修改为您的pwpassword="a.123456"#手机号码,格式(区号+手机号码),例如:8615800000000,其中86为中国的区号mobile="8615800000000"#设置您要发送的内容msg="[253云通讯

【PYTHON】创蓝253云通讯平台国际短信API接口DEMO

#!/usr/local/bin/python#-- coding:utf-8 -- Author: jacky Time: 14-2-22 下午11:48 Desc: 短信http接口的python代码调用示例 import httplibimport urllibimport json#服务地址 host = "intapi.253.com" #端口号port = 80 #版本号version = "v1.1" #查账户信息的URIbalance_get_uri

【C(C++)】创蓝253云通讯平台国际短信API接口DEMO

#include <arpa/inet.h>#include <assert.h>#include <errno.h>#include <netinet/in.h>#include <signal.h>#include <stdlib.h>#include <stdio.h>#include <string.h>#include <sys/types.h>#include <sys/socke

【ASP】创蓝253云通讯平台国际短信API接口DEMO

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> <% Function Post(url,data) dim Https set Https=server.createobject("MSXML2.XMLHTTP") Https.open "POST",url,false Https.setRequestHeader "Content-Type",&qu

mevan引入容联云通讯jar

首先从官网下载jar 然后拷贝到lib目录下 最后在pom.xml中这样写 <dependency> <groupId>cn.com</groupId> <artifactId>CCP_REST_SMS_SDK_JAVA_v2.6.3r</artifactId> <version>2.6.3</version> <scope>system</scope> <systemPath>${pr

【ASP】创蓝253云通讯paas平台短信验证码接口调用demo

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%><%Function Post(url,data)dim Https set Https=server.createobject("MSXML2.XMLHTTP")Https.open "POST",url,falseHttps.setRequestHeader "Content-Type","ap