示例#1
0
        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);
        }
示例#2
0
        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());
        }