Zbiór zmian 951 dla trunk/eCard/eCardMVC/Platnosci
- Data:
- 2009-12-14 16:03:54 (16 years ago)
- Lokalizacja:
- trunk/eCard/eCardMVC/Platnosci
- Pliki:
-
- 1 dodane
- 6 zmodyfikowane
-
Controllers/MerchantController.cs (zmodyfikowane) (5 diffs)
-
Controllers/PlatnoscController.cs (zmodyfikowane) (5 diffs)
-
Models/FunkcjePlatnosci.cs (zmodyfikowane) (4 diffs)
-
Models/InvoiceDetailsViewData.cs (zmodyfikowane) (1 diff)
-
Models/eCardData.cs (dodane)
-
Platnosci.Web.csproj (zmodyfikowane) (3 diffs)
-
Platnosci.Web.csproj.user (zmodyfikowane) (1 diff)
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 } -
trunk/eCard/eCardMVC/Platnosci/Models/FunkcjePlatnosci.cs
r950 r951 6 6 using System.Configuration; 7 7 using System.Security.Principal; 8 using Platnosci.Core.Interface; 8 9 9 10 … … 16 17 private const string USD = "789"; 17 18 private const string PLN = "985"; 19 public const string CARDS = "CARDS"; //obsługa tylko kart płatniczych 20 public const string KOD_POLSKA = "616"; //kod kraju Akceptanta - Polska 21 public const string KODOWANIE = "ISO-8859-2"; 18 22 19 23 public string BruttoToString(decimal? kwota, decimal? waluta, string miano) … … 39 43 if (!String.IsNullOrEmpty(platnosc.waluta_miano) && platnosc.waluta_miano != "PLN") 40 44 { 45 waluta.Amount = Convert.ToInt32(platnosc.waluta_brutto * 100); 41 46 switch (platnosc.waluta_miano) 42 47 { … … 118 123 return er; 119 124 } 125 public PlatnosciEcard CreateAndAddNewPyment(vPlatnosciEcard platnosc, Waluta waluta, Payer payer, IRepository<PlatnosciEcard> _repPayment, string sessionId) 126 { 127 var newPayment = new PlatnosciEcard(); 128 newPayment.IDFaktury = platnosc.ID_faktury; 129 newPayment.ORDERDESCRIPTION = platnosc.Faktura_Numer; 130 newPayment.nip = platnosc.nip; 131 newPayment.nrZlecenia = ""; 132 newPayment.AMOUNT = waluta.Amount; 133 newPayment.CURRENCY = waluta.Currency; 134 newPayment.SESSIONID = sessionId; 135 newPayment.NAME = payer.FirstName; 136 newPayment.SURNAME = payer.LastName; 137 newPayment.AUTODEPOSIT = true; 138 newPayment.LANGUAGE = Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName.ToUpper(); 139 newPayment.CHARSET = KODOWANIE; 140 newPayment.COUNTRY = KOD_POLSKA; 141 newPayment.JS = true; 142 newPayment.PAYMENTTYPE = CARDS; 143 newPayment.Data = DateTime.Now; 144 newPayment.Status = null; 145 newPayment.Status_data = null; 120 146 147 if (newPayment != null) 148 { 149 _repPayment.Insert(newPayment); 150 return newPayment; 151 } 152 return null; 153 } 121 154 } 122 155 } -
trunk/eCard/eCardMVC/Platnosci/Models/InvoiceDetailsViewData.cs
r883 r951 13 13 public vPlatnosciEcard vPlatnosciEcard { get; set; } 14 14 public Payer Payer {get; set;} 15 public string Status { get; set; }16 15 public string brutto { get; set; } 17 16 public string termin { get; set; } -
trunk/eCard/eCardMVC/Platnosci/Platnosci.Web.csproj
r944 r951 60 60 <ItemGroup> 61 61 <Compile Include="App_GlobalResources\tlumaczenia.de.designer.cs"> 62 <AutoGen>True</AutoGen>63 <DesignTime>True</DesignTime>64 62 <DependentUpon>tlumaczenia.de.resx</DependentUpon> 63 <DesignTime>True</DesignTime> 64 <AutoGen>True</AutoGen> 65 65 </Compile> 66 66 <Compile Include="App_GlobalResources\tlumaczenia.fr.designer.cs"> … … 99 99 <Compile Include="Models\ErrorViewData.cs" /> 100 100 <Compile Include="Models\InvoiceDetailsViewData.cs" /> 101 <Compile Include="Models\eCardData.cs" /> 101 102 <Compile Include="Properties\AssemblyInfo.cs" /> 102 103 </ItemGroup> … … 162 163 </ItemGroup> 163 164 <ItemGroup> 165 <Content Include="App_GlobalResources\tlumaczenia.fr.resx"> 166 <Generator>GlobalResourceProxyGenerator</Generator> 167 <LastGenOutput>tlumaczenia.fr.designer.cs</LastGenOutput> 168 <SubType>Designer</SubType> 169 </Content> 170 </ItemGroup> 171 <ItemGroup> 164 172 <Content Include="App_GlobalResources\tlumaczenia.de.resx"> 165 173 <Generator>GlobalResourceProxyGenerator</Generator> 166 174 <LastGenOutput>tlumaczenia.de.designer.cs</LastGenOutput> 167 175 </Content> 168 </ItemGroup>169 <ItemGroup>170 <Content Include="App_GlobalResources\tlumaczenia.fr.resx">171 <Generator>GlobalResourceProxyGenerator</Generator>172 <LastGenOutput>tlumaczenia.fr.designer.cs</LastGenOutput>173 <SubType>Designer</SubType>174 </Content>175 </ItemGroup>176 <ItemGroup>177 176 <Content Include="App_GlobalResources\tlumaczenia.it.resx"> 178 177 <Generator>GlobalResourceProxyGenerator</Generator> -
trunk/eCard/eCardMVC/Platnosci/Platnosci.Web.csproj.user
r930 r951 1 1 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 2 2 <PropertyGroup> 3 <ProjectView> ProjectFiles</ProjectView>3 <ProjectView>ShowAllFiles</ProjectView> 4 4 </PropertyGroup> 5 5 <ProjectExtensions>
