使用名商通短信接口发送短信

前段时间做了一个小项目。需要向指定的人的手机上发送相关信息短信。公司就注册了名商通帐户,名商通是针对企业内部及外部不同需求和应用方面,而专门定制开发的系统软件。它完全集成了企业用户所特有的短信应用功能。名商通官网:http://www.136000.com/     。好像是5分钱一条短信。注册后会有用户名、密码、账户号信息。

项目的开发,使用的是纯java。用 SWING GUI 做界面。需要导入名商通提供的jar包。send.jar

整个项目的架构如下:

下面主要说短信发送这一块。

注册名商通后,需要充钱,同时会有用户名、密码、账户等信息。我是把这些信息存到了一个properties文件里面,里面是一些键值对。

然后,使用ScheduledExecutorService(也可以使用Timer,并发效率及控制不是太好)做了个定时任务,程序运行后,每5分钟,从数据库中读取一下需要发送的数据,向指定的人的手机号上,发送信息。

当然中间还有一些业务逻辑什么的,最终得到要发送的短信内容,以及要发送给哪些人的手机号码。

接着就是要调用发送短信的接口,进行发送短信了。

// 发送短信
	public static boolean send(String str, String phones) {
		// 存放调用返回的结果,判断成功与否应该分析这个字符串
		String returnCode;
		Sender sms = null;
		if (senderMap.containsKey("sender")) {
			sms = senderMap.get("sender");
			if (null == sms) {
				// 这里修改成你自己的用户名和密码
				sms = new Sender(configMap.get("useName"), configMap.get("pwd"));
				senderMap.put("sender", sms);
			}
		} else {
			// 这里修改成你自己的用户名和密码
			sms = new Sender(configMap.get("useName"), configMap.get("pwd"));
			senderMap.put("sender", sms);
		}
		returnCode = sms.massSend(phones, str, "time", "", configMap.get("txtid") == null ? "" : configMap.get("txtid"));
		LogPanel.jta.append(getSendTime() + "发出的短信:" + str + "\r\n");
		logger.error(getSendTime() + "发出的短信:" + str);
		String encode = null;
		try {
			encode = new String(returnCode.getBytes("GBK"), "GB2312");
			if (encode.indexOf("发送成功") == -1) {
				LogPanel.jta.append("发送失败!原因:用户名或密码不正确,或发送对象为空,可尝试重启\r\n");
				LogPanel.jta.append("returnCode:" + encode);
				logger.error("returnCode:" + encode);
				logger.error("发送失败!原因:用户名或密码不正确,或发送对象为空,可尝试重启");
				// 清空缓存
				if (list2.size() > 0) {
					logger.error("余额不足,还有异常信息未发送!");
				}
				return false;
			}
			System.out.println("returnCode:" + encode);
		} catch (Exception e) {
			logger.error("发短信异常");
			return false;
		}
		return true;
	}

最后,把该工程,打成可执行的.jar。使用.bat文件调用,进行运行。部署到服务器上,实时监控!
如想看最近都给哪些人的手机上发送了什么信息,可以查看界面如下:

还可以查看下,注册的服务账号,还剩下多少钱?界面如下:

结束!

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值