/// <summary> /// Führt eine Statusanfrage am Gateway durch. /// Kommuniaktion erfolgt im JSON Format /// </summary> private void RunPaymentStatus(PaySecupayStatus secupayStatus) { // Die Statusanfrage wird in ein Data Transport Objekte gewandelt, das als JSON seralisiert werden kann StatusRequestDtoRoot dto = TDtoFactory.CreateStatusRequestDtoRoot(secupayStatus); secupayStatus.ApiUrl = string.Format("{0}/payment/status", secupayStatus.ApiUrl); secupayStatus.JsonOut = dto.ToJsonString(); // Anfrage vorab in DB speichern Context.SaveChanges(); // Anfrage am Gateway synchron durchführen und Antwort speichern secupayStatus.JsonIn = RunWebRequest(secupayStatus.ApiUrl, secupayStatus.JsonOut); Context.SaveChanges(); // Die JSON Antwort in ein Data Transport Objekt deserialisieren var response = secupayStatus.JsonIn.FromJsonToObject <StatusResponseDtoRoot>(); // Einzelne Wert in Objekt übernehmen secupayStatus.ResponseHash = response.Data.Hash; secupayStatus.ResponsePaymentStatus = response.Data.PaymentStatus; secupayStatus.ResponseStatus = response.Data.Status; secupayStatus.ResponseCreated = response.Data.Created.FromJsonToDateTime(); secupayStatus.ResponseDemo = response.Data.Demo; secupayStatus.ResponseTransId = response.Data.TransId; secupayStatus.ResponseAmount = response.Data.Amount; secupayStatus.ResponseOpt = "";//response.Data.Opt; secupayStatus.Status = response.Status; secupayStatus.Errors = response.Errors; // Antwort in DB sichern Context.SaveChanges(); }
internal static StatusRequestDtoRoot CreateStatusRequestDtoRoot(PaySecupayStatus secupayStatus) { StatusRequestDtoRoot root = new StatusRequestDtoRoot { Data = new StatusRequestDtoData { ApiKey = secupayStatus.ApiKey, Hash = secupayStatus.Hash } }; return(root); }
internal static StatusRequestDtoRoot CreateStatusRequestDtoRoot(PaySecupayStatus secupayStatus) { StatusRequestDtoRoot root = new StatusRequestDtoRoot { Data = new StatusRequestDtoData { ApiKey = secupayStatus.ApiKey, Hash = secupayStatus.Hash } }; return root; }