アリSMSインターフェース

最近のプロジェクトは、テキスト・メッセージング・インターフェースを使用する必要があり、ショート・メッセージ・インタフェースと対照的なアリを選びました

以下は、開発ノートです。

ドッキングインターフェース・クラスで:

/ ** 
     *定数クラス
     * / 
    プライベート 静的  定; 
    
    // 名前:クラウドコミュニケーションSMSのAPI製品は、開発者が交換する必要はありません
    静的な 決勝 =「Dysmsapi」文字列の製品を// 製品ドメインは、開発者が交換する必要はありません
    静的な 最終文字列のドメインを=「dysmsapi.aliyuncs.com」; 

    // ここでは、開発者自身のAK(アクセスアリクラウドコンソール求めて)交換する必要があり
    、静的な 最終文字列accessKeyId = constant.accessKeyIdを、
     静的な 最終文字列accessKeySecret = constant.accessKeySecret。

AKはここでは関係は自分自身にアリクエリをコンソールする必要があります

メソッドの呼び出し:

   
    / ** 
     * SMSインタフェース
     * @authorのZKの
     *する@ DATE:2019インディアン5 30日の午後3時59分15秒
     * @paramの電話番号
     * @paramのステータス1:登録
     * @return 
     * / 
    @のRequestMapping( "/ getSms" 
    @ResponseBody 
    パブリック文字列getSms(電話文字列、文字列のステータス){ 
        
        //は自己調整タイムアウトすることができる 
        するSystem.setProperty( "sun.net.client.defaultConnectTimeout"、 "10000" ); 
        するSystem.setProperty(「sun.net.client。 defaultReadTimeout "" 10000 " ); 

        // acsClientを初期化し、領域をサポートしていません。
        IClientProfileプロファイル= DefaultProfile.getProfile( "CN-杭州" 、accessKeyId、accessKeySecret)。
        試す{ 
            DefaultProfile.addEndpoint( "CN-杭州"、 "CN-杭州" 、製品、ドメイン)。
        } キャッチ(ClientExceptionのE1){ 
            e1.printStackTrace()。
        } 
        IAcsClient acsClient = 新しいDefaultAcsClient(プロファイル)。

        // 随机生成六位验证码
          INTコード=(INT)((Math.random()* 9 + 1)* 100000 )。
          
          Sendsms sendsmsselect = 新しいSendsms(); 
          sendsmsselect.setIsdel("0" ); 
          sendsmsselect.setStatus(ステータス); 
          sendsmsselect.setPhone(電話番号); 
          リスト <SendSMS>リスト= sendsmsService.selectAll(sendsmsselect);
           IF!(リスト= ヌル){
               IF(はlist.size()> 0 ) { 
                  SendSMS SendSMS1 = List.get(0 ); 
                  sendsms1.setIsdel(」1" ); // 時間レコード番号削除する前
                  sendsmsService.updateByPrimaryKey(SendSMS1を); 
              } 
          } 
          / ** 
           データベースに格納されたコードの数* 
           * / 
          sendsmsselect.setCode(コード+ "" ); 
          Sendsmsselect.setCreatetime(新しい新しい日付()); 
          sendsmsService.insert(sendsmsselect); 
          
        // アセンブリ要求されたオブジェクト-特にコンソールを説明-部品ドキュメント 
        SendSmsRequest =リクエストする新しい新しいSendSmsRequestを();
         // 必須:電話番号、送信する
        request.setPhoneNumbers(電話);
         // 必要:SMSの署名- SMSコンソールで見つけることができ、中に署名管理でコンテンツ
        request.setSignName(constant.SignName);
         // 必要:SMSテンプレート- SMSは、コンソールで見つけることができ、あなたはテンプレート番号でテンプレートを管理
        request.setTemplateCode(constant.TemplateCode);
         // オプション:ようなテンプレートなどのテンプレート変数の置換JSON文字列は、「親愛なる$ {name}を読み込み、あなたの"検証コード値、ここでコード} {$ 
        request.setTemplateParam(" {\ "コード\":\ "" + +コード」\ "}"); 

        // オプション-拡散コードアップメッセージ(ユーザーの特別なニーズは、このフィールドを無視しない)
         // request.setSmsUpExtendCode(「90997」); 

        // オプション:outIdは、最終的なメッセージ受信にビジネス側の拡張フィールドに提供され、メッセージ呼び出し元に、この値 
        request.setOutId(「yourOutId」); 

        // ここにヒントが例外をスローすることがあり、そのキャッチが指摘 
        SendSmsResponse sendSmsResponse = ヌル;
         試み{ 
            sendSmsResponse = acsClient.getAcsResponse(要求); 
        } キャッチ(ServerException E){ 
            e.printStackTrace(); 
        } キャッチ(ClientException E){ 
            e.printStackTrace(); 
        } 
        // 送信状態を取得します
        文字列COD = sendSmsResponse.getCode()。
//         するSystem.out.println(タラ)。
        返すタラを。
    }
        

これは、部分的にニーズによって置換されていてもよい、生成されたすべての関連するコードと格納されたデータベース操作の使用を確認するために行われます

おすすめ

転載: www.cnblogs.com/zktww/p/11002904.html