Java AuroraSMSの統合

会社のプロジェクトの必要性のために、私はAuroraのSMS統合を研究し、多くの落とし穴を踏みました。私はここに、少し前に私の研究を記録して要約します。

-------------------------------------------------- ------私は境界線です---------------------------------------- -----------------------

最初の部分:

jarパッケージをインポートします。私のプロジェクトでは、依存関係の挿入によってpomファイルにmavenを使用します。

メイヴンウェイ

次の依存関係をプロジェクトのmavenpom.xmlファイルに入れます。

その中で、slf4jは、logback、log4j、commons-logging、およびその他のログフレームワークと連携でき、必要に応じて構成および使用できます。

<dependency>
    <groupId>cn.jpush.api</groupId>
    <artifactId>jsms-client</artifactId>
    <version>1.2.5</version>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.3</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.7</version>
</dependency>
<dependency>
    <groupId>cn.jpush.api</groupId>
    <artifactId>jiguang-common</artifactId>
    <version>1.0.8</version>
</dependency>
<!-- For log4j -->
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.7</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

2番目の部分:

Jiguangアカウントを登録して、AppKeyとMasterSecretを入手してください。ここでは詳しく説明しません。公式ウェブサイトのスタートガイドを参照し、クリックしてリンクを開くことができます。必ずAppKeyとMasterSecretを入手して統合してください

デモで使用されます。テストを容易にするために、認証後に20のフリーテキストメッセージが提供されます。


第三部:
SMSテキストと署名の設定は下の写真で見ることができます







必要に応じてこれらを設定します。


第4部:

オーロラ公式ウェブサイトに入る--->オーロラ公式ウェブサイト--->開発者サービス--->オーロラSMS --->短いメッセージの要約があり、下の図に示すように、下部にアクセスプラットフォームがあります。終了後、RESTAPIに入ります。 APIを注意深く見てください。そうしないと、ピットに飛び込む方法がわからないので、----> APIをよく理解してください。



Auroraはまだ非常に人間的です。デモを注意深く見るためにソースコードを提供しました。クリックして、リンクを開きます。



サンプルコードは次のとおりです。

public class JSMSExample {

   
  protected static final Logger LOG = LoggerFactory.getLogger(JSMSExample.class);
   
  private static final String appkey = "242780bfdd7315dc1989fe2b";
  private static final String masterSecret = "2f5ced2bef64167950e63d13";
   
   
  public static void main(String[] args) {
  testSendSMSCode();
  testSendValidSMSCode();
   
  }
  //发送短信验证码
  public static String testSendSMSCode(String phone) {
  SMSClient client = new SMSClient(masterSecret, appkey);
  SMSPayload payload = SMSPayload.newBuilder()
  .setMobileNumber("13800138000")
  .setTempId(1)
  .build();String resule = null;
  try {
  SendSMSResult res = client.sendSMSCode(payload);
  System.out.println(res.toString());
  LOG.info(res.toString());
  } catch (APIConnectionException e) {
  LOG.error("Connection error. Should retry later. ", e);
  } catch (APIRequestException e) {
  LOG.error("Error response from JPush server. Should review and fix it. ", e);
  LOG.info("HTTP Status: " + e.getStatus());
  LOG.info("Error Message: " + e.getMessage());
  }result = res.toString()return result;//返回的是json{msg_id:"4346777"}
  }
   
  //验证码校验
  public static Boolean testSendValidSMSCode(String msg_id,String valid) {
  SMSClient client = new SMSClient(masterSecret, appkey);Boolean valid = false;
  try {
  ValidSMSResult res = client.sendValidSMSCode(msg_id ,valid);valid = res.getIs_Valid
  System.out.println(res.toString());
  LOG.info(res.toString());return valid;
  } catch (APIConnectionException e) {
  e.printStackTrace();
  System.out.println(e.getMessage());
  LOG.error("Connection error. Should retry later. ", e);
  } catch (APIRequestException e) {
  e.printStackTrace();
  if (e.getErrorCode() == 50010) {
  // do something
  }
  System.out.println(e.getStatus() + " errorCode: " + e.getErrorCode() + " " + e.getErrorMessage());
  LOG.error("Error response from JPush server. Should review and fix it. ", e);
  LOG.info("HTTP Status: " + e.getStatus());
  LOG.info("Error Message: " + e.getMessage());
  }
  }
  }

第五部分:

坑1:

验证码valid默认设置成true,当为错误验证信息(空、不是6位数字时)走catch抛异常,默认返回还是true,不对的,改成false就ok;

坑2:

注册接口独立,发送短信接口独立,注册时只有验证码通过才能注册成功,此时问题,发送接口在注册里再被调拿到的msg_id与第一回的不一样,但是必须注册调校验接口传参数msg_id ,最后解决问题,独立调发送接口将msg_id返回安卓,安卓注册时再传进来俩参数,ok

-----------------------------------因公司不能带出来代码,所以没禁止思路跟跳的坑,特此记录、总结,完-----------------------------------------------

おすすめ

転載: blog.csdn.net/ningmeng718/article/details/78138453