阿里大鱼短信介入demo分享

下面是关于大鱼短信平台对接的例子,发短信的话,可以用这个,很好用

/**
 * 通过阿里短信接口发送短信验证码
 *
 *
 *
 */
public class SendSmsUtil {
    private static Logger logger = Logger.getLogger(SendSmsUtil.class);
    /**
     * 生成验证码
     * @return
     */
    public static String getCaptcha() {
        String str = "0,1,2,3,4,5,6,7,8,9";
        String str2[] = str.split(",");// 将字符串以,分割
        Random rand = new Random();// 创建Random类的对象rand
        int index = 0;
        String randStr = "";// 创建内容为空字符串对象randStr
        randStr = "";// 清空字符串对象randStr中的值
        for (int i = 0; i < 4; ++i) {
            index = rand.nextInt(str2.length - 1);// 在0到str2.length-1生成一个伪随机数赋值给index
            randStr += str2[index];// 将对应索引的数组与randStr的变量值相连接
        }
        return randStr;
    }

    /**
     * 阿里短信的通用配置
     * @throws ClientException
     */
    public static IAcsClient aliSmsConfig() {
        //设置超时时间-可自行调整
        System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
        System.setProperty("sun.net.client.defaultReadTimeout", "10000");
        //初始化ascClient需要的几个参数
        final String product = "Dysmsapi";//短信API产品名称(短信产品名固定,无需修改)
        final String domain = "dysmsapi.aliyuncs.com";//短信API产品域名(接口地址固定,无需修改)
        //替换成你的AK
        final String accessKeyId = ConstantUtils.ACCESS_KEY_ID;//你的accessKeyId,参考本文档步骤2
        final String accessKeySecret = ConstantUtils.ACCESS_KEY_SECRET;//你的accessKeySecret,参考本文档步骤2
        //初始化ascClient,暂时不支持多region(请勿修改)
        IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId,
                accessKeySecret);
        try {
            DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
        } catch (ClientException e) {
            e.printStackTrace();
        }
        IAcsClient acsClient = new DefaultAcsClient(profile);
        return acsClient;
    }

    /**
     *
     * @param templateCode      短信模板编号
     * @param telephone         手机号,可多个,以‘,‘隔开,最多1000
     * @param templateParam     变量内容
     * @return
     * @throws ServerException
     * @throws ClientException
     */
    public static String sendSms(String templateCode, String telephone, String templateParam){
        IAcsClient acsClient = aliSmsConfig();
         //组装请求对象
         SendSmsRequest request = new SendSmsRequest();
         //使用post提交
         request.setMethod(MethodType.POST);
         //必填:待发送手机号。支持以逗号分隔的形式进行批量调用,批量上限为1000个手机号码,批量调用相对于单条调用及时性稍有延迟,验证码类型的短信推荐使用单条调用的方式
         request.setPhoneNumbers(telephone);
         //必填:短信签名-可在短信控制台中找到
         request.setSignName(ConstantUtils.SIGN_NAME);
         //必填:短信模板-可在短信控制台中找到
         request.setTemplateCode(templateCode);
         //可选:模板中的变量替换JSON串,如模板内容为"亲爱的${name},您的验证码为${code}"时,此处的值为
         //友情提示:如果JSON中需要带换行符,请参照标准的JSON协议对换行符的要求,比如短信内容中包含\r\n的情况在JSON中需要表示成\\r\\n,否则会导致JSON在服务端解析失败
         if(!StringUtil.isEmpty(templateParam)){
             request.setTemplateParam(templateParam);
         }
         //可选-上行短信扩展码(扩展码字段控制在7位或以下,无特殊需求用户请忽略此字段)
         //request.setSmsUpExtendCode("90997");
         //可选:outId为提供给业务方扩展字段,最终在短信回执消息中将此值带回给调用者
//       request.setOutId("yourOutId");
        //请求失败这里会抛ClientException异常
        SendSmsResponse sendSmsResponse = null;
        try {
            sendSmsResponse = acsClient.getAcsResponse(request);
        } catch (ServerException e) {
            e.printStackTrace();
            return "fail";
        } catch (ClientException e) {
            e.printStackTrace();
            return "fail";
        }
        if(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) {
            //请求成功
            logger.info("短息发送成功!手机号:" + telephone);
            return "success";
        } else {
            logger.error("短信发送失败!手机号:" + telephone + "|返回错误码:" + sendSmsResponse.getCode());
            return "fail";
        }
    }

    public static void main(String[] args) throws ServerException, ClientException {
        String code = getCaptcha();
        System.out.println("验证码为:" + code);
        String templateCode = ConstantUtils.CAPTCHA_TEL_CODE;
        String recNum = "18612349630";
//      String templateParam = "{\"code\":\"" + code +"\"}";
//      System.out.println("templateParam:" + templateParam);
//      sendSms(templateCode, recNum, templateParam);

        String templateParam = "{\"" + ConstantUtils.CODE_CAPTCHA_VAR_NAME + "\":\"" + code + "\"}";
//      String templateParam = "{\"" + ConstantUtils.NAME_FRANCHISEE_VAR_NAME + "\":\"" + name + "\"}";
        System.out.println("templateParam:" + templateParam);
        sendSms(templateCode, recNum, templateParam);
    }
}

原文地址:http://blog.51cto.com/13587708/2119430

时间: 2024-10-21 06:11:05

阿里大鱼短信介入demo分享的相关文章

阿里大鱼短信发送

阿里大鱼短信发送 官方文档 # 帮助文档 https://help.aliyun.com/product/44282.html?spm=5176.12453370.0.0.5e841cben3xsbf # openapi在线演示 https://api.aliyun.com/new#/?product=Dysmsapi&api=SendSms&tab=DEMO&lang=JAVA mozhuiqiu 步骤 获取accessId, accessSecret, 签名,模板id,模板参数

阿里大鱼短信接口整合Tp3.2.3开发整理

阿里大鱼 http://www.alidayu.com/ 的短信接口总体是不错的,别安驹个人认为不管是从性价比还是稳定性上都是跟同类的短信接口好些,毕竟是大公司的东西不会差到哪去.下面把之前开发的短信接口做个整理. 1,登陆阿里大鱼的管理中心新增自己的应用,然后使用什么模板请提交审核,此处不做多说. 2,核心步骤,整理阿里大鱼给出的php示例核心包,不过别安驹已经为你整理好了只需要下载即可  核心包传送门 (ps:解压密码:http://www.bieanju.com/). 3,前台调用发送短信

阿里大鱼短信接口

阿里大于短信验证实现完整代码分享 http://bbs.2ccc.com/topic.asp?topicid=515649 补充:跨平台的例子可以去csdn下载这位大神的demo http://download.csdn.net/detail/hansxia888/9603061 1 这两天搞那个sign,搞的烦躁,问了一下论坛的那位同学,开口500. 2 唉,delphi这种偏门的就是这样,啥都贵. 3 后来想想用C#按阿里那边的帮助文档写了个,可以正常发送.然后把C#翻译成Delphi就可以

阿里大鱼短信平台

首先登陆阿里大鱼短息发送平台 http://www.alidayu.com/ (阿里巴巴旗下) 登陆后点击管理中心,进入后台的管理中心,如图所示  进入管理中心后,点击短信签名管理,建立短信签名模板(审核需要一个工作日,如果等不急联系技术支持可以加急处理),签名是发信息的时候最前面展示[您申请的短信签名名称](注意申请的时候只填汉字即可不需要人为的去加黑括号)  短信模板管理里面申请你要发短信的内容,点击添加模板  等待申请好了,审核通过以后可以通过详情中查看申请的模板  此时点击应用列表中的应

阿里大鱼短信发送接口开发

一. API接口介绍 alibaba.aliqin.fc.sms.num.send (短信发送) 向指定手机号码发送模板短信,模板内可设置部分变量.使用前需要在阿里大于管理中心添加短信签名与短信模板.测试时请直接使用正式环境HTTP请求地址. [重要]批量发送(一次传递多个号码eg:1381111111,1382222222)会产生相应的延迟,触达时间要求高的建议单条发送 公共参数 请求地址: 环境 HTTP请求地址 HTTPS请求地址 正式环境 http://gw.api.taobao.com

阿里大鱼短信接口 for Thinkphp

不得不说阿里云为创业者在起步时期提供了不少便利,短信接口不管是web应用还是APP都必不可少.大鱼一张口,这是要生吞其他小虾米的节奏啊,四分的价格很便宜了,现在注册会送60元代金券,时间不到一个月,也就是让你免费调试,短信发送效果很好,基本能够达到承诺的三秒,一般情况两三秒,具体效果还待检验,好了,直奔主题. 第一步:注册阿里大鱼账号:http://www.alidayu.com 第二步:进入<开发者控制台>--><应用管理>中创建应用,应用标签选择"阿里大鱼&qu

阿里大鱼短信发送PHP代码

首先 请下载阿里大鱼的SDK短信代码 选择PHP版本的  然后应用如下代码即可 import("@.ORG.alidayu.TopSdk","",".php"); date_default_timezone_set('Asia/Shanghai'); $SmsParam = json_encode($param['SmsParam']); $c = new \TopClient; $c->method = $config['method']

阿里大鱼短信设置注意细节

下载地址:https://help.aliyun.com/document_detail/51929.html?spm=5176.doc32415.6.689.J5OYX7 基本是很简单就可以完成:但是还有人不明白. 1.常用报错: 错误速查:https://help.aliyun.com/document_detail/27501.html: 错误1.Code: 0 Message: MnsErrorCode: ClientError -----------------------------

阿里云 短信消息api 示例 (附:阿里云控制台的消息服务,集成到codeigniter )

<?php require_once(dirname(dirname(dirname(__FILE__))).'/act/alisms/mns-autoloader.php'); use AliyunMNS\Client; use AliyunMNS\Topic; use AliyunMNS\Constants; use AliyunMNS\Model\MailAttributes; use AliyunMNS\Model\SmsAttributes; use AliyunMNS\Model\B