<%option explicit%> <% '*************************************************************** ' Result from SSLShopcheckout.asp ' Version 6.50 ' July 5, 2005 '************************************************************ Dim ForwardURL, BackURL dim tasktype Dim rstemp Dim dbc dim perror, poid Perror="" ' no errors Forwardurl=getconfig("xpaymenturl") if forwardurl="" then Forwardurl="shopthanks.asp" end if ' Tasktype=ucase(Request("Task")) ' task (CC,NoCC,Delete) Poid=Getsess("oid") ' if not session, get from eway return if poid="" or tasktype="" then checkvalidorder poid if poid="" then PError=getlang("LangOrderProcessed") shoperror perror end if end if Select Case Tasktype Case "CC" UpdateCreditCard ' add authorization to database responseredirect ForwardURL ' go to shopthanks Case "NOCC" UpdateNOCC responseredirect ForwardURL ' go to shopthanks Case "CANCEL" CancelOrder responseredirect "shopend.asp" end select Sub UpdateCreditCard 'on error resume next Dim sqltemp dim temp OpenOrderDB dbc ' release 2.40 updatefield "ocardtype" UpdateFieldX "ocardno" updatefield "ocardname" updatefield "ocardexpires" updatefield "ocardaddress" updatefield "oauthorization" ShopCloseDatabase dbc end sub Sub UpdateNOCC 'on error resume next Dim sqltemp dim temp OpenOrderDB dbc ' release 2.40 updatefield "ocardtype" updatefield "ocardname" forwardurl="shopthanks.asp" ShopCloseDatabase dbc end sub ' Sub UpdateField (fieldname) dim fieldvalue,strSQL 'VP-ASP 6.50 - precautionary security fix fieldvalue=cleanchars(Request(fieldname)) if fieldvalue="" then exit sub end if if ucase(fieldvalue)="NULL" then strSQL="UPDATE orders SET " & fieldname & "=NULL" &_ " WHERE orderid=" & poid dbc.Execute(strSQL) else strSQL="UPDATE orders SET " & fieldname & "='" & fieldvalue & "'" &_ " WHERE orderid=" & poid dbc.Execute(strSQL) end if end sub ' Sub UpdateFieldX (fieldname) dim hashkey, enfieldvalue dim fieldvalue, temp, strSQL 'VP-ASP 6.50 - precautionary security fix fieldvalue=cleanchars(Request(fieldname)) dim pos, newfieldvalue, remaining, length 'VP-ASP 6.50 - precautionary security fix Enfieldvalue=cleanchars(Request(fieldname)) 'xxx.xxx 'Debugwrite "from ssl=" & enfieldvalue fieldvalue=Convertfromplain(enfieldvalue) 'hhhhhhhh hashkey=GetEncryptKey temp=EnDecrypt(fieldvalue, hashkey) '7288282882 fieldvalue=temp 'Debugwrite "from after convert=" & fieldvalue If getconfig("xEncryptCreditCard")="Yes" then temp=enfieldvalue 'xxx.uyyyy strSQL="UPDATE orders SET " & fieldname & "='" & temp & "'" &_ " WHERE orderid=" & poid dbc.Execute(strSQL) else strSQL="UPDATE orders SET " & fieldname & "='" & fieldvalue & "'" &_ " WHERE orderid=" & poid dbc.Execute(strSQL) end if end sub ' Sub CancelOrder OpenOrderDB dbc CancelOrderRecord dbc, poid shopCloseDatabase dbc ShopCancelOrder shoperror getlang("LangCheckoutCancelled") end sub '*************************************************************************** Sub Checkvalidorder (poid) dim rs, sql, dbc, orderid, cardtype poid=request("oid") If poid="" then exit sub end if If not isnumeric(poid) then poid="" exit sub end if poid=clng(poid) openorderdb dbc sql="select max(orderid) from orders" set rs=dbc.execute(sql) orderid=rs(0) closerecordset rs sql="select * from orders where orderid=" & orderid set rs=dbc.execute(sql) If not rs.eof then cardtype=rs("ocardtype") if isnull(cardtype) then cardtype="" else cardtype="unknown" end if closerecordset rs shopclosedatabase dbc ' If we have already paid, we cannot redo this order if orderid=poid and cardtype="" then setsess "oid",poid exit sub end if poid="" end sub %>