`
阅读更多
package com.gdcy.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

import org.apache.log4j.Logger;

public class SmsRequestHandler {
	protected final static Logger log = Logger.getLogger(SmsRequestHandler.class);
	public static void smsHandle(String responseString) {
		if(responseString != null && !responseString.trim().equals("")){
			if(responseString.indexOf("/") > -1){
				String returnMessage = responseString.substring(0, responseString.indexOf("/"));
				if(returnMessage != null && !returnMessage.trim().equals("")){
					if(returnMessage.trim().equalsIgnoreCase("ERROR")){
						String errorReason = responseString.substring(responseString.indexOf("/")+1);
						//System.out.println("errorReason = "+errorReason);
						if(errorReason != null && errorReason.trim().equals("无回复信息")){
							//to do
						}else if(errorReason != null && errorReason.trim().equals("账号、密码错误")){
							log.error("【君贤短信】取回上行短信的账号、密码错误 ");
						}else{
							log.error("【君贤短信】取回上行短信未知错误原因: "+errorReason);
						}
					}else if(returnMessage.trim().equalsIgnoreCase("OK")){
						//返回数据格式:OK/2007-1-1%%13:15:07%%13602683188%%活动安排在什么地方?$$2007-1-1%%13:18:31%%13924786445%%我决定不参加。$$
						String allResult = responseString.substring(responseString.indexOf("/")+1);
						if(allResult != null && !allResult.trim().equals("")){
							Connection conn = null;
					        PreparedStatement preparedStatement = null;
							try {
								if(allResult.indexOf("$$") < 0){
									log.error("【君贤短信】返回的数据格式不正确,找不到$$。");
								}else{
									String[] results = allResult.split("\\$\\$");
									if(results != null && results.length > 0){
										String driver = "com.mysql.jdbc.Driver";   
								        String url = "jdbc:mysql://127.0.0.1:3306/sms";   
								        String user = "root";   
								        String password = "123456"; 
								        String preparedSql = "INSERT INTO `upsms`

(id,strDate,strTime,phone,content,receiveTime,`status`,`version`,createdTime) VALUES (?,?,?,?,?,?,?,?,?)";
								        Class.forName(driver);
								        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
								        conn = DriverManager.getConnection(url, user, password);
							            conn.setAutoCommit(false);
								        preparedStatement = conn.prepareStatement(preparedSql);
								        for (String result : results) {
											if(result != null && !result.trim().equals("")){
												if(result.indexOf("%%") < 0){
													log.error("【君贤短信】返回的数据格式不正确,找不到%%。");
												}else{
													//2007-1-1%%13:15:07%%13602683188%%活动安排在什么地方?
													String[] datas = result.split("\\%\\%");
													if(datas != null && datas.length > 3){
														String dataDate = datas[0];
														String dataTime = datas[1];
														String dataPhone = datas[2];
														String dataContent = datas[3];
														/*System.out.println("dataDate = "+dataDate);
														System.out.println("dataTime = "+dataTime);
														System.out.println("dataPhone = "+dataPhone);
														System.out.println("dataContent = "+dataContent);*/
											            if (!conn.isClosed()) {
											            	preparedStatement.setString(1, UUID.randomUUID().toString());
											                preparedStatement.setString(2, dataDate);
											                preparedStatement.setString(3, dataTime);
											                preparedStatement.setString(4, dataPhone);
											                preparedStatement.setString(5, dataContent);
															Date receiveTime = dateFormat.parse(dataDate+" 

"+dataTime);
											                preparedStatement.setDate(6, new java.sql.Date(receiveTime.getTime()));
											                preparedStatement.setInt(7, 0);
											                preparedStatement.setInt(8, 0);
											                preparedStatement.setDate(9, new java.sql.Date(new Date().getTime()));
											                preparedStatement.addBatch();
											            }
													}else{
														log.error("【君贤短信】返回的数据格式不正确,%%拆分后数量少于4个

。");
													}
												}
											}
										}
										preparedStatement.executeBatch();
										conn.commit();
										preparedStatement.clearBatch();
									}else{
										log.error("【君贤短信】返回的数据格式不正确。");
									}
								}
							} catch (SQLException e) {
								e.printStackTrace();
							} catch (ParseException e) {
								e.printStackTrace();
							} catch (ClassNotFoundException e) {
								e.printStackTrace();
							}finally{
								try {
									if(preparedStatement != null){
										preparedStatement.close();
										preparedStatement = null;
									}
									if(conn != null){
										conn.close();
										conn = null;
									}
								} catch (SQLException e) {
									e.printStackTrace();
								}
							}
						}
					}else{
						//ERROR/账号、密码错误 
						log.error("【君贤短信】返回未确定结果:"+responseString);
					}
				}
			}else{
				//返回的数据格式不正确
				log.error("【君贤短信】返回的数据格式不正确,找不到/。");
			}
		}
	}

}

 

【君贤短信】取回上行短信操作类SmsRequestHandler,想要再好就要封装数据库操作了。

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀分享 2013年5月8日 20:57:10 星期三

 

  • SmsRequestHandler.rar (1.8 KB)
  • 描述: 【君贤短信】取回上行短信操作类SmsRequestHandler
  • 下载次数: 4
分享到:
评论

相关推荐

    Activiti 工作流取回的示例

    这个示例集合是为了帮助开发者更好地理解和运用Activiti的核心功能,特别是关于工作流的取回操作。 在工作流系统中,"取回"通常指的是撤消或重新处理某个任务,这可能因为错误、需要更正或者业务流程的动态调整。...

    免费短信软件zozoc Symbian S60v2

    zozoc(做做客)是一款国际共享的,在手机上使用的,通过目前热门的GPRS技术实现普通短信收发功能的JAVA软件。同时我们还提供一个辅助的电脑网页端在线产品,用户可以访问www.zozoc.cn 来使用。 1. 史上最好用的短信...

    免费短信软件zozoc 2.0中文版

    zozoc(做做客)是一款国际共享的,在手机上使用的,通过目前热门的GPRS技术实现普通短信收发功能的JAVA软件。同时我们还提供一个辅助的电脑网页端在线产品,用户可以访问www.zozoc.cn 来使用。 1. 史上最好用的短信...

    Android短信助手(android代码)

    最近开始学习 Android,为了更快上手于是给自己找个小课题来练习一下: WCF作为服务端开放RESTful Service,Android作为客户端将手机上的短信传给服务端显示,并轮询服务端是否有发送的短信取回并发送。

    免费短信软件zozoc 2.0 Jave英文版

    zozoc(做做客)是一款国际共享的,在手机上使用的,通过目前热门的GPRS技术实现普通短信收发功能的JAVA软件。同时我们还提供一个辅助的电脑网页端在线产品,用户可以访问www.zozoc.cn 来使用。 1. 史上最好用的短信...

    中国短信商务网短信平台API接口 v1.0.rar

    另外,需要说明一下,当出现返回结果是0的情况时,提醒您已经成功试发了一条短信,内容简单点,比如“test中文短信测试”,如果不能发证明肯定是短信的内容里含有敏感字符,即返回代码为6,请您自行检查,直到顺利...

    发送短信接口

    发送短信接口 function NetSendSMS(FLoginUser,FLoginPW,FSend,FRec,FContent:String):integer;;STDCALL;; { 返回: 0;发送成功 1: 无法连接服务器 2: 手机错误 3: 发送失败 4: 其它 } function ...

    客户与服务应用之取回客户IP

    在IT行业中,客户与服务应用是企业与用户交互的核心,特别是在数字化转型的今天,了解并掌握如何取回客户IP是一项至关重要的技术技能。IP地址(Internet Protocol Address)是网络上设备的唯一标识,它允许数据在...

    备份数据取回登记表.docx

    "备份数据取回登记表.docx" 是一个文档,用于记录和管理组织在需要恢复已备份数据时的流程和细节。这个表格对于理解数据备份策略和恢复过程的管理至关重要。 首先,我们需要明确备份数据的目的是防止数据丢失或损坏...

    破产程序中资金取回权的认定.doc

    破产程序中的资金取回权是法律领域中一个关键的概念,主要涉及到当企业破产时,如何保护那些原本不属于债务人的财产的权利人。根据《企业破产法》第三十八条的规定,如果人民法院受理了破产申请,债务人占有但不属于...

    取回用户密码

    4. **邮箱与手机号码验证**:确保邮箱和手机号码的有效性是关键,通常会使用SMTP协议发送验证邮件,而对于短信验证,可能需要集成第三方短信服务提供商。 5. **防止恶意重置**:为了防止未授权的密码重置,系统应...

    从第一信息存储和取回系统向第二信息存储和取回系统提供信息的设备和方法.zip

    标题中的“从第一信息存储和取回系统向第二信息存储和取回系统提供信息的设备和方法”揭示了本主题的核心是关于数据传输和信息共享的技术。这种技术可能涉及到两个关键部分:信息的发送端(第一信息存储和取回系统)...

    atiGetbackPwd取回密码模块.zip

    取回密码模块, 当用户忘记密码时使用 取回密码模块, 当用户忘记密码时使用

    论文研究 - 经阴道卵母细胞取回的卵巢卵巢子宫内膜异位症脓肿患者

    超声引导的卵母细胞取回是体外受精过程中卵子吸收(OPU)的标准程序。 可能的并发症包括输卵管中的输卵管卵巢脓肿(TOA),子宫内膜异位可能与盆腔感染的严重程度增加有关。 一名接受不育和子宫内膜异位治疗的35岁...

    取回密码..

    取回密码把密码发送到邮箱

    不可取回的场景

    不可取回的场景

    互联星空拔号器密码取回程序

    互联星空拔号器密码取回程序 互联星空拔号器密码取回程序 互联星空拔号器密码取回程序

    取回用户密码.rar

    S2项目--取回用户密码

    取回密码..2

    取回密码.。。。。.第二个jsp

Global site tag (gtag.js) - Google Analytics