public static BEpaymentResponse GenerarCIP(BEGenRequest paymentRequest) { BEWSGenCIPRequestMod1 solicitud = new BEWSGenCIPRequestMod1(); solicitud.CodServ = ConfigurationManager.AppSettings["PE_MERCHAND_ID"]; bl_helper hlp = new bl_helper(); solicitud.Xml = hlp.convertToXml(ref paymentRequest).Replace("BEGenRequest", "SolPago"); BEWSGenCIPResponseMod1 response = new BEWSGenCIPResponseMod1(); using (var proxy = new WSCrypto()) { proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; proxy.Proxy = WebProxy.GetDefaultProxy(); proxy.Proxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials; solicitud.Xml = solicitud.Xml.Trim(); solicitud.Firma = proxy.Signer(solicitud.Xml, ByteUtil.FileToByteArray(PrivateKey)); solicitud.Xml = proxy.EncryptText(solicitud.Xml, ByteUtil.FileToByteArray(PublicKey)); using (var proxyCIP = new Service()) { response = proxyCIP.GenerarCIPMod1(solicitud); if (response != null) { if (!String.IsNullOrEmpty(response.Xml)) { response.Xml = proxy.DecryptText(response.Xml, ByteUtil.FileToByteArray(PrivateKey)); } } } } BEpaymentResponse paymentResponse = new BEpaymentResponse(); XmlElement element = default(XmlElement); if ((response != null)) { XmlDocument xml = new XmlDocument(); xml.InnerXml = response.Xml; element = (XmlElement)xml.SelectSingleNode("ConfirSolPago"); XmlElement elementchild = (XmlElement)element.SelectSingleNode("CIP"); XmlElement elementchildCIP = (XmlElement)elementchild.SelectSingleNode("NumeroOrdenPago"); XmlElement elementchildMerchandID = (XmlElement)elementchild.SelectSingleNode("MerchantID"); XmlElement elementchildtoken = (XmlElement)element.SelectSingleNode("Token"); paymentResponse.NumeroCip = elementchildCIP.InnerText; paymentResponse.IdComercio = elementchildMerchandID.InnerText; paymentResponse.Token = elementchildtoken.InnerText; paymentResponse.Estado = response.Estado; paymentResponse.Mensaje = response.Mensaje; paymentResponse.Xml = response.Xml; } else { return(null); } return(paymentResponse); }
public string convertToXml(ref BEGenRequest paymentRequest) { paymentRequest.Detalles.Detalle.Cod_Origen = "CT"; paymentRequest.Detalles.Detalle.TipoOrigen = "TO"; paymentRequest.Detalles.Detalle.ConceptoPago = paymentRequest.ConceptoPago; paymentRequest.Detalles.Detalle.Importe = paymentRequest.Total; StringWriter stringWriter = new StringWriter(); XmlSerializer x = new XmlSerializer(paymentRequest.GetType()); x.Serialize(stringWriter, paymentRequest); stringWriter.Close(); return(stringWriter.ToString()); }