public tbPayment ActualizarPayment() { //Inserto en payment detail el post del proveedor tbPaymentDetail paymentDetailPost = this.InsertPaymentDetail("POST_VENDOR"); //Inserto en payment detail el request que voy a realizar a SimpleQueryTx tbPaymentDetail paymentDetailSimpleQuery = this.InsertPaymentDetail("SIMPLE_QUERY_TX"); //Consulto el estado del pago NpsBusiness npsBusiness = new NpsBusiness(); tbPayment paymentNpsResult = npsBusiness.ConsultarEstadoDelPago(_transactionId, _idPayment, paymentDetailSimpleQuery); //Actualizo tbPaymentDetails paymentDetailSimpleQuery = this.UpdatePaymentDetail(paymentDetailSimpleQuery); //Obtengo el registro del pago tbPayment payment = this.ObtengoPaymentPorId(); //Actualizo registro del pago, con estado del pago y la informacion adicional payment.pst_id = paymentNpsResult.pst_id; payment.pay_informacion_adicional = paymentNpsResult.pay_informacion_adicional; payment = this.UpdatePayment(payment); return(payment); }
public tbPayment GenerarFormularioDePago() { try { //Creo el registro en la tabla payment tbPayment payment = this.CreatePayment(); //Creo el detalle del pago tbPaymentDetail paymentDetail = this.CreatePaymentDetail(payment); //Creo el formulario de pago NpsBusiness npsBusiness = new NpsBusiness(); string urlPaymentForm = npsBusiness.CreateForm(payment.pay_id, _monto, _producto, _cuotas, paymentDetail); //Actualizo payment detail paymentDetail = this.UpdatePaymentDetail(paymentDetail); //Actualizo el payment con el formulario de pagos si no retorno nulo if (!string.IsNullOrEmpty(urlPaymentForm)) { //Valido que NPS retorne una url, sino es porque arrojo error y lo dejo registrado en tbPayment //y no envío el mail if (urlPaymentForm.Contains("http")) { //Asigno la url del formulario de pago de la app cliente string vueAppUrl = ConfigurationManager.AppSettings["VUE_APP_URL_FORM"] + "/" + payment.pay_id.ToString(); //Actualizo payment con el formulario de pago payment.pay_url_formulario = urlPaymentForm; payment.pay_url_formulario_custom = vueAppUrl; payment.pst_id = (int)EnumPaymentStatus.PENDIENTE; payment = this.UpdatePayment(payment); //envio e-mail this.SendEmamil(vueAppUrl); //Actualizo payment con el contador de envio de mails payment.pay_cantidad_mails_enviados++; payment = this.UpdatePayment(payment); } else { //Actualizo payment con el error que arrojo NPS payment.pay_informacion_adicional = urlPaymentForm; payment.pst_id = (int)EnumPaymentStatus.ERROR; payment = this.UpdatePayment(payment); } } return(payment); } catch (Exception ex) { throw ex; } }
public tbPayment ConsultarEstadoDelPago(string psp_TransactionId, int psp_merchantTxReference, tbPaymentDetail paymentDetail) { string transactionId = psp_TransactionId; string merchantTxReference = psp_merchantTxReference.ToString(); NpsPaymentFormRepository npsPaymentForm = new NpsPaymentFormRepository(); return(npsPaymentForm.ConsultarEstadoDelPago(transactionId, merchantTxReference, paymentDetail)); }
private tbPaymentDetail UpdatePaymentDetail(tbPaymentDetail paymentDetail) { try { paymentDetail = paymentDetailBusiness.Update(paymentDetail) as tbPaymentDetail; return(paymentDetail); } catch (Exception ex) { throw ex; } }
public tbPayment ConsultarEstadoDelPago(string psp_TransactionId, string psp_MerchTxRef, tbPaymentDetail paymentDetail) { try { _paymentDetail = paymentDetail; NpsModel model = new NpsModel(); model.psp_QueryCriteria = "T"; model.psp_QueryCriteriaId = psp_TransactionId; return(this.RequestSimpleQueryTx(model)); } catch (Exception ex) { throw ex; } }
public string CreateForm(int idPayment, int monto, int producto, int cuotas, tbPaymentDetail paymentDetail) { try { //Cuando se pase a test/pro se tiene que eliminar esto. string merchantTransactionReference = "CARGO-010000-" + idPayment.ToString(); string amount = monto.ToString(); string product = producto.ToString(); string numPayments = cuotas.ToString(); NpsPaymentFormRepository npsPaymentForm = new NpsPaymentFormRepository(); return(npsPaymentForm.CrearFormulario(merchantTransactionReference, amount, product, numPayments, paymentDetail)); } catch (Exception ex) { throw ex; } }
private tbPaymentDetail InsertPaymentDetail(string OPERATION_TYPE) { try { tbPaymentDetail paymentDetail = new tbPaymentDetail() { pay_id = _idPayment, pde_operacion = OPERATION_TYPE, pde_vendor_response_id = _transactionId, pde_fecha = DateTime.Now }; return(paymentDetailBusiness.Create(paymentDetail) as tbPaymentDetail); } catch (Exception ex) { throw ex; } }
private tbPaymentDetail CreatePaymentDetail(tbPayment payment) { try { //Creo el registro del request en payment details tbPaymentDetail paymentDetail = new tbPaymentDetail() { pay_id = payment.pay_id, pde_operacion = "SOLICITUD_FORMULARIO", pde_fecha = DateTime.Now }; paymentDetail = paymentDetailBusiness.Create(paymentDetail) as tbPaymentDetail; return(paymentDetail); } catch (Exception ex) { throw ex; } }
public string CrearFormulario(string merchantTransactionReference, string amount, string product, string numPayments, tbPaymentDetail paymentDetail) { try { _paymentDetail = paymentDetail; NpsModel model = new NpsModel(); model.psp_MerchTxRef = merchantTransactionReference; model.psp_Amount = amount; model.psp_Product = product; model.psp_NumPayments = numPayments; return(this.ArmarRequest(model)); } catch (Exception ex) { throw ex; } }