liukangdong
2024-09-29 b2d360d9113b6955287108ca9e90d76a1f3c1419
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
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);
    }
}