それは完全なソースコードでそうしたの後ろにまず第一に、これは、絶対に達成可能です。
1。まず、アリクラウドメッセージングサービスを開きます
2つの矢印は4つの情報取得を参照して以下に示す場所を参照してください
1.1まず、アクセスキーをクリックし、矢印、以下の情報を入手
1.2署名して、テンプレートを追加するために[追加]をクリックし、情報を入力するようにプロンプトに従ってください
注意を埋めるために、特定の仕様に応じて、または非常に簡単に渡されていないことを、私は、2時間ごとに3回見直し。広すぎる署名を記入しないでください。
署名とテンプレートが表す:JAVA個人ブログ黄および情報主題
この基本的な作業には、次のコードを実行されました
2.コード
2.1追加の依存
<!--短信发送 start-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
<exclusions>
<exclusion>
<artifactId>commons-codec</artifactId>
<groupId>commons-codec</groupId>
</exclusion>
<exclusion>
<artifactId>activation</artifactId>
<groupId>javax.activation</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.1.0</version>
</dependency>
<!--end-->
2.2フロントエンド
<form action="/sendCode" method="post">
电话:<input type="text" name="phone"/>
<input type="submit" value="发送验证码"/>
<p th:text="${msg}"></p>
</form>
2.3コントローラ
//发送短信
@RequestMapping(value = "/sendCode")
public Object sendCode(Model m , String phone){
try{
SendMessageService.sendSms(phone);
}catch (Exception e){
m.addAttribute("msg","发送失败");
}
return "userRegister";
}
2.4クラスのランダムに生成されたコード
private static String getMsgCode() {
int n = 6;
StringBuilder code = new StringBuilder();
Random ran = new Random();
for (int i = 0; i < n; i++) {
code.append(Integer.valueOf(ran.nextInt(10)).toString());
}
return code.toString();
}
送信SMS 2.5コアクラス
以下の情報充填部分で標識された4 ******上に発生
//阿里云短信接口配置类
public class SendMessageService {
/* 短信API产品名称(短信产品名固定,无需修改) */
private static final String product = "Dysmsapi";
/* 短信API产品域名,接口地址固定,无需修改 */
private static final String domain = "dysmsapi.aliyuncs.com";
/* 此处需要替换成开发者自己的accessKeyId和accessKeySecret(在阿里云访问控制台寻找) */
private static final String accessKeyId = "******"; //TODO: 这里要写成你自己生成的
private static final String accessKeySecret = "********";//TODO: 这里要写成你自己生成的
/* 短信发送 */
public static SendSmsResponse sendSms(String phone) throws ClientException {
/* 超时时间,可自主调整 */
System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
System.setProperty("sun.net.client.defaultReadTimeout", "10000");
/* 初始化acsClient,暂不支持region化 */
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
IAcsClient acsClient = new DefaultAcsClient(profile);
/* 组装请求对象-具体描述见控制台-文档部分内容 */
SendSmsRequest request = new SendSmsRequest();
/* 必填:待发送手机号 */
request.setPhoneNumbers(phone);
/* 必填:短信签名-可在短信控制台中找到 */
request.setSignName("********"); //TODO: 这里是你短信签名
/* 必填:短信模板code-可在短信控制台中找到 */
request.setTemplateCode("********"); //TODO: 这里是你的模板code
/* 可选:模板中的变量替换JSON串,如模板内容为"亲爱的用户,您的验证码为${code}"时,此处的值为 */
request.setTemplateParam("{\"code\":\"" + getMsgCode() + "\"}");
System.out.println("给电话为"+phone+"发送的验证码为:"+getMsgCode());
// hint 此处可能会抛出异常,注意catch
SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
if(sendSmsResponse.getCode()!= null && sendSmsResponse.getCode().equals("OK")){
System.out.println("短信发送成功!验证码:" + getMsgCode());
}else {
System.out.println("短信发送失败!");
}
return sendSmsResponse;
}
フロントエンド入力の電話番号は、ライン上、送信をクリックしてください。コンソールは、テキストメッセージが表示され、それが口座のお金の酒が原因である可能性があり、またはあなたがシミュレートすることができます送信するために失敗した場合、テストメッセージはアリクラウドに送られました。
アドレス
の送信が失敗した場合は、上記の署名とテンプレートを充填することによっては、エラーの種類とエラーが表示されるの正確な原因をテストすることができます。
あなたは、API、他の言語を表示したい場合は、ライン上に表示APIのデモをクリックし
ます。3.コードアドレスhttp://download.csdn.net/download/m0_45025658/12252399