root/trunk/eCard/Platnosci/Merchant.aspx.cs @ 966

Wersja 477, 8.5 KB (wprowadzona przez marek, 17 years temu)

re #139

Line 
1using System;
2using System.Data;
3using System.Configuration;
4using System.Collections;
5using System.Web;
6using System.Web.Security;
7using System.Web.UI;
8using System.Web.UI.WebControls;
9using System.Web.UI.WebControls.WebParts;
10using System.Web.UI.HtmlControls;
11using System.Net;
12using System.IO;
13using System.Data.SqlClient;
14using System.Threading;
15using System.Globalization;
16
17public partial class Merchant : System.Web.UI.Page
18{
19    protected override void InitializeCulture()
20    {
21        if (Session["culture"] != null)
22        {
23            UICulture = Session["culture"].ToString();
24            Culture = Session["culture"].ToString();
25
26            Thread.CurrentThread.CurrentCulture =
27              CultureInfo.CreateSpecificCulture(Session["culture"].ToString());
28            Thread.CurrentThread.CurrentUICulture =
29              new CultureInfo(Session["culture"].ToString());
30        }
31        base.InitializeCulture();
32    }
33
34    protected void Page_Load(object sender, EventArgs e)
35    {
36        if (IsPostBack == false)
37        {
38            // -------------------------- FORMULARZ --------------------------------
39            string tORDERDESCRIPTION = (string)Session["ORDERDESCRIPTION"];
40            ORDERDESCRIPTION.Text = "<input name='ORDERDESCRIPTION' type='hidden' value='" + tORDERDESCRIPTION + "'/>";
41            string tAMOUNT = (string)Session["AMOUNT"];
42            AMOUNT.Text = "<input name='AMOUNT' type='hidden' value='" + tAMOUNT + "'/>";
43            string tCURRENCY = (string)Session["CURRENCY"];
44            CURRENCY.Text = "<input name='CURRENCY' type='hidden' value='" + tCURRENCY + "'/>";
45            string tNAME = (string)Session["NAME"];
46            NAME.Text = "<input name='NAME' type='hidden' value='" + tNAME + "'/>";
47            string tSURNAME = (string)Session["SURNAME"];
48            SURNAME.Text = "<input name='SURNAME' type='hidden' value='" + tSURNAME + "'/>";
49            string tSESSIONID = (string)Session["SESSIONID"];
50            //SESSIONID.Text = "<input name='SESSIONID' type='hidden' value='" + tSESSIONID + "'/>";
51            string tLANGUAGE = (string)Session["LANGUAGE"];
52            LANGUAGE.Text = "<input name='LANGUAGE' type='hidden' value='" + tLANGUAGE + "'/>";
53            string tCHARSET = (string)Session["CHARSET"];
54            CHARSET.Text = "<input name='CHARSET' type='hidden' value='" + tCHARSET + "'/>";
55            string tCOUNTRY = (string)Session["COUNTRY"];
56            COUNTRY.Text = "<input name='COUNTRY' type='hidden' value='" + tCOUNTRY + "'/>";
57            string tPAYMENTTYPE = (string)Session["PAYMENTTYPE"];
58            PAYMENTTYPE.Text = "<input name='PAYMENTTYPE' type='hidden' value='" + tPAYMENTTYPE + "'/>";
59
60            CheckBrowserCaps();
61
62            string tAUTODEPOSIT = (string)Session["AUTODEPOSIT"];
63            AUTODEPOSIT.Text = "<input name='AUTODEPOSIT' type='hidden' value='" + tAUTODEPOSIT + "'/>";
64
65            // ---------------- Pobranie ORDERNUMBER ---------------------
66            string connString = ConfigurationManager.ConnectionStrings["BazaReklamConn"].ConnectionString;
67            string cmdText = "proc_NowaPlatnoscEcard";
68            string nip = (string)Session["nip"];
69            string nrZlec = (string)Session["nrZlec"];
70            string idFaktury = (string)Session["IDFaktury"];
71            string tORDERNUMBER = "";
72            using (SqlConnection conn = new SqlConnection(connString))
73            {
74                SqlCommand cmd = new SqlCommand(cmdText, conn);
75                cmd.CommandType = CommandType.StoredProcedure;
76                cmd.Parameters.AddWithValue("@ORDERDESCRIPTION", tORDERDESCRIPTION);
77                int iidFaktury = Convert.ToInt32(idFaktury);
78                cmd.Parameters.AddWithValue("@idFaktury", iidFaktury);
79                cmd.Parameters.AddWithValue("@nip", nip);
80                cmd.Parameters.AddWithValue("@nrZlecenia", nrZlec);
81                int iAMOUNT = Convert.ToInt32(tAMOUNT);
82                cmd.Parameters.AddWithValue("@AMOUNT", iAMOUNT);
83                cmd.Parameters.AddWithValue("@CURRENCY", tCURRENCY);
84                cmd.Parameters.AddWithValue("@SESSIONID", tSESSIONID);
85                cmd.Parameters.AddWithValue("@NAME", tNAME);
86                cmd.Parameters.AddWithValue("@SURNAME", tSURNAME);
87                int iAUTODEPOSIT = Convert.ToInt32(tAUTODEPOSIT);
88                cmd.Parameters.AddWithValue("@AUTODEPOSIT", iAUTODEPOSIT);
89                cmd.Parameters.AddWithValue("@LANGUAGE", tLANGUAGE);
90                cmd.Parameters.AddWithValue("@CHARSET", tCHARSET);
91                cmd.Parameters.AddWithValue("@COUNTRY", tCOUNTRY);
92                int JavaScript = vJS;
93                cmd.Parameters.AddWithValue("@JS", JavaScript);
94                cmd.Parameters.AddWithValue("@PAYMENTTYPE", tPAYMENTTYPE);
95                conn.Open();
96                SqlDataReader reader = cmd.ExecuteReader();
97                reader.Read();
98                //reader.NextResult();
99                tORDERNUMBER = reader["ID"].ToString();
100                reader.Close();
101                conn.Close();
102            }
103
104            ORDERNUMBER.Text = "<input name='ORDERNUMBER' type='hidden' value='" + tORDERNUMBER + "'/>";
105
106            // ---------------- Pobranie HASHA z eCardu ------------------
107
108            string strValue;
109            string strResponse;
110            // Utworzenie ¿¹dania zwrotnego
111            string strReq = "https://pay.ecard.pl/servlet/HS?orderNumber=" + tORDERNUMBER + "&amount=" + tAMOUNT + "&currency=" + tCURRENCY;
112            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strReq);
113            // Ustawienie wartoœci ¿¹dania zwrotnego
114            req.Method = "POST";
115            req.ContentType = "application/x-www-form-urlencoded";
116            strValue = "&orderDescription=&merchantId=170906000&password=JaYpqfs0";
117            req.ContentLength = strValue.Length;
118            // Zapisanie ³añcucha ¿¹dania zwrotnego
119            StreamWriter stOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
120            stOut.Write(strValue);
121            stOut.Close();
122
123            // Przesy³anie ¿¹danie do systemu eCard i uzyskanie odpowiedzi
124            StreamReader stIn = new StreamReader(req.GetResponse().GetResponseStream());
125            strResponse = stIn.ReadToEnd();
126            stIn.Close();
127
128            // Sprawdzenie odpowiedzi
129            if (strResponse == "zlyHash")
130            {
131                // b³êdne parametry - z³y numer zamówienia, opis, kwota lub waluta
132
133            }
134            else if (strResponse == "wrongPassword")
135            {
136                // Niepoprawne has³o
137            }
138            else
139            {
140                //OK
141            }
142
143            string tHASH = strResponse;
144            tHASH = tHASH.Trim();
145            HASH.Text = "<input name='HASH' type='hidden' value='" + tHASH + "'/>";
146            string tMERCHANTID = (string)Session["MERCHANTID"];
147            MERCHANTID.Text = "<input name='MERCHANTID' type='hidden' value='" + tMERCHANTID + "'/>";
148            LINKOK.Text = "<input name='LINKOK' type='hidden' value='http://platnosci.admoto.pl/info.aspx?status=ok'/>";
149            LINKFAIL.Text = "<input name='LINKFAIL' type='hidden' value='http://platnosci.admoto.pl/info.aspx?status=fail'/>";
150        }
151        else
152        {
153            FormsAuthentication.SignOut();
154            Response.Redirect("login.aspx");
155        }
156               
157    }
158   
159    void CheckBrowserCaps()
160    {
161        string jsInfoText = "<h2>Twoja przegl¹darka ma wy³¹czon¹ obs³ugê Java Script.</h2><p>Obs³uga Java Script nie jest niezbêdna, ale przyspiesza i upraszcza proces p³atnoœci.</p><p>Aby kontynuowaæ proces naciœnij przycisk Dalej</p>";
162        System.Web.HttpBrowserCapabilities myBrowserCaps = Request.Browser;
163        if (((System.Web.Configuration.HttpCapabilitiesBase)myBrowserCaps).EcmaScriptVersion.Major > 1)
164        {
165            jsInfo.Text = jsInfoText;
166            JS.Text = "<input name='JS' type='hidden' value='0'/>";
167            submit.Text = "<input type='submit' value='Dalej'/>";
168            vJS = 0;
169        }
170        else
171        {
172            jsInfo.Text = "";
173            JS.Text = "<input name='JS' type='hidden' value='1'/>";
174            vJS = 1;
175        }
176               
177    }
178
179    private int JavaScript;
180    public int vJS
181    {
182        get
183        {
184            return JavaScript;
185        }
186        set
187        {
188            JavaScript = value;           
189        }
190    }
191}
Notatka: Zobacz TracBrowser aby uzyskać więcej informacji.