以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  微信支付 订单编号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=132564)

--  作者:fubblyc
--  发布时间:2019/3/25 10:33:00
--  微信支付 订单编号
hi,老师,我的订单编号商品编号+精确到毫秒的时间,怎么还会有一样的呢?是不是有问题呢。。

我在想,如果再加个 随机数,是不是也会出现这样的问题?

不知道是不是网络怎么重复提交了的原因?


Dim s As String = Format(Date.now, "G").replace(":","")
s = s.replace(" ","")
s = s.replace("-","")
s = s & Date.now.millisecond

    With wb.AddInputGroup("form1","ipg1","")
        .AddHiddenValue("订单编号",s & "*" & product_id )
    End With


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190325103121.png
图片点击可在新窗口打开查看




[此贴子已经被作者于2019/3/25 10:36:27编辑过]

--  作者:有点甜
--  发布时间:2019/3/25 13:17:00
--  

 

同时触发的时候,就会有这种问题。建议加上随机数,或者,用guid,或者加上_Identify列的值。

 

 


--  作者:fubblyc
--  发布时间:2019/3/25 14:39:00
--  
Dim s As String = Format(Date.now, "G").replace(":","")
s = s.replace(" ","")
s = s.replace("-","")
s = s & Rand.Next(100000000,999999999)
s = s & Date.now.millisecond


    With wb.AddInputGroup("form1","ipg1","")
        .AddHiddenValue("订单编号",s & "*" & product_id )
    End With


图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20190325143935.png
图片点击可在新窗口打开查看

甜老师,我加了,还是一样,会重复

--  作者:有点甜
--  发布时间:2019/3/25 14:50:00
--  

你页面是不是重复保存了啊。比如客户端那里点了两次提交,或者刷新,或者后退重新点了提交。

 

1、你插入数据之前,用find或者sqlfind查找一下是否存在对应记录。

 

2、同一个用户,同一个页面,不要允许提交。

 

3、你改成guid试试吧。同一个世界获取的随机数,有可能是一样的。


--  作者:fubblyc
--  发布时间:2019/3/25 17:42:00
--  
甜老师,我自己测试了,是点了2次按钮。

可能是因为唤起微信支付要几秒的时间,顾客可能觉得没按到,又按了。

那怎么做到  按钮只能按一次呢。

正常是按了,唤起微信支付了,就跳转到别的页面了。

应该是顾客看按了没有反应,然后又按了。怎么写限定呢?

--  作者:fubblyc
--  发布时间:2019/3/25 17:46:00
--  
        .Add("btn1", "立即支付","button").Attribute = "o nclic k= ""callpa y(\'" & produ ct_id & "\')"" "

按钮的代码是这样。
[此贴子已经被作者于2019/3/25 17:46:17编辑过]

--  作者:有点甜
--  发布时间:2019/3/25 18:16:00
--  

简单方法:点击后,把按钮禁用

 

.Add("btn1", "立即支付","button").Attribute = "onclick= ""callpay(\'" & product_id & "\'); this.setAttribute(\'disabled\',\'disabled\');"" "

 

 


--  作者:fubblyc
--  发布时间:2019/3/25 18:31:00
--  
谢谢甜总,是可以了。

我想加上请稍后,这样写,没有出来 请稍后 的字

""callpa y(\'" & product_id & "\');thi s.setAttribute(\'disabled\',\'disabled\'); thi s.value=\'请稍后...\'; ""

是哪里不对吗

--  作者:有点蓝
--  发布时间:2019/3/25 19:59:00
--  
""callpay(\'" & product_id & "\');this.setAttribute(\'disabled\',\'disabled\'); this.innerText=\'请稍后...\'; ""
--  作者:fubblyc
--  发布时间:2019/3/26 6:13:00
--  
谢谢蓝老师!!!!