您好,欢迎来到年旅网。
搜索
您的当前位置:首页摩字短信demo

摩字短信demo

来源:年旅网
	 public static class SmsURL {
        //短信内容发送
        private static String contentUrl =  "https://api.mozisms.com/sms/send/content";
        //短信模板发送
        private static String templateUrl = "https://api.mozisms.com/sms/send/template";
        //余额查询接口
        private static String statusUrl = "https://api.mozisms.com/sms/status/batchQuery/v2";
    }

    public static class Merchant {
        //商户号
        private static String merchantId = "xxx";
        //对应 apikey
        private static String merchantApiKey = "xxx";
    }


	    public static void main(String[] args) {
	    
	        String content = sendDate("1302771xxx", "摩字", "验证码是#code#,您在测试短信服务,如非本人操作,请忽略。", "a1234xx");
	        System.out.println(content);
	        
		    String balanceQuery = balanceQuery( "5627150242107961");
            System.out.println(balanceQuery);
	    }
    

	 /**
      * 内容发送接口
      * @param mobiles 手机号
      * @param sign 已审核短信签名
      * @param content 内容
      * @param merchantOrderId 商户订单号
      * @return
     */
        @Override
        public  String sendTemplate(String mobiles, String sign, String content, String merchantOrderId) {
            Map<String, Object> param = new HashMap<String, Object>();
            param.put("merchantOrderId", merchantOrderId);
            param.put("sign", sign);
            param.put("content", content);
            param.put("mobiles", mobiles);
            return postSms(SmsURL.contentUrl, param);
        }


 	  /**
      * 模板发送接口
      * @param mobiles 手机号
      * @param tplId 已审核模板id
      * @param parameter 模板参数,无参数传空 map{}
      * @param merchantOrderId 商户订单号
      * @return
      */
        @Override
        public  String TemplateDate(String mobiles, String tplId, Map<String,Object> parameter, String merchantOrderId) {
            Map<String, Object> param = new HashMap<String, Object>();
            param.put("merchantOrderId", merchantOrderId);
            param.put("tplId", tplId);
            param.put("parameter", parameter);
            param.put("mobiles", mobiles);
            return postSms(SmsURL.templateUrl, param);
        }

		/**
         * 余额查询接口
         * @param merchantId 对应商户id
         * @return
         */
        @Override
        public String balanceQueryDate(String merchantId) {
            Map<String, Object> param = new HashMap<String, Object>();
            param.put("merchantId", merchantId);
            return postSms(SmsURL.statusUrl, param);
        }


	   	 /**
         * 发送短信
         *
         * @param url 发送 url
         * @param param data
         * @return
         */
        private static String postSms(String url, Map<String, Object> param){
            String data = JSON.toJSONString(param);
            String responseTxt = "";
            try {
                HttpPost request = new HttpPost(url.trim());
                setPostHead(request, buildSign(data, Merchant.merchantApiKey));
                request.setEntity(new StringEntity(data, HTTP.UTF_8));
                HttpResponse response = HttpsUtil.getClient().execute(request);
                Integer code = response.getStatusLine().getStatusCode();
                if (200 == code) {
                    responseTxt = EntityUtils.toString(response.getEntity(), "utf-8");
                } else {
                    responseTxt = EntityUtils.toString(response.getEntity(), "utf-8");
                }
            } catch (Exception e) {
                System.out.println("发送异常" + e.getMessage());
            }
            return responseTxt;
        }
    
        public static void setPostHead(HttpUriRequest request, String sign) {
        request.setHeader("Accept", "application/json;charset=utf-8;");
        request.setHeader("Content-Type", "application/json;charset=utf-8;");
        request.setHeader("merchantId", Merchant.merchantId);
        request.setHeader("sign", sign);
        }
    
    	 /**
         * 生成请求签名
         *
         * @param data body 数据
         * @param apikey apikey
         * @return
         */
        private static String buildSign(String data, String apikey) throws
                UnsupportedEncodingException {
            return Hex.encodeHexString(Hashing.sha1().hashBytes((data +
                    apikey).getBytes("UTF-8")).asBytes());
        }

==============================================
HttpUtil.java工具类

public class HttpsUtil {


	private HttpsUtil(){}
	
	private static Integer callReadTimeOut = 10;
		private static Integer callConnectTimeOut = 5;
		private static Integer callMaxTotal = 5000;
		private static Integer callMaxPerRoute = 500;
		volatile static HttpClient client;

		public static HttpClient getClient() {
			RequestConfig.Builder requestBuilder = RequestConfig.custom();
			requestBuilder.setConnectTimeout(callConnectTimeOut * 1000);
			requestBuilder.setSocketTimeout(callReadTimeOut * 1000);

			PoolingHttpClientConnectionManager cm = new PoolingHttpClientConnectionManager();
			cm.setMaxTotal(callMaxTotal);
			cm.setDefaultMaxPerRoute(callMaxPerRoute);
			client = HttpClientBuilder.create()
					.setDefaultRequestConfig(requestBuilder.build())
					.setConnectionManager(cm)
					.build();
			return client;
		}
}

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务