protected internal void PrepareProxy(WSWebpayServiceImplService proxy)
        {
            /*Define el ENDPOINT del Web Service Webpay*/
            proxy.Url = WSDL;

            Policy myPolicy = new Policy();

            myPolicy.Assertions.Add(new CustomPolicyAssertion(this.config));

            proxy.SetPolicy(myPolicy);
            proxy.Timeout = 60000;
            proxy.UseDefaultCredentials = false;
        }
        /**
         * Permite inicializar una transacción en Webpay.
         * Como respuesta a la invocación se genera un token que representa en forma única una transacción.
         * */
        public wsInitTransactionOutput initTransaction(string buyOrder, string sessionId, string urlReturn, string urlFinal, Dictionary <string, string[]> stores)
        {
            wsInitTransactionInput initTransaction = new wsInitTransactionInput();

            /** Indica el tipo de transacción, su valor debe ser siempre TR_MALL_WS */
            initTransaction.wSTransactionType = wsTransactionType.TR_MALL_WS;

            initTransaction.buyOrder  = buyOrder;
            initTransaction.sessionId = sessionId;

            initTransaction.returnURL  = urlReturn;
            initTransaction.finalURL   = urlFinal;
            initTransaction.commerceId = this.config.CommerceCode;

            wsTransactionDetail[] details = new wsTransactionDetail[100]; //Como ejemplo se agregan dos detalles de comercios

            int counter = 0;

            foreach (KeyValuePair <string, string[]> entry in stores)
            {
                details[counter] = new wsTransactionDetail
                {
                    commerceCode = entry.Value[0],
                    amount       = System.Convert.ToDecimal(entry.Value[1]),
                    buyOrder     = entry.Value[2],
                };

                counter++;
            }

            wsTransactionDetail[] wsTransactionDetail = new wsTransactionDetail[1];
            wsTransactionDetail = details;

            initTransaction.transactionDetails = wsTransactionDetail;

            using (WSWebpayServiceImplService proxy = new WSWebpayServiceImplService())
            {
                /*Define el ENDPOINT del Web Service Webpay*/
                proxy.Url = WSDL;

                Policy myPolicy = new Policy();
                myPolicy.Assertions.Add(new CustomPolicyAssertion(this.config));

                proxy.SetPolicy(myPolicy);
                proxy.Timeout = 60000;
                proxy.UseDefaultCredentials = false;

                wsInitTransactionOutput wsInitTransactionOutput = proxy.initTransaction(initTransaction);
                return(wsInitTransactionOutput);
            }
        }
Exemplo n.º 3
0
        /**
         * Indica  a Webpay que se ha recibido conforme el resultado de la transacción
         * */
        public bool acknowledgeTransaction(string token)
        {
            using (WSWebpayServiceImplService proxy = new WSWebpayServiceImplService())
            {
                /*Define el ENDPOINT del Web Service Webpay*/
                proxy.Url = WSDL;

                Policy myPolicy = new Policy();
                CustomPolicyAssertion customPolicty = new CustomPolicyAssertion(this.config);
                myPolicy.Assertions.Add(customPolicty);

                proxy.SetPolicy(myPolicy);
                proxy.Timeout = 60000;
                proxy.UseDefaultCredentials = false;
                proxy.acknowledgeTransaction(token);
            }

            return(true);
        }
        /**
         * Permite obtener el resultado de la transacción una vez que
         * Webpay ha resuelto su autorización financiera.
         *
         * Respuesta VCI:
         *
         * TSY: Autenticación exitosa
         * TSN: autenticación fallida.
         * TO : Tiempo máximo excedido para autenticación
         * ABO: Autenticación abortada por tarjetahabiente
         * U3 : Error interno en la autenticación
         * Puede ser vacío si la transacción no se autentico
         *
         * */
        public transactionResultOutput getTransactionResult(string token)
        {
            using (WSWebpayServiceImplService proxy = new WSWebpayServiceImplService())
            {
                /*Define el ENDPOINT del Web Service Webpay*/
                proxy.Url = WSDL;

                Policy myPolicy = new Policy();

                CustomPolicyAssertion customPolicty = new CustomPolicyAssertion(config);
                myPolicy.Assertions.Add(customPolicty);
                proxy.SetPolicy(myPolicy);
                proxy.Timeout = 60000;
                proxy.UseDefaultCredentials = false;

                transactionResultOutput transactionResultOutput = proxy.getTransactionResult(token);
                acknowledgeTransaction(token); // Indica a Webpay que se ha recibido conforme el resultado de la transacción

                return(transactionResultOutput);
            }
        }
Exemplo n.º 5
0
        /**
         * Permite inicializar una transacción en Webpay. Como respuesta a la invocación se genera un token que representa en forma única una transacción.
         *
         * */
        public wsInitTransactionOutput initTransaction(decimal amount, string buyOrder, string sessionId, string urlReturn, string urlFinal)
        {
            wsInitTransactionInput initTransaction = new wsInitTransactionInput();

            /** Indica el tipo de transacción, su valor debe ser siempre TR_NORMAL_WS */
            initTransaction.wSTransactionType = wsTransactionType.TR_NORMAL_WS;

            initTransaction.buyOrder  = buyOrder;
            initTransaction.sessionId = sessionId;
            initTransaction.returnURL = urlReturn;
            initTransaction.finalURL  = urlFinal;

            wsTransactionDetail details = new wsTransactionDetail();

            details.commerceCode = this.config.CommerceCode;;
            details.buyOrder     = buyOrder;
            details.amount       = amount;

            wsTransactionDetail[] wsTransactionDetail = new wsTransactionDetail[] { details };

            initTransaction.transactionDetails = wsTransactionDetail;

            using (WSWebpayServiceImplService proxy = new WSWebpayServiceImplService())
            {
                /*Define el ENDPOINT del Web Service Webpay*/
                proxy.Url = WSDL;

                Policy myPolicy = new Policy();
                myPolicy.Assertions.Add(new CustomPolicyAssertion(this.config));

                proxy.SetPolicy(myPolicy);
                proxy.Timeout = 60000;
                proxy.UseDefaultCredentials = false;

                wsInitTransactionOutput wsInitTransactionOutput = proxy.initTransaction(initTransaction);
                return(wsInitTransactionOutput);
            }
        }