阿里大鱼短信发送

阿里大鱼短信发送

官方文档

# 帮助文档
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,模板参数。调用接口发送。

依赖

<!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core -->
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.0.3</version>
</dependency>



package com.mozq.ms.ms01.service;

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
/*
pom.xml
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.0.3</version>
</dependency>
*/
public class SendSms {
    private static final String accessKeyId = "***";
    private static final String accessSecret = "***";

    public static void main(String[] args) {
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessSecret);
        IAcsClient client = new DefaultAcsClient(profile);

        CommonRequest request = new CommonRequest();
        request.setMethod(MethodType.POST);
        request.setDomain("dysmsapi.aliyuncs.com");
        request.setVersion("2017-05-25");
        request.setAction("SendSms");
        request.putQueryParameter("RegionId", "cn-hangzhou");
        request.putQueryParameter("PhoneNumbers", "18392895235");//设置电话号码
        request.putQueryParameter("SignName", "魔有追求");//设置签名
        request.putQueryParameter("TemplateCode", "SMS_171112339");//设置模板
        request.putQueryParameter("TemplateParam", "{code:1345666}");//设置模板参数,json格式
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
            //{"Message":"OK","RequestId":"7B562B28-A4F9-417C-8CCE-E7E988EA8C20","BizId":"316818172776024297^0","Code":"OK"}
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }
}

简单案例

package com.mozq.ms.ms01.controller;

import com.mozq.ms.ms01.service.PhoneService;
import org.apache.commons.lang3.RandomStringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/user")
public class LoginController {
    @Autowired
    private PhoneService phoneService;
    @RequestMapping("/sms")
    public String sms(String phone){
        String code = RandomStringUtils.randomAlphanumeric(5);
        boolean success = phoneService.sendCheckCode(phone, code);
        return success ? "短信发送成功" : "短信发送失败";
    }
}
package com.mozq.ms.ms01.service;

import com.alibaba.fastjson.JSONObject;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

@Service
public class PhoneService {
    private static final String accessKeyId = "***";//自己的
    private static final String accessSecret = "***";//自己的
    private static final String SignName = "魔有追求";
    private static final String TemplateCode = "SMS_171112339";

    public boolean sendCheckCode(String phone, String checkCode){
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessSecret);
        IAcsClient client = new DefaultAcsClient(profile);

        CommonRequest request = new CommonRequest();
        request.setMethod(MethodType.POST);
        request.setDomain("dysmsapi.aliyuncs.com");
        request.setVersion("2017-05-25");
        request.setAction("SendSms");
        request.putQueryParameter("RegionId", "cn-hangzhou");
        request.putQueryParameter("PhoneNumbers", phone);//设置电话号码
        request.putQueryParameter("SignName", SignName);//设置签名
        request.putQueryParameter("TemplateCode", TemplateCode);//设置模板
        HashMap<String, String> params = new HashMap<>();
        params.put("code", checkCode);
        String paramsJSON = JSONObject.toJSONString(params);
        request.putQueryParameter("TemplateParam", paramsJSON);//设置模板参数,json格式
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
            Map map = JSONObject.parseObject(response.getData(), Map.class);
            String code = (String) map.get("Code");
            if("OK".equalsIgnoreCase(code)){
                return true;
            }
            //{"Message":"OK","RequestId":"7B562B28-A4F9-417C-8CCE-E7E988EA8C20","BizId":"316818172776024297^0","Code":"OK"}
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
            /*
            com.aliyuncs.exceptions.ClientException: MissingPhoneNumbers : PhoneNumbers is mandatory for this action.
            RequestId : BEFF0B71-305B-4640-8E13-46EE89548F47
             */
        }
        return false;
    }
}

响应结果

{
    "Message": "OK",
    "RequestId": "1D05E04F-EA57-4AD9-9C5C-96772F8F2243",
    "BizId": "460404072778263899^0",
    "Code": "OK"
}

依赖

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.8.1</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.60</version>
</dependency>
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.0.3</version>
</dependency>

原文地址:https://www.cnblogs.com/mozq/p/11788526.html

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

阿里大鱼短信发送的相关文章

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

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

阿里大鱼短信发送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']

阿里大鱼短信平台

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

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

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

阿里大鱼短信接口 for Thinkphp

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

阿里大鱼短信介入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,

阿里大鱼短信接口

阿里大于短信验证实现完整代码分享 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就可以

thinkphp5 阿里云短信 发送多参数的短信

有的朋友用阿里oss的时候可能会发送多参数的短信, 例如短信模版是  您好${code1},收到您的联系方式${code2},您的地址为${code3},我们会尽快派送. 类似于这样的多参数模版,首先第一关,可能是参数过长,怎么办,直接去阿里申请售后就可以了,和他们反馈一下,然后他们会给你把字数限制解除,然后你就可以传递超过20个字的内容了. 这一步完事,下一步就是接入阿里oss了,首先下载阿里oss的 类包了,去阿里官网下载就可以了,我这里整合的是thinkphp5.下载完成后具体步骤如下 1

spring-boot与阿里大于短信发送平台

申请短信模板 现在需要企业才能申请阿里大于的短信模板,故,略 spring-boot (1) 创建独立maven工程(jar),引入相关依赖 <!-- jdk版本 --> <properties> <java.version>1.7</java.version> </properties> <!-- parent依赖 --> <parent> <groupId>org.springframework.boot&