调用地址:
http(s)://gyytz.market.alicloudapi.com/sms/smsSend
请求方式:
POST
返回类型:
JSON
请求参数(Query)
public static void main(String[] args) {
String host = "https://gyytz.market.alicloudapi.com";
String path = "/sms/smsSend";
String method = "POST";
String appcode = "你自己的AppCode";
Map<String, String> headers = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers.put("Authorization", "APPCODE " + appcode);
Map<String, String> querys = new HashMap<String, String>();
querys.put("mobile", "mobile");
querys.put("param", "**code**:12345,**minute**:5");
//smsSignId(短信前缀)和templateId(短信模板),可登录国阳云控制台自助申请。参考文档:http://help.guoyangyun.com/Problem/Qm.html
querys.put("smsSignId", "2e65b1bb3d054466b82f0c9d125465e2");
querys.put("templateId", "908e94ccf08b4476ba6c876d13f084ad");
Map<String, String> bodys = new HashMap<String, String>();
try {
/**
* 重要提示如下:
* HttpUtils请从\r\n\t \t* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java\r\n\t \t* 下载
*
* 相应的依赖请参照
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
*/
HttpResponse response = HttpUtils.doPost(host, path, method, headers, querys, bodys);
System.out.println(response.toString());
//获取response的body
//System.out.println(EntityUtils.toString(response.getEntity()));
} catch (Exception e) {
e.printStackTrace();
}
}
{
"msg": "成功",
"smsid": "16565614329364584123421", //批次号。可通过该ID查询发送状态或者回复短信。API接口可联系客服获取。
"code": "0",
"balance": "1234" //账户剩余次数
}
{
"code":"XXXX",
"msg":"错误提示内容",
"ILLEGAL_WORDS":["XX","XX"] // 如有则显示
// 1、http响应状态码对照表请参考:https://help.aliyun.com/document_detail/43906.html;
// 2、如果次数用完会返回 403,Quota Exhausted,此时继续购买就可以;
// 3、如果appCode输入不正确会返回 403,Unauthorized;
}
package com.shenmazong.zg2.controller;
import cn.hutool.http.HttpRequest;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
/**
* @author 军哥
* @version 1.0
* @description: 发送短信Controller
* @date 2023/10/15 8:35
*/
@Controller
@RequestMapping(value = "/sms")
public class SmsController {
@PostMapping(value = "/send")
@ResponseBody
public String sendSms(String mobile, String code) {
// 定义发送短信网关地址以及授权编码
String url = "https://gyytz.market.alicloudapi.com/sms/smsSend";
String appcode = "bd7b0a53b66a43c5bb2ffecd39cb9619";
String smsSignId = "2e65b1bb3d054466b82f0c9d125465e2";
String templateId = "908e94ccf08b4476ba6c876d13f084ad";
// 短信发送参数
HashMap<String, Object> hashMap = new HashMap<>();
hashMap.put("mobile", mobile);
hashMap.put("param", "**code**:" + code + ",**minute**:5");
hashMap.put("smsSignId", smsSignId);
hashMap.put("templateId", templateId);
// 发送短信
String body = HttpRequest.post(url)
.header("Authorization", "APPCODE " + appcode)
.form(hashMap)
.execute()
.body();
if (!body.contains("成功")){
return "ERROR";
}
else {
System.out.println(body);
}
return "OK";
}
}