Beispiel #1
0
        public RespuestaPayOnline3pDTO PayOnLine_3p(RequerimientoPayOnline3pDTO dto)
        {
            //using (var service = new PaymentServicePlatform())
            using (var service = NPSWSServiceWrapper.GetService(_UrlNPS))
            {
                try
                {
                    string secureHash = HashNPS.ObtenerHashPayOnline3p(dto);

                    var response = service.PayOnLine_3p(new RequerimientoStruct_PayOnLine_3p
                    {
                        psp_Version          = dto.Version,
                        psp_MerchantId       = dto.MerchantId,
                        psp_TxSource         = dto.TxSource,
                        psp_MerchTxRef       = dto.MerchTxRef,
                        psp_MerchOrderId     = dto.MerchOrderId,
                        psp_ReturnURL        = dto.ReturnURL,
                        psp_FrmLanguage      = dto.FrmLanguage,
                        psp_FrmBackButtonURL = dto.FrmBackButtonURL,
                        psp_Amount           = (dto.Amount == 0 ? null : Math.Truncate(dto.Amount * 100).ToString()),
                        psp_NumPayments      = dto.NumPayments.ToString(),
                        //psp_PaymentAmount = (dto.PaymentAmount == 0 ? null : Math.Truncate(dto.PaymentAmount * 100).ToString()),
                        psp_Plan     = (string.IsNullOrEmpty(dto.Plan) ? null : dto.Plan),
                        psp_Currency = dto.Currency,
                        psp_Country  = dto.Country,
                        psp_Product  = dto.Product,
                        //psp_CustomerId = dto.CustomerId,
                        psp_CustomerMail         = dto.CustomerMail,
                        psp_MerchantMail         = dto.MerchantMail,
                        psp_PurchaseDescription  = dto.PurchaseDescription,
                        psp_PromotionCode        = dto.PromotionCode,
                        psp_FirstPaymentDeferral = (dto.FirstPaymentDeferralDate.Year != 1 ? dto.FirstPaymentDeferralDate.ToString("yyyy-MM-dd") : null),
                        psp_PosDateTime          = dto.PosDateTime.ToString("yyyy-MM-dd HH:mm:ss"),
                        psp_3dSecureAction       = dto.TresDSecureAction,
                        psp_SecureHash           = secureHash
                    }.AssignNullToEmptyStrings());

                    return(new DTOGenerador().ObtenerRespuestaPayOnline3pDTO(response));
                }
                catch (Exception ex)
                {
                    Tracker.WriteTrace(string.Format($"Error en metodo ServiciosNPS.PayOnLine_3p: {ex.Message}. Datos Enviados: {Tracker.SerializarObjeto(dto)}"), false, Tracker.TraceType.Error);
                    var response = new DTOGenerador().ObtenerRespuestaPayOnline3pDTO(null);
                    response.ErrorMessage = ex.Message + "\nINELPOL3P Inner Exception: " + (ex.InnerException != null ? ex.InnerException.Message : string.Empty);

                    return(response);
                }
            }
        }
Beispiel #2
0
        internal static string ObtenerHashPayOnline3p(RequerimientoPayOnline3pDTO dto)
        {
            string hash = string.Empty;

            try
            {
                hash =
                    dto.TresDSecureAction +
                    (dto.Amount == 0 ? null : Math.Truncate(dto.Amount * 100).ToString()) +
                    dto.Country +
                    dto.Currency +
                    //dto.CustomerId +
                    dto.CustomerMail +
                    (dto.FirstPaymentDeferralDate.Year != 1 ? dto.FirstPaymentDeferralDate.ToString("yyyy-MM-dd") : null) +
                    dto.FrmBackButtonURL +
                    dto.FrmLanguage +
                    dto.MerchOrderId +
                    dto.MerchTxRef +
                    dto.MerchantId +
                    dto.MerchantMail +
                    dto.NumPayments.ToString() +
                    //(dto.PaymentAmount == 0 ? null : Math.Truncate(dto.PaymentAmount * 100).ToString()) +
                    (string.IsNullOrEmpty(dto.Plan) ? null : dto.Plan) +
                    dto.PosDateTime.ToString("yyyy-MM-dd HH:mm:ss") +
                    dto.Product +
                    dto.PromotionCode +
                    dto.PurchaseDescription +
                    dto.ReturnURL +
                    dto.TxSource +
                    dto.Version +
                    dto.SecretKey;
            }
            catch (Exception)
            {
                throw;
            }

            return(CodificarHash(hash));
        }