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