私はJavaのシリーズを愛し--- [アリ]クラウドメッセージングサービス

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)。

 

おすすめ

転載: www.cnblogs.com/hujunwei/p/11233872.html