主要使用的是 leanCloud 的验证类短信 官方文档
1.在 pom.xml
中添加相关依赖
<!--leancloud 的sms短信服务-->
<dependency>
<groupId>cn.leancloud</groupId>
<artifactId>realtime-core</artifactId>
<version>6.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.4.1</version>
</dependency>
2.leanCloud工具类
package cn.duli.xianer.utils;
import cn.leancloud.core.AVOSCloud;
import cn.leancloud.sms.AVSMS;
import cn.leancloud.sms.AVSMSOption;
import cn.leancloud.types.AVNull;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
public class SmsUtil {
/**
* leanCloud调用接口发送验证短信
* @param phone
* @return
*/
public static Integer postMsg(String phone) {
AVOSCloud.initialize("填自己的appId", "填直接的appKey");
AVSMSOption option = new AVSMSOption();
option.setTtl(10);
option.setApplicationName("测试短信");
option.setOperation("短信验证");
AVSMS.requestSMSCodeInBackground(phone, option).subscribe(new Observer<AVNull>() {
@Override
public void onSubscribe(Disposable disposable) {
}
@Override
public void onNext(AVNull avNull) {
System.out.println("Result: Successfully sent verification code.");
}
@Override
public void onError(Throwable throwable) {
System.out.println("Result: Failed to send verification code. Reason: " + throwable.getMessage());
}
@Override
public void onComplete() {
}
});
return 1;
}
/**
* 调用接口验证用户输入的验证码是否有效
* @param code
* @param phone
* @return
*/
public static Integer verifyMsg(String code, String phone) {
AVOSCloud.initialize("填自己的appId", "填直接的appKey");
AVSMS.verifySMSCodeInBackground(code,phone).subscribe(new Observer<AVNull>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(AVNull avNull) {
System.out.println("Result: Successfully verified the number.");
}
@Override
public void onError(Throwable throwable) {
System.out.println("Result: Failed to verify the number. Reason: " + throwable.getMessage());
}
@Override
public void onComplete() {
}
});
return 1;
}
}
3.controller 部分
/**
* 发送短信验证码
* @param uPhone
*/
@RequestMapping("/postMsg")
public void postMsg(String uPhone) {
SmsUtil.postMsg(uPhone);
}
/**
* 验证短信验证码
* @param uPhone
*/
@RequestMapping("/verifyMsg")
public void verifyMsg(String code, String uPhone) {
SmsUtil.verifyMsg(code, uPhone);
}