views:

161

answers:

2

Hi,

I have the following scenario. I have created an ASP.NET web application (framework 3.5) for my company, which allows users to purchase goods or services. Then, the user clicks on "Proceed to Payment", which calls an external payment site. The user then enters the card details through this site.

The payment site are performing a CGI-call to an .aspx page (say Successful.aspx) in case of successful transaction by the user. So, I created this .aspx page and placed it in the root of my website, together with its aspx.vb file (which will perform the processing on successful transaction like setting the Paid, PaidDate fields etc). What is occurring is that the transaction is successful, and the logs from the payment site company show that the Successful.aspx is being found and called...however, none of the processing is being performed by the Successful.aspx.vb (i.e. the fields are not being set at all).

Is there something about CGI calls that I am missing?

A: 

Try setting Response.Expires = -1 in your Successful.aspx. It might have been cached.

Secondly, what does the user have to once he's sent to successful.aspx after payments ?

this. __curious_geek
Thanks for your help, but it seems the solution was something different. I was incorrectly redirecting and this causing problems together with the CGI call.Thanks.
TMM
A: 

So the final answer was:

  • Session_Start fires with every hit from the 3rd party, as session cookies don't get stored/passed by the client.
  • Session_Start contained redirect code. The 3rd party was getting the status 302, and not obeying the redirect AND logging this as a success.
  • The fix - remove the redirect from Session_Start, and the 3rd party never gets sent a redirect.
russau