sbtjtserver/zhaoxh 7 ay önce
ebeveyn
işleme
dde279b529
1 değiştirilmiş dosya ile 41 ekleme ve 12 silme
  1. 41 12
      src/main/java/kd/bos/login/utils/DemoSMSSender.java

+ 41 - 12
src/main/java/kd/bos/login/utils/DemoSMSSender.java

@@ -21,7 +21,9 @@ import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 import java.io.*;
 import java.net.Socket;
+import java.text.SimpleDateFormat;
 import java.util.Calendar;
+import java.util.Date;
 
 /**
  * 通用插件
@@ -30,6 +32,36 @@ import java.util.Calendar;
  */
 public class DemoSMSSender implements SMSSender {
     protected static final Log log = LogFactory.getLog(DemoSMSSender.class);
+
+    @Override
+    public boolean sendMessage(String phone, String message, String signature) {
+        Boolean flag = false;
+        //1.获取接口链接等信息
+        DynamicObject jkpzxx = BusinessDataServiceHelper.loadSingle("nckd_jkpzxx",new QFilter[]{new QFilter("number","=","dxyz")});
+        String servername =  jkpzxx.getString("nckd_servername");
+        String port =  jkpzxx.getString("nckd_port");
+        //2.获取xml对象
+        String bodyxml = createSingleMessageRequest(phone,message);
+        //3.调用接口
+        JSONObject cbsReturnJson =socketService(servername,port,bodyxml);
+        if(cbsReturnJson!=null) {
+            JSONObject reMessage = cbsReturnJson.getJSONObject("Message");
+            JSONObject reBodyInfo = reMessage.getJSONObject("BodyInfo");
+            if ("success".equals(reBodyInfo.getString("Fs_retMsg"))) {//相应成功
+                if ("000".equals(reBodyInfo.getString("Fs_retCode"))) {
+                    flag = true;
+                    log.info("短信前置机响应成功,前置机接口发送成功");
+                } else {
+                    log.info("短信前置机响应成功,前置机接口发送失败");
+                }
+            } else {
+                log.info("短信发送前置机响应失败");
+            }
+        }
+
+        return flag;
+    }
+
     @Override
     public boolean sendMessage(String phone, String message) {
         Boolean flag = false;
@@ -73,28 +105,25 @@ public class DemoSMSSender implements SMSSender {
             //拼接报文
             createElement(doc, body, "Fs_channelcode", "JSX"); //渠道号
             createElement(doc, body, "Fs_transcode", "SingleMsg");  //交易码
-            createElement(doc, body, "Fs_rpid", "");        //流水号(待提供)
+            createElement(doc, body, "Fs_rpid", "12345");        //流水号(待提供)
             createElement(doc, body, "Fs_phone", phone);        //手机号
             createElement(doc, body, "Fs_ParamCount", "2");//模板数量
             createElement(doc, body, "ParamName1", "SmsVerifyCode");//模板名称1
-            createElement(doc, body, "ParamValue1", "");//模板值1
+            String ParamValue1 = message.substring(4,10);
+            createElement(doc, body, "ParamValue1", ParamValue1);//模板值1
             createElement(doc, body, "ParamName2", "SceneName");//模板名称2
-            createElement(doc, body, "ParamValue2", "");//模板值2
+            createElement(doc, body, "ParamValue2", "wj");//模板值2
 
             createElement(doc, body, "Fs_regOrg", "");//发送机构(待提供)
             createElement(doc, body, "Fs_bizId", "00007");//业务类型id
             createElement(doc, body, "Fs_templateld", "2409029227");//模板id
 
-            Calendar calendar = Calendar.getInstance();
-            int year = calendar.get(Calendar.YEAR);
-            int month = calendar.get(Calendar.MONTH) + 1;
-            int day = calendar.get(Calendar.DAY_OF_MONTH);
-            int hour = calendar.get(Calendar.HOUR_OF_DAY);
-            int minute = calendar.get(Calendar.MINUTE);
-            int second = calendar.get(Calendar.SECOND);
-            String Fs_reqDate = String.valueOf(year)+String.valueOf(month)+String.valueOf(day);
+            Date now = new Date();
+            SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMdd HHmmss");
+            String nowStr = formatter.format(now);
+            String Fs_reqDate = nowStr.substring(0,8);
             createElement(doc, body, "Fs_reqDate", Fs_reqDate);
-            String Fs_regTime = tranTime(hour,minute,second);
+            String Fs_regTime = nowStr.substring(9,15);
             createElement(doc, body, "Fs_regTime", Fs_regTime);
 
             TransformerFactory transformerFactory = TransformerFactory.newInstance();