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); } } }
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)); }