正邦做网站吗,dede网站建站教程,嘉兴市住房和城乡建设局门户网站,wordpress 登录跳转提前准备工作
1.已 注册腾讯云 账号#xff0c;并完成 企业实名认证。
2.已 购买 短信套餐包。
3.准备短信签名归属方资质证明文件
4.已获取短信应用的 SDKAppID。
主要获取这几个参数
secretId(秘钥id)
secretKey(秘钥key)
SmsSdkAppId(appId)
TemplateId(短信模板i…提前准备工作
1.已 注册腾讯云 账号并完成 企业实名认证。
2.已 购买 短信套餐包。
3.准备短信签名归属方资质证明文件
4.已获取短信应用的 SDKAppID。
主要获取这几个参数
secretId(秘钥id)
secretKey(秘钥key)
SmsSdkAppId(appId)
TemplateId(短信模板id)
目录
1.获取验证码、缓存
2.从缓存中获取验证码、校验 1.获取验证码、缓存
1.1参考腾讯云对接腾讯云接口文档短信 如何实现短信验证码功能-最佳实践-文档中心-腾讯云
1.2使用腾讯云在线调试先做调试可以正确获取短信后生成java代码 下面附上代码供大家参考 /*** 获取腾讯云手机短信验证码** param phone* return*/Overridepublic ResponseResult getPhoneNumberVerify(String phone) {Object p CacheUtils.get(phoneVerifyCode, phone);if (StringUtils.isEmpty(phone)){return null;}if(null ! p !String.valueOf(p).isEmpty()){return ResponseResultUtils.genErrorResult(请勿重复获取验证码);}String regex ^1[3,4,5,6,7,8,9][0-9]{9}$;if (!phone.matches(regex)){return ResponseResultUtils.genErrorResult(手机号格式不正确);}try{// 实例化一个认证对象入参需要传入腾讯云账户 SecretId 和 SecretKey此处还需注意密钥对的保密Credential cred new Credential(秘钥id, 秘钥keyb);// 实例化一个http选项HttpProfile httpProfile new HttpProfile();httpProfile.setEndpoint(sms.tencentcloudapi.com);// 实例化一个client选项可选的没有特殊需求可以跳过ClientProfile clientProfile new ClientProfile();clientProfile.setHttpProfile(httpProfile);// 实例化要请求产品的client对象,clientProfile是可选的SmsClient client new SmsClient(cred, ap-guangzhou, clientProfile);// 实例化一个请求对象,每个接口都会对应一个request对象SendSmsRequest req new SendSmsRequest();String[] phoneNumberSet1 {phone};req.setPhoneNumberSet(phoneNumberSet1);req.setSmsSdkAppId(SmsSdkAppId);req.setSignName(签名内容这个参数不是不填);req.setTemplateId(短信模板id);Random random new Random();int randomNumber random.nextInt(999999);String[] templateParamSet1 {String.valueOf(randomNumber)};req.setTemplateParamSet(templateParamSet1);// 返回的resp是一个SendSmsResponse的实例与请求对象对应SendSmsResponse resp client.SendSms(req);// 输出json格式的字符串回包System.out.println(---SendSmsResponse.toJsonString(resp));SendStatus[] sendStatusSet resp.getSendStatusSet();JSONObject jsonObject JSONObject.from(sendStatusSet[0]);if (Ok.equals(jsonObject.getString(Code))){CacheUtils.put(phoneVerifyCode,phone,randomNumber,60000);return ResponseResultUtils.genResult(发送成功);}} catch (TencentCloudSDKException e) {System.out.println(e.toString());}return ResponseResultUtils.genErrorResult(发送失败);}此外还需要在pom.xml加上包依赖
!--腾讯云短信登录获取验证码--dependencygroupIdcom.tencentcloudapi/groupIdartifactIdtencentcloud-sdk-java-common/artifactIdversionLATEST/version/dependencydependencygroupIdcom.tencentcloudapi/groupIdartifactIdtencentcloud-sdk-java-sms/artifactIdversionLATEST/version/dependency!--end--
2.从缓存中获取验证码、校验
2.1校验验证码就很简单啦从缓存中根据手机号获取验证码我用的是系统自带缓存使用redis的话根据收据号手机号key获取value /*** 验证腾讯云手机短信验证码** param code* param phone* return*/Overridepublic ResponseResult verifyPhoneVerifyCode(String code, String phone) {String verifyCode CacheParamUtils.getParmValue(phone.verify.code);if (verifyCode.equals(code)){return ResponseResultUtils.genResult(验证成功);}Object p CacheUtils.get(phoneVerifyCode, phone);if (null p StringUtils.isEmpty(String.valueOf(p))){return ResponseResultUtils.genErrorResult(验证码失效);}if (String.valueOf(p).equals(code)){return ResponseResultUtils.genResult(验证成功);}return ResponseResultUtils.genErrorResult(验证失败);}