用SendCloud发送短信验证码

时间:2025-03-19 09:37:45


String smsKey = "*****";
            String url = "http://xxxxx";
            String vcode = createRandomVcode();
//            ("验证码:" + vcode);
            // 填充参数
            Map<String, String> params = new HashMap<String, String>();
            ("smsUser", "xxx");
            ("templateId", "1");
            ("phone", “1562566155256”);
            ("vars", "{\"code\":\"" + vcode + "\"}");
            // 对参数进行排序
            Map<String, String> sortedMap = new TreeMap<String, String>(new Comparator<String>() {
                @Override
                public int compare(String arg0, String arg1) {
                    // 忽略大小写
                    return (arg1);
                }
            });
            (params);
            // 计算签名
            StringBuilder sb = new StringBuilder();
            (smsKey).append("&");
            for (String s : ()) {
                (("%s=%s&", s, (s)));
            }
            (smsKey);
            String sig = DigestUtils.md5Hex(());
            // 将所有参数和签名添加到post请求参数数组里
            List<BasicNameValuePair> postparams = new ArrayList<>();
            for (String s : ()) {
                (new BasicNameValuePair(s, (s)));
            }
            (new BasicNameValuePair("signature", sig));
            HttpPost httpPost = new HttpPost(url);
            try {
                (new UrlEncodedFormEntity(postparams, "utf8"));
                DefaultHttpClient httpclient = new DefaultHttpClient();

                ().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 3000);
                ().setIntParameter(CoreConnectionPNames.SO_TIMEOUT, 100000);
                HttpResponse response = (httpPost);

                HttpEntity entity = ();
                (entity);
//                ((()));
                String str = (());
//                (str);
                JSONObject obj = (str);
                boolean result = ("result");

            } catch (Exception e) {
                ("获取验证码失败!" + ());
            } finally {
                ();
            }
随机生成6位数验证码:

public String createRandomVcode() {
        //验证码
        String vcode = "";
        for (int i = 0; i < 6; i++) {
            vcode = vcode + (int) (() * 9);
        }
        return vcode;
    }