摩字短信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( "562715089242107961");
            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;
		}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值