public async Task <PaymentManagerBeginPaymentResponse> BeginPaymentAsync(BeginPaymentRequest request, System.Threading.CancellationToken cancellation) { Logger.LogCategory("BeginPaymentAsync"); Logger.Log(new { Request = request }); var result = new PaymentManagerBeginPaymentResponse(); var _provider = _providerFactory.GetProvider(request.BankType); if (_provider != null) { var providerResponse = _provider.BeginPayment(request); Logger.Log(new { ProviderResponse = providerResponse }); result = await SaveBeginPaymentAsync(request, providerResponse, cancellation); } else { result.Status = "InvalidBank"; } Logger.Log("Result = " + result.Status); return(result); }
public PaymentManagerBeginPaymentResponse BeginPayment(BeginPaymentRequest request) { Logger.LogCategory("BeginPayment"); Logger.Log(new { Request = request }); var result = new PaymentManagerBeginPaymentResponse(); var _provider = _providerFactory.GetProvider(request.BankType); if (_provider != null) { var providerResponse = _provider.BeginPayment(request); Logger.Log(new { ProviderResponse = providerResponse }); result = SaveBeginPayment(request, providerResponse); } else { result.Status = "InvalidBank"; } Logger.Log("Result = " + result.Status); return(result); }
private PaymentManagerBeginPaymentResponse SaveBeginPayment(BeginPaymentRequest request, PaymentProviderBeginPaymentResponse providerResponse) { var result = new PaymentManagerBeginPaymentResponse(); result.Request = request; result.ProviderResponse = providerResponse; var dbOk = false; Logger.LogCategory("SaveBeginPayment"); if (providerResponse.Succeeded || !Config.SaveOnlySuccessfulOperations) { Logger.Log("Start saving in the database"); var args = new { Result = CommandParameter.Output(SqlDbType.VarChar, 50), PaymentId = CommandParameter.Output(SqlDbType.Int), PaymentCode = request.PaymentCode, BankType = request.BankType, Amount = request.Amount, Info = request.Info, Data = request.Data, StepCode = SafeClrConvert.ToString(providerResponse.Code), StepStatus = SafeClrConvert.ToString(providerResponse.Status), StepDate = providerResponse.Date, StepSucceeded = providerResponse.Succeeded, @StepData = "" }; var cmd = _db.GetCommand("usp1_Payment_save_begin_step"); result.DbResult = _db.ExecuteNonQuery(cmd, args); if (result.DbResult.Success) { Logger.Log("DbStatus = " + result.Status); dbOk = result.Status == "Success"; if (dbOk) { result.Status = args.Result.Value.ToString(); result.Data = result.DbResult.Data = (int)args.PaymentId.Value; } else { result.Status = "SaveError"; } } else { Logger.Log("Failed: " + result.DbResult.Exception.ToString(",")); result.Failed(result.DbResult.Exception); } } else { dbOk = true; } if (providerResponse.Succeeded && dbOk) { result.Succeeded(); } return(result); }