예제 #1
0
        /// <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();
        }
예제 #2
0
        internal static StatusRequestDtoRoot CreateStatusRequestDtoRoot(PaySecupayStatus secupayStatus)
        {
            StatusRequestDtoRoot root = new StatusRequestDtoRoot
            {
                Data = new StatusRequestDtoData
                {
                    ApiKey = secupayStatus.ApiKey,
                    Hash   = secupayStatus.Hash
                }
            };

            return(root);
        }
예제 #3
0
 internal static StatusRequestDtoRoot CreateStatusRequestDtoRoot(PaySecupayStatus secupayStatus)
 {
     StatusRequestDtoRoot root = new StatusRequestDtoRoot
     {
         Data = new StatusRequestDtoData
         {
             ApiKey = secupayStatus.ApiKey,
             Hash = secupayStatus.Hash
         }
     };
     return root;
 }