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

快来打我* 2022-02-24 13:56 466阅读 0赞

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

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

整个项目的架构如下:

20130508193747256

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

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

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

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

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

  1. // 发送短信
  2. public static boolean send(String str, String phones) {
  3. // 存放调用返回的结果,判断成功与否应该分析这个字符串
  4. String returnCode;
  5. Sender sms = null;
  6. if (senderMap.containsKey("sender")) {
  7. sms = senderMap.get("sender");
  8. if (null == sms) {
  9. // 这里修改成你自己的用户名和密码
  10. sms = new Sender(configMap.get("useName"), configMap.get("pwd"));
  11. senderMap.put("sender", sms);
  12. }
  13. } else {
  14. // 这里修改成你自己的用户名和密码
  15. sms = new Sender(configMap.get("useName"), configMap.get("pwd"));
  16. senderMap.put("sender", sms);
  17. }
  18. returnCode = sms.massSend(phones, str, "time", "", configMap.get("txtid") == null ? "" : configMap.get("txtid"));
  19. LogPanel.jta.append(getSendTime() + "发出的短信:" + str + "\r\n");
  20. logger.error(getSendTime() + "发出的短信:" + str);
  21. String encode = null;
  22. try {
  23. encode = new String(returnCode.getBytes("GBK"), "GB2312");
  24. if (encode.indexOf("发送成功") == -1) {
  25. LogPanel.jta.append("发送失败!原因:用户名或密码不正确,或发送对象为空,可尝试重启\r\n");
  26. LogPanel.jta.append("returnCode:" + encode);
  27. logger.error("returnCode:" + encode);
  28. logger.error("发送失败!原因:用户名或密码不正确,或发送对象为空,可尝试重启");
  29. // 清空缓存
  30. if (list2.size() > 0) {
  31. logger.error("余额不足,还有异常信息未发送!");
  32. }
  33. return false;
  34. }
  35. System.out.println("returnCode:" + encode);
  36. } catch (Exception e) {
  37. logger.error("发短信异常");
  38. return false;
  39. }
  40. return true;
  41. }

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

20130508195640329

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

20130508195636907

结束!

发表评论

表情:
评论列表 (有 0 条评论,466人围观)

还没有评论,来说两句吧...

相关阅读

    相关 使用接口发送

    前段时间做了一个小项目。需要向指定的人的手机上发送相关信息短信。公司就注册了名商通帐户,名商通是针对企业内部及外部不同需求和应用方面,而专门定制开发的系统软件。它完全集成了企业

    相关 Java发送

    发送短信肯定需要使用第三方接口,Java本身是肯定不能直接发送短信的。第三方接口有很多,这里直接找个正规靠谱一点的学习一下 这里使用了中国网建([http://www.sms