用SendCloud发送短信验证码

翻译 2015年11月20日 16:27:00


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

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

                HttpEntity entity = response.getEntity();
                EntityUtils.consume(entity);
//                System.out.println(EntityUtils.toString(response.getEntity()));
                String str = EntityUtils.toString(response.getEntity());
//                System.out.println(str);
                JSONObject obj = JSONObject.fromObject(str);
                boolean result = obj.getBoolean("result");

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

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



laravel5.4使用Laravel Sms和阿里云短信服务实现短信验证码功能

laravel 实现短信验证码功能,搜索资料发现比较流行的有两个包: 一个是laravel sms 地址  https://github.com/toplan/laravel-sms  一个是easy...
  • fjnjxr
  • fjnjxr
  • 2017年08月02日 15:18
  • 3724

JAVA接入短信接口,实现短信验证码功能

最近网站要加短信验证功能,不得不要折腾一番。好了,不多说了,说一下过程。首先是短信服务商的选择,以前没接触过,只能找度娘了,找了三家,对比一下。 价格: 1、秒嘀科技 - 短信接口...
  • Johnsf
  • Johnsf
  • 2016年07月26日 11:52
  • 5465

php手机短信接口发送验证码

php手机短信接口发送验证码
  • vailook
  • vailook
  • 2016年08月25日 10:44
  • 5105

利用httpclient发送短信验证码-中国网建平台

  • 2017年12月18日 11:38
  • 3KB
  • 下载

java发送短信验证码功能

  • 2015年04月17日 19:44
  • 283KB
  • 下载

client发送短信验证码(云之讯)

  • 2015年07月05日 21:19
  • 24KB
  • 下载

Java实现发送短信验证码功能

最近用学习了一下调用第三方接口发送短信验证码的程序,希望能够帮助到大家。 1.首先下图为项目的目录结构,需要带入三个包: commons-httpclient-3.1.jar commons...
  • qq_38625947
  • qq_38625947
  • 2018年01月16日 13:49
  • 2

java redis 发送短信验证码

public class Randomutil { private Randomutil() { } // 获取6位随机验证码 public static String g...
  • yuxin6866
  • yuxin6866
  • 2016年08月22日 18:07
  • 3170

如何使用云片API发送短信验证码

之前的两篇文章介绍的是云片和短信验证码的基础知识,包括签名、模板等短信业务中的常见知识。也包括初级的手动群发短信等。 第一篇:如何使用云片获得第一条短信验证码? 第二篇: 短信验证码之签名和模板下...
  • GumpFang008
  • GumpFang008
  • 2017年02月06日 17:20
  • 3316

js实现发送短信验证码后的倒计时功能(无视页面刷新)

前分享过只用js实现倒计时的功能,后来测试时发现,刷新或关闭网页后,倒计时就不能用了.网上也没找到合适的解决方案,所以自己就写了个,这次的算是优化版吧,能满足刷新或重新打开网页后,倒计时依然能用 特...
  • qingyanhuan
  • qingyanhuan
  • 2016年11月04日 21:16
  • 413
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用SendCloud发送短信验证码
举报原因:
原因补充:

(最多只允许输入30个字)