SMS開発API(第三工程の一部のみが勝利赤色を変更するときに使用されます)
1.インポートMavenを座標
< 依存性> < のgroupId > com.aliyun </ のgroupId > < たartifactId > aliyun-のJava SDKコア</ たartifactId > < バージョン> 3.3.1 </ バージョン> </ 依存> < 依存性> < のgroupId > com.aliyun </ groupIdを> < たartifactId > aliyun-javaの-SDK-dysmsapi </ たartifactId > < バージョン>1.0.0</ バージョン> </ 依存関係>
ショートコードを形成する。2.ツール:ValidateCodeUtils
パッケージcom.itheima.health.mobile.utils; 輸入java.util.Randomの; / ** * @date:2019年6月11日に作成された * @description:ランダムに生成されたコードのツール * @version :1.0 * / / ** *ツールランダムに生成されたコード * / パブリック クラスValidateCodeUtils { / ** *ランダムに生成されたコード * @paramの4または6の長さ長さ * @return * / パブリック 静的整数generateValidateCode(int型の長さ){ 整数コード = NULL ; IF(長さ== 4 ){ コード = 新しい新しいランダム()nextInt(9999);. //は乱数、9999の最大生成 IF(コード<1000年){ コード =コード1000 +を; // 乱数が4桁であることを確認 } } そう IF(長さ= 6 = ){ コード = 新しい新しいランダム()nextInt(999999);. //は乱数を生成し、999999の最大 IF(コード<100000 ){ コード = 100000 +コード; // 乱数は6桁であることを確認 } } そうでなければ{ スロー 新新RuntimeException(「わずか4または6桁のコードの検証を生成」); } 戻りコード; } / ** *ランダムに生成された符号列の長さを指定 * @paramの長さ長さ * @return * / パブリック 静的文字列generateValidateCode4String(INT 長さ){ ランダムRDM = 新しい新しいランダム(); 文字列HASH1 = Integer.toHexString(rdm.nextInt()); 文字列capstr = hash1.substring(0 、長さ); 戻りcapstr; } }
3. SMSコードツールを送信:SMSUtilsを
パッケージcom.itheima.health.mobile.utils。 / ** * @date:2019年6月11日に作成された * @description: * @version :1.0 * / インポートcom.aliyuncs.DefaultAcsClient。 輸入com.aliyuncs.IAcsClient。 輸入com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest; 輸入com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse。 輸入com.aliyuncs.exceptions.ClientException。 輸入com.aliyuncs.http.MethodType。 輸入com.aliyuncs.profile.DefaultProfile。 輸入com.aliyuncs.profile.IClientProfile。 / ** *短信发送工具类 * / パブリック クラスSMSUtils { 公共の 静的な 最終文字列VALIDATE_CODE =「自分自身へのSMS_ ; 『// SMS確認コード送る パブリック 静的 最終的な』文字列ORDER_NOTICE = あなた自身にSMS_を」; // 検査予約成功通知 / * * * SMSを送信 * @paramのの電話番号 * @paramののparam * @throws ClientException * / パブリック 静的な 無効 sendShortMessage(の電話番号の文字列、文字列のparamが)スロー ClientExceptionを{ (するSystem.setPropertyを"sun.net.client.defaultConnectTimeout"、 "10000" ); するSystem.setProperty( "sun.net.client.defaultReadTimeout"、 "10000" ); // ascClient初期化するために必要なパラメータの数 最終列商品= "Dysmsapi"を; // SMSのAPI製品名(製品名は変更せずにSMSを、固定の) 最終的な文字列のドメイン=「dysmsapi.aliyuncs.com」; // SMS API製品のドメイン名(インターフェースアドレスは変更せずに、固定の) 最終的な文字列accessKeyId = " あなたを変更自身の「; // あなたのaccessKeyId、 最終的な文字列accessKeySecret =」自分自身への「; // あなたのaccessKeySecret、 // 初期化ascClient、マルチリージョンをサポートしていません(変更しないでください) プロフィール= DefaultProfile.getProfile IClientProfile( "CN-杭州" 、accessKeyId、accessKeySecret); DefaultProfile.addEndpoint( "CN-杭州"、 "CN-杭州" 、製品、ドメイン); IAcsClient acsClient = 新新DefaultAcsClient(プロフィール); // アセンブリのリクエストオブジェクト SendSmsRequestは=要求し、新たな新SendSmsRequestを(); // ポスト提出使用 ; request.setMethod(MethodType.POST) // 必要:送信する電話番号を。コンマ区切り形式に支持バッチ呼び出し、上限が1000バッチの携帯電話の番号、わずかな遅延の適時に単一のコールに対するコールボリュームは、メッセージ認証コードの種類は、単一の呼び出しを使用することが推奨される request.setPhoneNumbers(電話番号を); // 必要:SMSの署名は- SMSコンソールで見つけることができます request.setSignName(「そのメッセージの署名を変更する」); // 必須:SMSテンプレート- SMSコンソールで見つけることができ request.setTemplateCode(VALIDATE_CODE); // オプション:テンプレート変数置換JSON文字列、テンプレートなど読み込み「親愛なる$ {name}を、確認コードは$ {コード}である」、値がここにある // ヒント:あなたは改行でJSONに必要がある場合は、改行のための標準的なJSONプロトコルを参照してください。そのようなメッセージの内容などの要件が含ま\ R \ nはJSON \\ Rで表さ必要な場合に\\ N、それ以外の場合はJSON構文解析サーバの障害につながる IF(PARAM!= NULL && param.length()> 0 ) { request.setTemplateParam( "{\"コード\ "\" "+ + PARAM" \ "}" ); } sendSmsResponse sendSmsResponse = acsClient.getAcsResponse(要求) のSystem.out。println( "SendSms結果:" +sendSmsResponse.getMessage())。 もし(!sendSmsResponse.getCode()= nullを。&& sendSmsResponse.getCode()等号( "OK" )){ // 请求成功 するSystem.out.println( "请求成功" ); } } パブリック 静的 ボイドメイン(文字列引数[])をスロー例外{ 文字列validateCode = ValidateCodeUtils.generateValidateCode4String(4 )。 System.out.println( "validateCode:" + validateCode)。 SMSUtils.sendShortMessage( " 手机号码 " 、validateCode)。