前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >车辆违章查询和限行提醒程序 -- (1) 限行提醒功能的实现和接入短信接口

车辆违章查询和限行提醒程序 -- (1) 限行提醒功能的实现和接入短信接口

作者头像
浩Coding
发布2019-07-03 11:40:14
2.7K0
发布2019-07-03 11:40:14
举报
文章被收录于专栏:浩Coding浩Coding

闲来无事,想做一个小网站,方便查询车辆违章信息,后来一想直接写个程序,每天定时查询违章信息,有了违章则发短信和邮件提醒用户,还可以自定义限行策略,在限号那天提醒用户,美哉,嘿嘿♪(^∇^*)。

程序整体设计思路

初步打算用Java写这个程序,基于Servlet,后期开放用户注册,会加上数据库。或许后面会用SSM写,先挖个坑,Σ( ° △ °|||)︴

车辆限号提醒:用户须在本网站注册,然后填写车牌号。【车牌号前端实现正则表达式检测,根据首字和首字母,及尾号实现自动识别城市及限号提醒,一个用户最多支持3个车牌号提醒】。在用户的车辆被限制通行的当天早7:00发短信和邮件通知用户【用户自定义提醒时间和通知类型】。同时,用户登陆网站首页后,提示当天是否限行,以及违章信息。

车辆违章查询:购买数据接口,解析json结果,程序判断是否有违章信息并通知用户。

一 限号提醒功能的设计与实现

由于各地车辆限行政策的多变性和不确定性,其限行逻辑实现由人工维护。初级阶段仅仅通过用户的车牌号实现限号当天提醒(基本上就是单双号限行和两号限行)。

二 寻找短信接口运营商

这个短信API直接百度搜索就行,我也没有特别推荐的运营商,目前我们需要的是便宜的数据接口,最好注册就免费送一定数量的,便于我们前期调试程序,综合下来下面这两家还行(但也都适合企业用,个人数据接口很少厂商做):

聚合数据:https://www.juhe.cn

极速数据:https://www.jisuapi.com (之前做微信公众号就用的这家)

任选一家注册账号即可,短信接口我选的是聚合数据,这家注册送10条免费短信,足够我们测试用了,后期还可以1.5元买50条:

三 解析短息API文档

短信接口文档链接:https://www.juhe.cn/docs/api/id/54

短信这方面国家管控比较严格,所以使用短信接口发送的短息内容必须用运营商提供的模板,如果想要自定义带变量的模板必须实名认证才行,并且这个聚合数据想购买产品必须实名认证,否则自定义内容只能写死,且由运营商后台人工审核通过才可以使用。

如果发送验证码之类的可以使用运营商提供的模板,我们现在需要先自定义模板,然后提交审核,注意:模板内容不能有违法内容和网址等等。

提交模板后等待审核即可,一般一个小时左右:

诸如此类规则各个运营商都大同小异,我们下面详细分析如何使用短信接口。

注意,向每个用户发送短信频率要控制好,如果做验证码之类的,前端一定要做好限制措施,1分钟只能发一条。

使用数据接口实质上就是:发送一个请求给接口,接口会解析你的请求并做出相应操作,然后返回给你操作结果我们需要做的就是发送请求,解析结果。

示例请求链接:

代码语言:javascript
复制
http://v.juhe.cn/sms/send?mobile=用户手机号码&tpl_id=短信模板ID&tpl_value=%23code%23%3D654654&key=自己的账户key

实际上网站的文档已经给的很详细了,只需要复制下来就能运行,非常简单的,我们这里用的Java写的,我只贴出重要代码:

代码语言:javascript
复制
public static void mobileQuery(){
    String result =null;
    String url ="http://v.juhe.cn/sms/send";//请求接口地址
    Map params = new HashMap();//请求参数
      params.put("mobile","13429667914");//接受短信的用户手机号码
                        params.put("tpl_id","111");//您申请的短信模板ID,根据实际情况修改
                        params.put("tpl_value","#code#=1235231");//您设置的模板变量,根据实际情况修改
      params.put("key","您申请的ApiKey");//应用APPKEY(应用详细页查询)
    try {
      result = net(url, params, "GET");
      JSONObject object = JSONObject.fromObject(result);
      if(object.getInt("error_code")==0){
        System.out.println(object.get("result"));
      }else{
        System.out.println(object.get("error_code")+":"+object.get("reason"));
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

没有什么技术难度,我直接贴源码地址:https://www.juhe.cn/docs/api/id/54

注意这里,分析返回结果:

代码语言:javascript
复制
/****失败示例**/
{
    "reason": "错误的短信模板ID,请通过后台确认!!!",
    "result": [],
    "error_code": 205402
}

/****成功示例**/
{
    "reason": "短信发送成功",
    "result": {
        "count": 1, /*发送数量*/
        "fee": 1, /*扣除条数*/
        "sid": "23d6bc4913614919a823271d820662af" /*短信ID*/
    },
    "error_code": 0 /*发送成功*/
}

其中返回的json结果中的error_code是返回码,为0则代表发送成功,其他值为发送失败,详情查看API:

短信接口的使用方式大致如此,有疑问的小伙伴可以在公众号后台留言。稍后我会将源码地址贴出,下一章我们讲如何用Java发邮件。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 浩Coding 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档