public ActionResult IPNHandler() { Debug.WriteLine("PayUMea Standard IPN: {0}".FormatWith(Request.ContentLength)); var provider = _paymentService.LoadPaymentMethodBySystemName("Payments.PayUMeaStandard", true); var processor = provider != null ? provider.Value as PayUMeaStandardProvider : null; if (processor == null) throw new SmartException(_localizationService.GetResource("Plugins.Payments.PayUMeaStandard.NoModuleLoading")); var ueasyPaymentSettings = _services.Settings.LoadSetting<PayUMeaStandardPaymentSettings>(); var runPayUcomms = new RunPayUComms(ueasyPaymentSettings.Username, ueasyPaymentSettings.Password, ueasyPaymentSettings.ApiUrl, ueasyPaymentSettings.SafeKey, "ONE_ZERO"); var transactionRequest1 = new GetTransactionRequest { PayUReference = Request.QueryString["payUReference"] }; var transaction = runPayUcomms.GetTransaction(transactionRequest1); var orderByNumber = _orderService.GetOrderByNumber(Request.QueryString["orderId"]); switch (transaction.TransactionState) { case "RESERVE": orderByNumber.AuthorizationTransactionId = Request.QueryString["payUReference"]; _orderService.UpdateOrder(orderByNumber); _orderProcessingService.MarkAsAuthorized(orderByNumber); break; case "RESERVE_CANCEL": orderByNumber.AuthorizationTransactionId = Request.QueryString["payUReference"]; _orderService.UpdateOrder(orderByNumber); _orderProcessingService.CancelOrder(orderByNumber, true); break; case "PAYMENT": orderByNumber.AuthorizationTransactionId = Request.QueryString["payUReference"]; _orderService.UpdateOrder(orderByNumber); _orderProcessingService.MarkOrderAsPaid(orderByNumber); break; case "FINALIZE": orderByNumber.AuthorizationTransactionId = Request.QueryString["payUReference"]; _orderService.UpdateOrder(orderByNumber); _orderProcessingService.MarkOrderAsPaid(orderByNumber); break; } return Content(""); }
public GetTransactionResult GetTransaction(GetTransactionRequest request) { try { var result = _client.getTransaction(_api, _safeKey, new additionalInfo { payUReference = request.PayUReference }); return new GetTransactionResult { IsTransactionSuccessfull = result.successful, TransactionState = result.transactionStateSpecified ? result.transactionState.ToString() : "Unknown", DisplayMessage = result.displayMessage, ErrorMessage = result.resultMessage, PayUReference = result.payUReference, RequestTrace = result.requestTrace, ResultCode = result.resultCode }; } catch (Exception ex) { return new GetTransactionResult { IsTransactionSuccessfull = false, DisplayMessage = "An Error Occurred while processing your transaction", ErrorMessage = ex.Message }; } }