Zbiór zmian 933 dla trunk/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs
- Data:
- 2009-12-07 13:04:16 (16 years ago)
- Pliki:
-
- 1 zmodyfikowane
-
trunk/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs (zmodyfikowane) (5 diffs)
Legenda:
- Bez zmian
- Dodane
- Usunięte
-
trunk/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs
r927 r933 1 1 using System; 2 using System.Text;3 2 using System.Linq; 4 using System.Web;5 using System.Web.UI;6 7 using System.Web.UI.WebControls;8 using System.Web.UI.WebControls.WebParts;9 using System.Web.UI.HtmlControls;10 using System.Web.Configuration;11 3 using System.Web.Mvc; 12 using System.Web.Mvc.Ajax;13 using System.Collections.Generic;14 4 using Platnosci.Models; 15 5 using Platnosci.Core.Linq; … … 30 20 public const string KODOWANIE = "ISO-8859-2"; 31 21 public const string HASH_ERROR_INFO = "payment not exist"; 32 private string merchantId; 22 private string _merchantId; 23 private string _merchantPassword; 33 24 34 25 private readonly IRepository<vPlatnosciEcard> _repVPayment; 35 26 private readonly IRepository<PlatnosciEcard> _repPayment; 36 private FunkcjePlatnosci _func;37 private ITranslateManager _t;27 private readonly FunkcjePlatnosci _funkcjePlatnosci; 28 private readonly ITranslateManager _translateManager; 38 29 39 30 public MerchantController() … … 41 32 _repVPayment = new Repository<vPlatnosciEcard>(new DataContext1()); 42 33 _repPayment = new Repository<PlatnosciEcard>(new DataContext1()); 43 _fun c= new FunkcjePlatnosci();44 _t = new Translation();34 _funkcjePlatnosci = new FunkcjePlatnosci(); 35 _translateManager = new Translation(); 45 36 } 37 46 38 public ActionResult Merchant(Payer payer, string language) 47 39 { 48 40 System.Diagnostics.Debug.WriteLine("MerchantController:Merchant:" + language); 49 language = _fun c.setLanguage(language);41 language = _funkcjePlatnosci.setLanguage(language); 50 42 51 intid1 = Convert.ToInt32(payer.Id_faktury);52 v PlatnosciEcardplatnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault();43 var id1 = Convert.ToInt32(payer.Id_faktury); 44 var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault(); 53 45 54 46 if (platnosc == null) 55 47 { 56 ErrorViewData errorViewData = _func.InitErrorViewData(_t.Translate("tlumaczenia", "brakdanych")); 57 return View("Error1", errorViewData); 58 } 59 else if (!_func.UserIdentity(platnosc, ControllerContext.HttpContext.User.Identity.Name)) 60 { 61 ErrorViewData errorViewData = _func.InitErrorViewData(_t.Translate("tlumaczenia", "weryfikacja")); 48 ErrorViewData errorViewData = _funkcjePlatnosci.InitErrorViewData(_translateManager.Translate("tlumaczenia", "brakdanych")); 62 49 return View("Error1", errorViewData); 63 50 } 64 51 65 Waluta waluta = _func.setAmount(platnosc); 66 var newPayment = InitNewPayment(id1, platnosc, waluta, payer ); 67 68 string systemKs = platnosc.SystemKsiegowyId.ToString(); 69 70 bool createPayment = AddNewPayment(newPayment); 71 if (createPayment == false) 52 if (!_funkcjePlatnosci.UserIdentity(platnosc, ControllerContext.HttpContext.User.Identity.Name)) 72 53 { 73 ErrorViewData errorViewData = _func.InitErrorViewData(_t.Translate("tlumaczenia", "error_hash")); 74 errorViewData.idfaktury = payer.Id_faktury; 54 ErrorViewData errorViewData = _funkcjePlatnosci.InitErrorViewData(_translateManager.Translate("tlumaczenia", "weryfikacja")); 75 55 return View("Error1", errorViewData); 76 56 } 77 57 78 string hash = GetHash(newPayment, systemKs); 79 hash = hash.Replace("\n",""); 80 if (hash == BAD_HASH || hash == "" || hash == HASH_ERROR_INFO) 58 var waluta = _funkcjePlatnosci.setAmount(platnosc); 59 var newPayment = InitNewPayment(id1, platnosc, waluta, payer ); 60 61 var systemKs = platnosc.SystemKsiegowyId.ToString(); 62 63 var createPayment = AddNewPayment(newPayment); 64 65 if (createPayment == false) 81 66 { 82 ErrorViewData errorViewData = _fun c.InitErrorViewData(_t.Translate("tlumaczenia", "error_hash"));83 errorViewData. idfaktury= payer.Id_faktury;67 ErrorViewData errorViewData = _funkcjePlatnosci.InitErrorViewData(_translateManager.Translate("tlumaczenia", "error_hash")); 68 errorViewData.InvoiceId = payer.Id_faktury; 84 69 return View("Error1", errorViewData); 85 70 } 86 71 87 if (systemKs == "1") merchantId = "170906000"; 88 else merchantId = "171485000"; 72 _merchantId = systemKs == "1" ? "171485000" : "170906000"; 73 _merchantPassword = systemKs == "1" ? "ashSeth2" : "JaYpqfs0"; 74 75 var hash = GetHash(newPayment, _merchantId, _merchantPassword); 76 hash = hash.Replace("\n",""); 77 78 if (hash == BAD_HASH || hash == "" || hash == HASH_ERROR_INFO) 79 { 80 ErrorViewData errorViewData = _funkcjePlatnosci.InitErrorViewData(_translateManager.Translate("tlumaczenia", "error_hash")); 81 errorViewData.InvoiceId = payer.Id_faktury; 82 return View("Error1", errorViewData); 83 } 89 84 90 85 //przeslanie w linku ordernumber potrzebnego do wyswietlenia potwierdzenia 91 int orderek = 0; 92 orderek = _repPayment.GetOrdernumber(newPayment.ORDERDESCRIPTION, newPayment.IDFaktury, newPayment.Data); 86 var orderek = _repPayment.GetOrdernumber(newPayment.ORDERDESCRIPTION, newPayment.IDFaktury, newPayment.Data); 93 87 94 string LinkFail = ConfigurationManager.AppSettings["Strona"];95 LinkFail += "/" + language + ConfigurationManager.AppSettings["LinkFail"];96 LinkFail += "/" + newPayment.IDFaktury + "?o=" + orderek;88 var linkFail = ConfigurationManager.AppSettings["Strona"]; 89 linkFail += "/" + language + ConfigurationManager.AppSettings["LinkFail"]; 90 linkFail += "/" + newPayment.IDFaktury + "?o=" + orderek; 97 91 98 string LinkOk = ConfigurationManager.AppSettings["Strona"]; 99 LinkOk += "/" + language + ConfigurationManager.AppSettings["LinkOk"]; 100 LinkOk += "/" + newPayment.IDFaktury + "?o=" + orderek; ; 101 102 //merchantid dla srodowiska testowego 103 merchantId = "171485000"; 104 wyslij(newPayment, hash, merchantId, LinkFail, LinkOk); 92 var linkOk = ConfigurationManager.AppSettings["Strona"]; 93 linkOk += "/" + language + ConfigurationManager.AppSettings["LinkOk"]; 94 linkOk += "/" + newPayment.IDFaktury + "?o=" + orderek; 95 96 SendRequest(newPayment, hash, _merchantId, linkFail, linkOk); 105 97 return new EmptyResult(); 106 98 } 107 99 private PlatnosciEcard InitNewPayment(int id, vPlatnosciEcard platnosc, Waluta waluta, Payer payer) 108 100 { 109 PlatnosciEcardnewPayment = new PlatnosciEcard();101 var newPayment = new PlatnosciEcard(); 110 102 newPayment.IDFaktury = id; 111 103 newPayment.ORDERDESCRIPTION = platnosc.Faktura_Numer; … … 128 120 return newPayment; 129 121 } 122 130 123 private bool AddNewPayment(PlatnosciEcard platnosc) 131 124 { … … 137 130 return false; 138 131 } 139 private string GetHash(PlatnosciEcard p, string ks) 132 133 private string GetHash(PlatnosciEcard p, string merchantId, string merchantPassword) 140 134 { 141 string strResponse; 142 PlatnosciEcard platnosc = _repPayment.Find(i => i.ORDERDESCRIPTION == p.ORDERDESCRIPTION && i.IDFaktury == p.IDFaktury && i.Data == p.Data).First(); 135 var platnosc = _repPayment.Find(i => i.ORDERDESCRIPTION == p.ORDERDESCRIPTION && i.IDFaktury == p.IDFaktury && i.Data == p.Data).First(); 143 136 144 137 if (platnosc == null) return HASH_ERROR_INFO; 145 138 146 stringadres = "https://pay.ecard.pl/servlet/HS?orderNumber=" + platnosc.ORDERNUMBER;147 HttpWebRequestreq = (HttpWebRequest)WebRequest.Create(adres);148 stringdane = "&orderDescription=&amount=" + platnosc.AMOUNT;139 var adres = "https://pay.ecard.pl/servlet/HS?orderNumber=" + platnosc.ORDERNUMBER; 140 var req = (HttpWebRequest)WebRequest.Create(adres); 141 var dane = "&orderDescription=&amount=" + platnosc.AMOUNT; 149 142 dane += "¤cy=" + platnosc.CURRENCY; 150 dane += "&merchantId=171485000&password=ashSeth2";143 dane += string.Format("&merchantId={0}&password={1}", merchantId, merchantPassword); 151 144 152 // if (ks == "1") dane += "&merchantId=171485000&password=ashSeth2"; 153 // else dane += "&merchantId=170906000&password=JaYpqfs0"; 154 155 byte[] bdata = System.Text.ASCIIEncoding.ASCII.GetBytes(dane); 145 var bdata = System.Text.Encoding.ASCII.GetBytes(dane); 156 146 req.Method = "POST"; 157 147 req.ContentType = "application/x-www-form-urlencoded"; 158 148 req.ContentLength = dane.Length; 159 149 160 StreamreqStream = req.GetRequestStream();150 var reqStream = req.GetRequestStream(); 161 151 reqStream.Write(bdata, 0, bdata.Length); 162 152 reqStream.Close(); 163 153 164 StreamReader streamResponse = new StreamReader(req.GetResponse().GetResponseStream());165 str Response = streamResponse.ReadToEnd();154 var streamResponse = new StreamReader(req.GetResponse().GetResponseStream()); 155 string strResponse = streamResponse.ReadToEnd(); 166 156 streamResponse.Close(); 167 157 168 158 return strResponse; 169 159 } 170 private void wyslij(PlatnosciEcard m, string hash, string merchantid, string linkok, string linkfail) 160 161 private void SendRequest(PlatnosciEcard m, string hash, string merchantid, string linkok, string linkfail) 171 162 { 172 //string adres = "https://pay.ecard.pl/payment/PS?ORDERDESCRIPTION=" + m.ORDERDESCRIPTION; 173 174 string adres = "https://pay.ecard.pl/servlet/PSTEST?ORDERDESCRIPTION=" + m.ORDERDESCRIPTION; 175 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(adres); 176 string dane = "&AMOUNT=" + m.AMOUNT + "&CURRENCY=" + m.CURRENCY + "&ORDERNUMBER=" + m.ORDERNUMBER; 163 var adres = ConfigurationManager.AppSettings["eCard.Url"] + "?ORDERDESCRIPTION=" + m.ORDERDESCRIPTION; 164 165 var dane = "&AMOUNT=" + m.AMOUNT + "&CURRENCY=" + m.CURRENCY + "&ORDERNUMBER=" + m.ORDERNUMBER; 177 166 dane += "&NAME=" + m.NAME + "&SURNAME=" + m.SURNAME + "&LANGUAGE=" + m.LANGUAGE + "&CHARSET=ISO-8859-2"; 178 167 dane += "&COUNTRY=616&PAYMENTTYPE=CARDS&JS=1&HASH=" + hash + "&MERCHANTID=" + merchantid + "&AUTODEPOSIT=" + m.AUTODEPOSIT;
