Index: trunk/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs
===================================================================
--- trunk/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs (revision 896)
+++ trunk/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs (revision 917)
@@ -29,5 +29,5 @@
         public const string KOD_POLSKA = "616";         //kod kraju Akceptanta - Polska
         public const string KODOWANIE = "ISO-8859-2";
-        private int ORDERNUMBER = 122;
+        public const string HASH_ERROR_INFO = "payment not exist";
         private string merchantId;
 
@@ -35,4 +35,5 @@
         private readonly IRepository<PlatnosciEcard> _repPayment;        
         private FunkcjePlatnosci _func;
+        private ITranslate _t;
 
         public MerchantController()
@@ -41,4 +42,5 @@
             _repPayment = new Repository<PlatnosciEcard>(new DataContext1());
             _func = new FunkcjePlatnosci();
+            _t = new Translate();
         }
         public ActionResult Merchant(Payer payer, string language)
@@ -52,10 +54,10 @@
             if (platnosc == null)
             {
-                ErrorViewData errorViewData = _func.InitErrorViewData(HttpContext.GetGlobalResourceObject("tlumaczenia", "brakdanych").ToString());
+                ErrorViewData errorViewData = _func.InitErrorViewData(_t.TranslateStr("tlumaczenia", "brakdanych"));
                 return View("Error1", errorViewData);
             }
             else if (!_func.UserIdentity(platnosc, ControllerContext.HttpContext.User.Identity.Name))
             {
-                ErrorViewData errorViewData = _func.InitErrorViewData(HttpContext.GetGlobalResourceObject("tlumaczenia", "weryfikacja").ToString());
+                ErrorViewData errorViewData = _func.InitErrorViewData(_t.TranslateStr("tlumaczenia", "weryfikacja"));
                 return View("Error1", errorViewData);
             }
@@ -67,9 +69,19 @@
 
             bool createPayment = AddNewPayment(newPayment);
-            if (createPayment == false) return View("Error");
+            if (createPayment == false)
+            {
+                ErrorViewData errorViewData = _func.InitErrorViewData(_t.TranslateStr("tlumaczenia", "error_hash"));
+                errorViewData.idfaktury = payer.Id_faktury;
+                return View("Error1", errorViewData);
+            }
 
             string hash = GetHash(newPayment, systemKs);
             hash = hash.Replace("\n","");
-            if (hash == BAD_HASH  || hash == "" ) return View("Error");
+            if (hash == BAD_HASH || hash == "" || hash == HASH_ERROR_INFO)
+            {
+                ErrorViewData errorViewData = _func.InitErrorViewData(_t.TranslateStr("tlumaczenia", "error_hash"));
+                errorViewData.idfaktury = payer.Id_faktury;
+                return View("Error1", errorViewData);
+            }
 
             if (systemKs == "1") merchantId = "170906000";
@@ -82,9 +94,8 @@
             string LinkOk = ConfigurationManager.AppSettings["Strona"];
             LinkOk += "/" + language + ConfigurationManager.AppSettings["LinkOk"];
-            LinkOk += "/" + newPayment.IDFaktury; ;
+            LinkOk += "/" + newPayment.IDFaktury;
 
-            var merchantViewData = InitMerchantViewData(newPayment, hash, merchantId, LinkFail, LinkOk);
-            wyslij(merchantViewData, hash, merchantId);
-            return View(merchantViewData);            
+            wyslij(newPayment, hash, merchantId, LinkFail, LinkOk);
+            return new EmptyResult();          
         }
         private PlatnosciEcard InitNewPayment(int id, vPlatnosciEcard platnosc, Waluta waluta, Payer payer)
@@ -115,45 +126,25 @@
             if (platnosc != null)
             {                
-                //_repPayment.Insert(platnosc);
+                _repPayment.Insert(platnosc);
                 return true;
             }
             return false;
         }
-        private MerchantViewData InitMerchantViewData(PlatnosciEcard newPayment, string hash, string Id, string LinkFail, string LinkOk)
-        {
-            MerchantViewData merchantViewData = new MerchantViewData();
-            merchantViewData.nowaPlatnosc = newPayment;
-            merchantViewData.Hash = hash;
-            merchantViewData.merchantId = Id;
-            merchantViewData.LinkFail = LinkFail;
-            merchantViewData.LinkOk = LinkOk;
-            
-            //wartosci testowe
-            merchantViewData.nowaPlatnosc.ORDERNUMBER = ORDERNUMBER;
-            merchantViewData.nowaPlatnosc.ORDERDESCRIPTION = "222";
-            merchantViewData.nowaPlatnosc.AMOUNT = 300;
-            merchantViewData.nowaPlatnosc.CURRENCY = "985";
-            merchantViewData.nowaPlatnosc.SESSIONID = "ff";
-            merchantViewData.merchantId = "171485000";
-            merchantViewData.LinkFail = "";
-            merchantViewData.LinkOk = "";
-            return merchantViewData;
-        }
         private string GetHash(PlatnosciEcard p, string ks)
         {
             string strResponse;
-            /*PlatnosciEcard platnosc = _rep.FindOne(i => i.ORDERDESCRIPTION == p.ORDERDESCRIPTION && i.IDFaktury == p.IDFaktury && i.Data == p.Data);
-            string adres = "https://pay.ecard.pl/servlet/HS?orderNumber="+p.ORDERNUMBER;
+            PlatnosciEcard platnosc = _repPayment.Find(i => i.ORDERDESCRIPTION == p.ORDERDESCRIPTION && i.IDFaktury == p.IDFaktury && i.Data == p.Data).First();
+
+            if (platnosc == null) return HASH_ERROR_INFO;
+
+            string adres = "https://pay.ecard.pl/servlet/HS?orderNumber=" + platnosc.ORDERNUMBER;
             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adres);
             string dane = "&orderDescription=&amount=" + platnosc.AMOUNT;
             dane += "&currency=" + platnosc.CURRENCY;
-            if (ks == "1") dane += "&merchantId=171485000&password=ashSeth2";
-                else dane += "&merchantId=170906000&password=JaYpqfs0"; */
+            dane += "&merchantId=171485000&password=ashSeth2";
 
-            //dane testowe
-            string adres = "https://pay.ecard.pl/servlet/HS?orderNumber="+ORDERNUMBER;
-            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adres);
-            string dane = "&orderDescription=&amount=300&currency=985&merchantId=171485000&password=ashSeth2";                
-            
+          //  if (ks == "1") dane += "&merchantId=171485000&password=ashSeth2";
+            //    else dane += "&merchantId=170906000&password=JaYpqfs0";
+
             byte[] bdata = System.Text.ASCIIEncoding.ASCII.GetBytes(dane);
             req.Method = "POST";
@@ -171,11 +162,12 @@
             return strResponse;
         }
-        private void wyslij(MerchantViewData m, string hash, string id)
+        private void wyslij(PlatnosciEcard m, string hash, string id, string linkok, string linkfail)
         {
-            string adres = "https://pay.ecard.pl/servlet/PSTEST?ORDERDESCRIPTION="+m.nowaPlatnosc.ORDERDESCRIPTION;
+            string adres = "https://pay.ecard.pl/servlet/PSTEST?ORDERDESCRIPTION=" + m.ORDERDESCRIPTION;
             HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adres);
-            string dane = "&AMOUNT=300&CURRENCY=985&ORDERNUMBER="+ORDERNUMBER+"&NAME="+m.nowaPlatnosc.NAME+"&SURNAME="+m.nowaPlatnosc.SURNAME+"&LANGUAGE=PL&CHARSET=ISO-8859-2";
-            dane += "&COUNTRY=616&PAYMENTTYPE=CARDS&JS=1&HASH=" + hash + "&MERCHANTID=171485000&AUTODEPOSIT=" + m.nowaPlatnosc.AUTODEPOSIT + "&LINKFAIL=";
-            dane += "&LINKOK=&SESSIONID=";
+            string dane = "&AMOUNT=" + m.AMOUNT + "&CURRENCY=" + m.CURRENCY + "&ORDERNUMBER=" + m.ORDERNUMBER;
+            dane += "&NAME=" + m.NAME + "&SURNAME=" + m.SURNAME + "&LANGUAGE=" + m.LANGUAGE + "&CHARSET=ISO-8859-2";
+            dane += "&COUNTRY=616&PAYMENTTYPE=CARDS&JS=1&HASH=" + hash + "&MERCHANTID=171485000&AUTODEPOSIT=" + m.AUTODEPOSIT;
+            dane += "&LINKFAIL=" + linkfail + "&LINKOK=" + linkok + "&SESSIONID=" + m.SESSIONID;
             Response.Redirect(adres + dane);
         }
