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); 
 | 
    } 
 | 
} 
 |