| package com.doumee.biz.zbom.impl; | 
|   | 
| import com.doumee.biz.zbom.ZbomSMSService; | 
| import com.doumee.core.utils.Constants; | 
| import com.doumee.dao.business.CrmInterfaceLogMapper; | 
| import com.doumee.dao.business.CustomerLogMapper; | 
| import com.doumee.dao.business.model.CrmInterfaceLog; | 
| import org.apache.commons.codec.digest.DigestUtils; | 
| import org.apache.commons.lang3.StringUtils; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.data.redis.core.RedisTemplate; | 
| import org.springframework.stereotype.Service; | 
|   | 
| import java.io.BufferedReader; | 
| import java.io.InputStreamReader; | 
| import java.net.HttpURLConnection; | 
| import java.net.URL; | 
| import java.net.URLEncoder; | 
| import java.util.Date; | 
|   | 
| /** | 
|  * 志邦CRM客户信息提交接口 | 
|  * @author 江蹄蹄 | 
|  * @date 2023/11/30 15:33 | 
|  */ | 
| @Service | 
| public class ZbomSMSServiceImpl implements ZbomSMSService  { | 
|   | 
|     @Autowired | 
|     private CustomerLogMapper customerLogMapper; | 
|     @Autowired | 
|     private CrmInterfaceLogMapper crmInterfaceLogMapper; | 
|   | 
|     @Autowired | 
|     private RedisTemplate<String, Object> redisTemplate; | 
|   | 
|     public static void main(String[] args) { | 
|         ZbomSMSServiceImpl obj = new ZbomSMSServiceImpl(); | 
|         obj.sendMessage("您的验证码是765412,此验证码用于重置密码。3分钟内有效。","18156091665"); | 
|     } | 
|     /** | 
|      * 志邦客户信息提交接口 | 
|      * @return | 
|      */ | 
|     @Override | 
|     public   boolean sendMessage(String content,String phone) { | 
|         // TODO Auto-generated method stub | 
|         if(StringUtils.isBlank(content)){ | 
|             return false; | 
|         } | 
| //        String appkey ="581ba98d70ae2b85c4ecb9c785"; | 
| //        String urlStr =  "http://wx.zhibang.com/api/QR/Face_UserSms?TenantId=2&smstype=6&" ; | 
|         String appkey = (String) redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_SMS_API_KEY); | 
|         String urlStr =  (String)redisTemplate.opsForValue().get(Constants.RedisKeys.ZBOM_SMS_API_URL) ; | 
|         try { | 
|             StringBuffer sb = new StringBuffer(urlStr); | 
|             Integer _t = (int) System.currentTimeMillis(); | 
|             // 向StringBuffer追加用户名 | 
|             sb.append("_t=" + _t); | 
|             sb.append("&smsphone=" + phone); | 
|             sb.append("&smscode=10005"); | 
|             // 向StringBuffer追加密码(登陆网页版,在管理中心--基本资料--接口密码,是28位的) | 
|             sb.append("&smsmsg=" + URLEncoder.encode(content.replace(" ", ""), "UTF-8")); | 
|             // 加密 | 
|             // 497fbc01e744ef44001296b7466148e8 | 
|             sb.append("&token=" + DigestUtils.md5Hex(phone + _t + appkey)); | 
|   | 
|             // 创建url对象 | 
|             URL url = new URL(sb.toString()); | 
|             // 打开url连接 | 
|             HttpURLConnection connection = (HttpURLConnection) url.openConnection(); | 
|   | 
|             // 设置url请求方式 ‘get’ 或者 ‘post’ | 
|             connection.setRequestMethod("POST"); | 
|             connection.setConnectTimeout(500); | 
|             connection.setReadTimeout(500); | 
|             // 发送 | 
|             BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); | 
|             // 返回发送结果 | 
|             String inputline = in.readLine(); | 
|             // 返回结果为‘0,20140009090990,1,提交成功’ 发送成功 具体见说明文档 | 
|             System.out.println(inputline); | 
|             saveInterfaceLog(urlStr,"志邦短信发送接口", sb.toString(), 0,inputline); | 
|             return true;// | 
|         }catch (Exception e){ | 
|             e.printStackTrace(); | 
|             return false; | 
|         } | 
|   | 
|     } | 
|     public  void  saveInterfaceLog(String url,String name,String  param,Integer success,String respone){ | 
|         if(crmInterfaceLogMapper ==null){ | 
|             return; | 
|         } | 
|             CrmInterfaceLog log = new CrmInterfaceLog(); | 
|             log.setCreateDate(new Date()); | 
|             log.setUrl(url); | 
|             log.setEditDate(log.getCreateDate()); | 
|             log.setPlat(Constants.ONE); | 
|             log.setName(name); | 
|             log.setIsdeleted(Constants.ZERO); | 
|             log.setRequest(param); | 
|             log.setType(Constants.ONE); | 
|             log.setSuccess(success); | 
|             log.setRepose(respone); | 
|             crmInterfaceLogMapper.insert(log); | 
|     } | 
| } |