对接阿里云平台短信接口

现在做的小程序,需要给客户手机发送短信验证码,用的是阿里云的短信平台
首先要搞好短信模板,签名之类的,这个就相当于发送的短信主体内容,其中验证码部分是我们自己定义的,这个要审核通过了才行
然后在下图,输入自己的手机号,选择模板,发送,
在这里插入图片描述
如果成功了,就点击查看API Demo
在这里插入图片描述
然后把其中的代码(不包含方法名),复制到自己需要调用短信接口的方法里

pom.xml文件中添加Maven依赖安装Alibaba Cloud SDK for Java

  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.5.3</version>
 public CommonResult checkMoney(Long orderId, BigDecimal money, Integer type, String autograph, Integer check,String checkCode) {
    
    
        boolean update=false;
        OmsOrder omsOrder = omsOrderService.getById(orderId);
        if (type == 1) {
    
    
            //选择的是输入金额
            if (money.compareTo(BigDecimal.ZERO) < 1) {
    
    
                return CommonResult.failed("请输入正确的金额");
            }
            omsOrder.setMoney(money);
            omsOrder.setCheckWay(0);
            omsOrderService.updateById(omsOrder);

            if (check == 1) {
    
    
                //通过手机号验证,生成随机数,调用短信接口,发送成功返回,
                // 返回随机数
                int checkNum= (int) (Math.random()*9000+1000);
                String memberPhone = omsOrder.getMemberPhone();
                String num = String.valueOf(checkNum);
                
                DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "XXXXXX", "XXXXXXXX");
                IAcsClient client = new DefaultAcsClient(profile);
                CommonRequest request = new CommonRequest();
                request.setSysMethod(MethodType.POST);
                request.setSysDomain("dysmsapi.aliyuncs.com");
                request.setSysVersion("2017-05-25");
                request.setSysAction("SendSms");
                request.putQueryParameter("RegionId", "cn-hangzhou");
                request.putQueryParameter("PhoneNumbers", memberPhone);
                request.putQueryParameter("SignName", "徐氏天艺");
                request.putQueryParameter("TemplateCode", "SMS_207960784");
                request.putQueryParameter("TemplateParam", "{\"code\":"+num+"}");
                //request.putQueryParameter("TemplateParam", "{\"code\":\"checkNum\"}");
                try {
    
    
                    CommonResponse response = client.getCommonResponse(request);
                    System.out.println(response.getData());
                } catch (ServerException e) {
    
    
                    e.printStackTrace();
                } catch (ClientException e) {
    
    
                    e.printStackTrace();
                }
				return CommonResult.success(num,"发送成功");      
            }

如上图,复制进来以后,首先是随机数生成四位数的验证码:然后下面把需要传递的参数传递给复制进来的短信接口:1、随机的验证码 2、需要发送的手机号
要注意的是:
1、传递验证码TemplateParam这个参数是json格式的,需要+来拼接传递的参数
2、传递手机号PhoneNumbers这个参数后面直接是手机号,不用引号
3、最重要的一点是accessKeyId和accessKeySecret,这两个getProfile的参数需要去掉尖括号<>,并且这两个参数很重要,需要保密,在购买短信服务时候就会有

猜你喜欢

转载自blog.csdn.net/weixin_42260782/article/details/112239051
今日推荐