Zbiór zmian 951 dla trunk/eCard/eCardMVC/Platnosci/Controllers
- Data:
- 2009-12-14 16:03:54 (16 years ago)
- Lokalizacja:
- trunk/eCard/eCardMVC/Platnosci/Controllers
- Pliki:
-
- 2 zmodyfikowane
-
MerchantController.cs (zmodyfikowane) (5 diffs)
-
PlatnoscController.cs (zmodyfikowane) (5 diffs)
Legenda:
- Bez zmian
- Dodane
- Usunięte
-
trunk/eCard/eCardMVC/Platnosci/Controllers/MerchantController.cs
r950 r951 15 15 public class MerchantController : Controller 16 16 { 17 public const string BAD_HASH = "zlyHash"; //b³êdne has³o - odpowied z eCard 18 public const string CARDS = "CARDS"; //obs³uga tylko kart p³atniczych 19 public const string KOD_POLSKA = "616"; //kod kraju Akceptanta - Polska 20 public const string KODOWANIE = "ISO-8859-2"; 17 public const string BAD_HASH = "zlyHash"; //b³êdne has³o - odpowied z eCard 21 18 public const string HASH_ERROR_INFO = "payment not exist"; 22 19 … … 24 21 private readonly IRepository<PlatnosciEcard> _repPayment; 25 22 private readonly FunkcjePlatnosci _funkcjePlatnosci; 23 private readonly eCardData _eCardData; 26 24 private readonly ITranslateManager _translateManager; 27 25 … … 32 30 _funkcjePlatnosci = new FunkcjePlatnosci(); 33 31 _translateManager = new Translation(); 32 _eCardData = new eCardData(_repPayment); 33 } 34 public MerchantController(IRepository<vPlatnosciEcard> repVPayment, IRepository<PlatnosciEcard> repPayment, ITranslateManager translate, eCardData ecardData) 35 { 36 _repVPayment = repVPayment; 37 _repPayment = repPayment; 38 _funkcjePlatnosci = new FunkcjePlatnosci(); 39 _translateManager = translate; 40 _eCardData = ecardData; 34 41 } 35 42 36 43 public ActionResult Merchant(Payer payer, string language) 37 44 { 38 System.Diagnostics.Debug.WriteLine("MerchantController:Merchant:" + language);39 45 language = _funkcjePlatnosci.SetLanguage(language); 40 46 … … 46 52 47 53 if (!_funkcjePlatnosci.UserIdentity(platnosc, ControllerContext.HttpContext.User.Identity.Name)) 48 return View("Error1", IsError("weryfikacja", 0)); 54 return View("Error1", IsError("weryfikacja", 0)); 49 55 50 var waluta = _funkcjePlatnosci.SetAmount(platnosc); 51 var newPayment = InitNewPayment(id1, platnosc, waluta, payer ); 52 53 var systemKs = platnosc.SystemKsiegowyId.ToString(); 54 if (ConfigurationManager.AppSettings["wersja"] == "TEST") 55 systemKs = "2"; 56 57 var createPayment = AddNewPayment(newPayment); 56 var merchant = _eCardData.CreateMerchantData(platnosc, payer, language, Session.SessionID); 58 57 59 if (createPayment == false) 58 if (merchant != null) merchant.IsValid(); 59 60 if (merchant == null || (merchant != null && (!String.IsNullOrEmpty(merchant.Error)))) 60 61 return View("Error1", IsError("error_hash", payer.Id_faktury)); 61 62 var merchant = getMerchantInfo(systemKs); 63 64 var hash = GetHash(newPayment, merchant); 65 hash = hash.Replace("\n",""); 66 67 if (hash == BAD_HASH || hash == "" || hash == HASH_ERROR_INFO) 68 return View("Error1", IsError("error_hash", payer.Id_faktury)); 69 70 //przeslanie w linku ordernumber potrzebnego do wyswietlenia potwierdzenia 71 var orderek = _repPayment.GetOrdernumber(newPayment.ORDERDESCRIPTION, newPayment.IDFaktury, newPayment.Data); 72 73 var linkFail = ConfigurationManager.AppSettings["Strona"]; 74 linkFail += "/" + language + ConfigurationManager.AppSettings["LinkFail"]; 75 linkFail += "/" + newPayment.IDFaktury + "?o=" + orderek; 76 77 var linkOk = ConfigurationManager.AppSettings["Strona"]; 78 linkOk += "/" + language + ConfigurationManager.AppSettings["LinkOk"]; 79 linkOk += "/" + newPayment.IDFaktury + "?o=" + orderek; 80 81 if (merchant != null && !String.IsNullOrEmpty(merchant.Id)) 82 SendRequest(newPayment, hash, merchant, linkFail, linkOk); 83 else 84 return View("Error1", IsError("error_hash", payer.Id_faktury)); 85 62 63 var adres = _eCardData.GetUrl(merchant); 64 Response.Redirect(adres); 86 65 return new EmptyResult(); 87 } 88 private PlatnosciEcard InitNewPayment(int id, vPlatnosciEcard platnosc, Waluta waluta, Payer payer) 89 { 90 var newPayment = new PlatnosciEcard(); 91 newPayment.IDFaktury = id; 92 newPayment.ORDERDESCRIPTION = platnosc.Faktura_Numer; 93 newPayment.nip = platnosc.nip; 94 newPayment.nrZlecenia = ""; 95 newPayment.AMOUNT = waluta.Amount; 96 newPayment.CURRENCY = waluta.Currency; 97 newPayment.SESSIONID = Session.SessionID; 98 newPayment.NAME = payer.FirstName; 99 newPayment.SURNAME = payer.LastName; 100 newPayment.AUTODEPOSIT = true; 101 newPayment.LANGUAGE = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToUpper(); 102 newPayment.CHARSET = KODOWANIE; 103 newPayment.COUNTRY = KOD_POLSKA; 104 newPayment.JS = true; 105 newPayment.PAYMENTTYPE = CARDS; 106 newPayment.Data = DateTime.Now; 107 newPayment.Status = null; 108 newPayment.Status_data = null; 109 return newPayment; 110 } 111 112 private bool AddNewPayment(PlatnosciEcard platnosc) 113 { 114 if (platnosc != null) 115 { 116 _repPayment.Insert(platnosc); 117 return true; 118 } 119 return false; 120 } 121 122 private string GetHash(PlatnosciEcard p, Merchant merchant) 123 { 124 var platnosc = _repPayment.Find(i => i.ORDERDESCRIPTION == p.ORDERDESCRIPTION && i.IDFaktury == p.IDFaktury && i.Data == p.Data).First(); 125 126 if (platnosc == null || merchant == null) return HASH_ERROR_INFO; 127 128 var adres = "https://pay.ecard.pl/servlet/HS?orderNumber=" + platnosc.ORDERNUMBER; 129 var req = (HttpWebRequest)WebRequest.Create(adres); 130 var dane = "&orderDescription=&amount=" + platnosc.AMOUNT; 131 dane += "¤cy=" + platnosc.CURRENCY; 132 dane += string.Format("&merchantId={0}&password={1}", merchant.Id, merchant.Password); 133 134 var bdata = System.Text.Encoding.ASCII.GetBytes(dane); 135 req.Method = "POST"; 136 req.ContentType = "application/x-www-form-urlencoded"; 137 req.ContentLength = dane.Length; 138 139 var reqStream = req.GetRequestStream(); 140 reqStream.Write(bdata, 0, bdata.Length); 141 reqStream.Close(); 142 143 var streamResponse = new StreamReader(req.GetResponse().GetResponseStream()); 144 string strResponse = streamResponse.ReadToEnd(); 145 streamResponse.Close(); 146 147 return strResponse; 148 } 149 150 private void SendRequest(PlatnosciEcard m, string hash, Merchant merchant, string linkok, string linkfail) 151 { 152 var adres = ConfigurationManager.AppSettings["eCard.Url"] + "?ORDERDESCRIPTION=" + m.ORDERDESCRIPTION; 153 154 var dane = "&AMOUNT=" + m.AMOUNT + "&CURRENCY=" + m.CURRENCY + "&ORDERNUMBER=" + m.ORDERNUMBER; 155 dane += "&NAME=" + m.NAME + "&SURNAME=" + m.SURNAME + "&LANGUAGE=" + m.LANGUAGE + "&CHARSET=ISO-8859-2"; 156 dane += "&COUNTRY=616&PAYMENTTYPE=CARDS&JS=1&HASH=" + hash + "&MERCHANTID=" + merchant.Id + "&AUTODEPOSIT=" + m.AUTODEPOSIT; 157 dane += "&LINKFAIL=" + linkfail + "&LINKOK=" + linkok + "&SESSIONID=" + m.SESSIONID; 158 Response.Redirect(adres + dane); 159 } 66 } 160 67 public ErrorViewData IsError(string errortxt, int idFaktury) 161 68 { … … 166 73 else if (errortxt == "error_hash") 167 74 errortxt = _translateManager.Translate("tlumaczenia", "error_hash"); 75 else if (errortxt == "error_hash") 76 errortxt = _translateManager.Translate("tlumaczenia", "error_hash"); 168 77 169 78 return _funkcjePlatnosci.InitErrorViewData(errortxt, idFaktury); 170 79 } 171 public Merchant getMerchantInfo( string systemKs) 172 { 173 var merchant = new Merchant(); 174 if (systemKs == "2") 175 { 176 merchant.Id = "171485000"; 177 merchant.Password = "ashSeth2"; 178 } 179 else 180 { 181 merchant.Id = "170906000"; 182 merchant.Password = "JaYpqfs0"; 183 } 184 return merchant; 185 } 80 186 81 } 187 82 } -
trunk/eCard/eCardMVC/Platnosci/Controllers/PlatnoscController.cs
r950 r951 42 42 var platnosc = _repVPayment.Find(p => p.ID_faktury == id1).SingleOrDefault(); 43 43 if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc)); 44 45 var kwota = _funkcjePlatnosci.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano); 46 47 var payer = InitPayer(platnosc.ID_faktury); 48 49 var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc, payer, "", kwota); 44 45 var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc); 50 46 51 47 var tablicaPotwierdzenia = _repConfirm.FindItemsByIdFaktury(id1); … … 80 76 { 81 77 var kwota = _funkcjePlatnosci.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano); 82 var viewData = InitInvoiceDetailsViewData(platnosc , payer, "", kwota);78 var viewData = InitInvoiceDetailsViewData(platnosc); 83 79 return View("Show",viewData); 84 80 } … … 99 95 if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc)); 100 96 101 var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc , null, "" , "");97 var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc); 102 98 103 99 //sprawdzamy czy dla kombinacji ordernumber i idfaktury istnieje platnosc, … … 119 115 if (!String.IsNullOrEmpty(IsError(platnosc).Error)) return View("Error1", IsError(platnosc)); 120 116 121 var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc , null, "", "");117 var invoiceDeatailsViewData = InitInvoiceDetailsViewData(platnosc); 122 118 return View(invoiceDeatailsViewData); 123 119 } … … 169 165 } 170 166 171 private static InvoiceDetailsViewData InitInvoiceDetailsViewData(vPlatnosciEcard platnosc, Payer payer, string status, string brutto)167 private InvoiceDetailsViewData InitInvoiceDetailsViewData(vPlatnosciEcard platnosc) 172 168 { 173 169 var invoiceDeatailsViewData = new InvoiceDetailsViewData(); 174 170 invoiceDeatailsViewData.vPlatnosciEcard = platnosc; 175 invoiceDeatailsViewData.Payer = payer; 176 invoiceDeatailsViewData.Status = status; 177 invoiceDeatailsViewData.brutto = brutto; 171 invoiceDeatailsViewData.Payer = InitPayer(platnosc.ID_faktury); 172 invoiceDeatailsViewData.brutto = _funkcjePlatnosci.BruttoToString(platnosc.Brutto, platnosc.waluta_brutto, platnosc.waluta_miano); 178 173 return invoiceDeatailsViewData; 179 174 }
