服务器端如何自动删除半小时内没有付款的订单

猜我是几娃 2010-12-27 03:54:23
客户下了一笔订单后,如果在半个小时内没有付款,这笔单就自动删除。当然,数据库中有这笔单是否已付款的项。

这样的功能如何实现?
...全文
516 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
robake 2010-12-29
  • 打赏
  • 举报
回复
楼上的几位怎么还是不明白,楼主用的是虚拟主机,没有服务器端操作权限的。。。

写存储是个办法,不过比较复杂。

GLOBAL.asa文件里有个session_request事件,把你的操作写在这里就可以了,只要有人访问网站,就会触发这个事件。。。
xd521 2010-12-29
  • 打赏
  • 举报
回复
用数据库的存储过程
小伙真帅 2010-12-29
  • 打赏
  • 举报
回复
因为你只有一个FTP帐号.没有服务端的权限.所以这里是没有办法执行的.


另外,你可以看一下你的MYSQL有没有触发器的功能.如果支持.那你可以在数据库加一个触发.
猜我是几娃 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 ccppvv 的回复:]
又见一个ASP+MYSQL的了?

因为ASP要触发才能实现.所以,只能在有人访问时,才会触发事件.


我也实现过类似的功能.很简单.


我有一个公共的JS文件.当页面下载完成以后,在不影响用户浏览的情况下.我会调用AJAX,去后台检索后台10条过期的信息,执行删除.


在管理员页面.当用户登录成功后,我会在框架最顶层写上AJAX,自动执行检测过期信息.执行处理.

……
[/Quote]
这个方法其实我也想到了,只是觉得这个方法有点山寨。。。。所以来问问看有没有直接从服务器端就能自动完成的方法,如果实在不行,估计也只能这样做了
小伙真帅 2010-12-29
  • 打赏
  • 举报
回复
又见一个ASP+MYSQL的了?

因为ASP要触发才能实现.所以,只能在有人访问时,才会触发事件.


我也实现过类似的功能.很简单.


我有一个公共的JS文件.当页面下载完成以后,在不影响用户浏览的情况下.我会调用AJAX,去后台检索后台10条过期的信息,执行删除.


在管理员页面.当用户登录成功后,我会在框架最顶层写上AJAX,自动执行检测过期信息.执行处理.

在用户订单显示页面.在下载订单前.我会先执行删除该用户名下的所有过期订单.

这样.前台当有用户访问时,会去自动检测.一次我只删除10条.这样速度会快.当然,你写成循环也是可以的.注意不要让页面超时了..后台呢.你管理员总要登录吧.同时这也是一个触发.凡是有人操作的地方,都可以加上这个AJAX.


OVER   思路就是这样.
猜我是几娃 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 robake 的回复:]
只要有人访问你的网站,就会有session建立,用session是最方便的方法。
[/Quote]

这方面我还从来没接触过。。。。能否给个简单的例子?就是这个函数和触发怎么实现。。。谢了
robake 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 robake 的回复:]
asp是脚本语言,所有的动作都是被动的,必须要从session会话中触发,而不像asp.net可以主动执行。。。
[/Quote]
当然,使用了插件的就另当别论了。
robake 2010-12-29
  • 打赏
  • 举报
回复
asp是脚本语言,所有的动作都是被动的,必须要从session会话中触发,而不像asp.net可以主动执行。。。

robake 2010-12-29
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 buker19999 的回复:]
引用 10 楼 robake 的回复:
在GLOBAL.asa里写入一个函数,在每次session建立的时候去查询数据库,检查表里有没有超过半小时仍未付款的订单,如果仍有,则删除。

另外,在客户界面里显示订单时,应该按照时间来判断,超过半小时了就不要显示了。。。

在后台中则全部显示,这样对客户来讲,过了半小时就没订单了。

“每次session建立的时候” 是什么时候啊。。。。我……
[/Quote]

只要有人访问你的网站,就会有session建立,用session是最方便的方法。
robake 2010-12-28
  • 打赏
  • 举报
回复
在GLOBAL.asa里写入一个函数,在每次session建立的时候去查询数据库,检查表里有没有超过半小时仍未付款的订单,如果仍有,则删除。

另外,在客户界面里显示订单时,应该按照时间来判断,超过半小时了就不要显示了。。。

在后台中则全部显示,这样对客户来讲,过了半小时就没订单了。
XPingguo 2010-12-28
  • 打赏
  • 举报
回复
数据库如果是Sql Server,可以定一个作业,每半小时执行一次,检查表中是否有要删除的订单
如果这有这些功能,可以的每次执行打开网页时,检查表中是否有要删除的订单
jcx396158820 2010-12-28
  • 打赏
  • 举报
回复
定时任务就行了
strike2368168 2010-12-28
  • 打赏
  • 举报
回复
spring有定时任务的功能,到Google查一下就知道了,要写出来还挺多的
ChengFei_Net 2010-12-28
  • 打赏
  • 举报
回复
你用的什么数据库啊?
猜我是几娃 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 robake 的回复:]
在GLOBAL.asa里写入一个函数,在每次session建立的时候去查询数据库,检查表里有没有超过半小时仍未付款的订单,如果仍有,则删除。

另外,在客户界面里显示订单时,应该按照时间来判断,超过半小时了就不要显示了。。。

在后台中则全部显示,这样对客户来讲,过了半小时就没订单了。
[/Quote]
“每次session建立的时候” 是什么时候啊。。。。我完全没有用到session 。。
另外,不光是客户显示那么简单,还要把客户买掉的东西还回去。 比如有件商品总共10件,一个客户下了单,买了2件,现在显示给其他用户的只有8件,但这笔单如果在他下单时起半小时内没有付款,就删掉,同时商品总量要还原为10件。。。
猜我是几娃 2010-12-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xpingguo 的回复:]
数据库如果是Sql Server,可以定一个作业,每半小时执行一次,检查表中是否有要删除的订单
如果这有这些功能,可以的每次执行打开网页时,检查表中是否有要删除的订单
[/Quote]

数据库是 MySQL 的。。
而且也不能半小时执行一次吧, 而是起码一分钟执行一次,因为删除的订单是以客户下单时间之后的半小时为基准的。
sxldfang 2010-12-27
  • 打赏
  • 举报
回复
写一个网页,每分自动刷新,且执行如下指令:

delete * from 订单 where 付款金额=0 and 当前时间-付款时间>30


猜我是几娃 2010-12-27
  • 打赏
  • 举报
回复
如何实现这样的定时任务。。? 能否给个简单的Demo ?

前提是要能在虚拟主机下运行。。。我没有服务器的操作权限,只有个ftp 账号。。。
gejiahen 2010-12-27
  • 打赏
  • 举报
回复
定时任务就行了。
chooseforget 2010-12-27
  • 打赏
  • 举报
回复
一个定时任务。
作用是定时检索。

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧