public PaymentManager() { PaymentProcessorFactory <IVposPaymentProcessor> .Register(VposPaymentSupplier.VPos, () => new PayFlexVPosProcessor()); PaymentProcessorFactory <IThreedProcessor> .Register(VposPaymentSupplier.MPI, () => new PayFlexMPIProcessor()); PaymentProcessorFactory <ICommonPaymentProcessor> .Register(VposPaymentSupplier.CommonPayment, () => new PayFlexCommonPaymentProcessor()); }
public PaymentResponse PostProcess(Payment payment) { try { PaymentResponse result = null; switch (payment.PaymentType) { case PaymentType.VPos: var _paymentVposProcessor = PaymentProcessorFactory <IVposPaymentProcessor> .Create(VposPaymentSupplier.VPos); VposRequest vposRequest = payment as VposRequest; result = _paymentVposProcessor.Pay(vposRequest); break; case PaymentType.MPI: var _paymentMpiProcessor = PaymentProcessorFactory <IThreedProcessor> .Create(VposPaymentSupplier.MPI); MpiRequest mpiRequest = payment as MpiRequest; result = _paymentMpiProcessor.Pay(mpiRequest); break; case PaymentType.CommonPayment: var _paymentCommonProcessor = PaymentProcessorFactory <ICommonPaymentProcessor> .Create(VposPaymentSupplier.CommonPayment); CommonPaymentRequest commonPaymentRequest = payment as CommonPaymentRequest; result = _paymentCommonProcessor.Pay(commonPaymentRequest); break; case PaymentType.VPosCancellationRefund: var _paymentVposCancelProcessor = PaymentProcessorFactory <IVposPaymentProcessor> .Create(VposPaymentSupplier.VPos); VposRequest vposCancelRequest = payment as VposRequest; result = _paymentVposCancelProcessor.CancellationRefund(vposCancelRequest); break; } return(result); } catch (PayFlexClientException ex) { throw ex; } }
public PaymentQueryResponse Query(PaymentQueryRequest query) { try { PaymentQueryResponse result = null; switch (query.PaymentType) { case PaymentType.CommonPayment: var _paymentCommonProcessor = PaymentProcessorFactory <ICommonPaymentProcessor> .Create(VposPaymentSupplier.CommonPayment); result = _paymentCommonProcessor.Query(query); break; } return(result); } catch (PayFlexClientException ex) { throw ex; } }
public PaymentResponse PostProcess(Payment payment) { try { PaymentResponse result = null; switch (payment.PaymentType) { case PaymentType.VPos: var paymentVposProcessor = PaymentProcessorFactory <IVposPaymentProcessor> .Create(VposPaymentSupplier.VPos); VposRequest vposRequest = payment as VposRequest; result = paymentVposProcessor.Pay(vposRequest); break; case PaymentType.CommonPayment: var paymentCommonProcessor = PaymentProcessorFactory <ICommonPaymentProcessor> .Create(VposPaymentSupplier.CommonPayment); CommonPaymentRequest commonPaymentRequest = payment as CommonPaymentRequest; result = paymentCommonProcessor.Pay(commonPaymentRequest); break; case PaymentType.VPosQuery: var paymentCommonQueryProcessor = PaymentProcessorFactory <ICommonPaymentProcessor> .Create(VposPaymentSupplier.CommonPayment); VposQueryRequest vposQueryRequest = payment as VposQueryRequest; result = paymentCommonQueryProcessor.VposQuery(vposQueryRequest); break; case PaymentType.SaveToken: var paymentVposSaveTokenProcessor = PaymentProcessorFactory <IVposPaymentProcessor> .Create(VposPaymentSupplier.VPos); VposRequest saveTokenRequest = payment as VposRequest; result = paymentVposSaveTokenProcessor.SaveToken(saveTokenRequest); break; case PaymentType.UpdatePan: var paymentUpdatePanProcessor = PaymentProcessorFactory <IVposPaymentProcessor> .Create(VposPaymentSupplier.VPos); VposRequest updatePanRequest = payment as VposRequest; result = paymentUpdatePanProcessor.UpdatePan(updatePanRequest); break; case PaymentType.DeleteToken: var deleteTokenProcessor = PaymentProcessorFactory <IVposPaymentProcessor> .Create(VposPaymentSupplier.VPos); VposRequest deleteTokenRequest = payment as VposRequest; result = deleteTokenProcessor.DeleteToken(deleteTokenRequest); break; case PaymentType.GetToken: var tokenProcessor = PaymentProcessorFactory <IVposPaymentProcessor> .Create(VposPaymentSupplier.VPos); VposRequest tokenRequest = payment as VposRequest; result = tokenProcessor.GetToken(tokenRequest); break; } return(result); } catch (PayFlexClientException ex) { throw ex; } }