English 中文(简体)
如何停止重新加载页面以使交易不会发生两次?
原标题:How to stop reloading of page so that transaction don t take place twice?
  • 时间:2012-05-28 06:50:34
  •  标签:
  • asp.net

我在研究授权. net支付系统, 我面临的问题是:如果一些用户做了一次交易, 他点击重新装入页面或重新装入标签, 那么他的钱就会被削减两次。

所以我想避免重装和交易 不止一次 直到他从头开始做交易

我也有问题要继续前进,回到过去,如何避免最后的价值观。

问题回答

最经典的解决方案是

  1. you save data on page1.aspx
  2. on successful saving of data show result on page2.aspx (redirect to Page2.aspx )

hence even if he refresh it ll be page2.aspx s reloading and your transaction will not be copied hope it helps :)

PS 。 您可能想要禁用/ 隐藏您在 page1. aspx 上的保存按钮, 以便用户无法点击双倍的按钮 。

一个容易的伎俩是使用ajax电话,所以即使它重新装入页面,它唯一能看到付款后的新状态。

所以,你做什么,你有一个页面, 显示当前支付状况, 当用户点击按钮以ajax调用发送请求时, 用户会用 ajax 调用, 同时按钮显示一条路信息, 在付款结束后, 您会重新装入该页面, 并使用新信息 s 。

一般而言,您必须为每项交易指定一个独有的编号,以及此交易的状态标记。您只允许每笔交易进行一次动作。如果用户按键并立即进行支付,您将改变此交易的状态(使用哑巴来避免在那个时候提交双倍报告),然后您不允许相同的 aka 请求重新装入页面 。

全额支付过程是按不允许停止和返回的步骤( 或重复一个步骤) 完成的。 如果您需要返回, 您将创建一个带有新id的新进程, 并且从一开始就必须重复所有步骤 。 此方式由 paypal、 amazon、 google 来完成 。

如果您使用 asp.net C# 进行交易, 则在您付款后永远不要停留在同一页上, 这不是好的做法 。 如果您从服务器收到成功响应, 请立即将成功付款页面转到成功付款页面 。

即使你没有得到成功回应或交易失败, 也不要停留在页面上,

也尝试不要在交易页面上存储数据( 视图状态), 也不要写入需要的代码 $IsstBack 块 。

阅读供授权使用的各种现有最佳做法.net,包括:

https:// developter. orget/community/fifteen minutes/csharp https:// developmenter.

http://www.org.org.net/files/developmenter bestpractices.pdf" rel=“no follow'>http://www.organize.net/files/developmenter bestpractices.pdf

并写出最好的代码。

将代码放在 (!Page.IsPostback) 块中, 这样它只发生一次 。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

How to Add script codes before the </body> tag ASP.NET

Heres the problem, In Masterpage, the google analytics code were pasted before the end of body tag. In ASPX page, I need to generate a script (google addItem tracker) using codebehind ClientScript ...

Transaction handling with TransactionScope

I am implementing Transaction using TransactionScope with the help this MSDN article http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx I just want to confirm that is ...

System.Web.Mvc.Controller Initialize

i have the following base controller... public class BaseController : Controller { protected override void Initialize(System.Web.Routing.RequestContext requestContext) { if (...

Microsoft.Contracts namespace

For what it is necessary Microsoft.Contracts namespace in asp.net? I mean, in what cases I could write using Microsoft.Contracts;?

Separator line in ASP.NET

I d like to add a simple separator line in an aspx web form. Does anyone know how? It sounds easy enough, but still I can t manage to find how to do it.. 10x!

热门标签