#27 small changes for the userTransaction
This commit is contained in:
@@ -3,5 +3,5 @@ namespace Hutopy.Application.Common.Interfaces;
|
|||||||
|
|
||||||
public interface IStripeService
|
public interface IStripeService
|
||||||
{
|
{
|
||||||
public Task<string> CreateCheckoutSession(int price, string currency);
|
public Task<string> CreateCheckoutSession(int amount, string currency);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ namespace Hutopy.Application.Stripe.Commands;
|
|||||||
public record CreateSessionCheckoutCommand : IRequest<string>
|
public record CreateSessionCheckoutCommand : IRequest<string>
|
||||||
{
|
{
|
||||||
public required string CreatorId { get; init; }
|
public required string CreatorId { get; init; }
|
||||||
public required int Price { get; init; }
|
public required int Amount { get; init; }
|
||||||
public string Currency { get; init; } = "CAD";
|
public string Currency { get; init; } = "CAD";
|
||||||
public string TipMessage { get; init; } = string.Empty;
|
public string TipMessage { get; init; } = string.Empty;
|
||||||
}
|
}
|
||||||
@@ -18,11 +18,16 @@ public class CreateSessionCheckoutCommandHandler(
|
|||||||
{
|
{
|
||||||
public async Task<string> Handle(CreateSessionCheckoutCommand request, CancellationToken cancellationToken)
|
public async Task<string> Handle(CreateSessionCheckoutCommand request, CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
var stripeSecret = await stripeService.CreateCheckoutSession(request.Price, request.Currency);
|
var stripeSecret = await stripeService.CreateCheckoutSession(request.Amount, request.Currency);
|
||||||
|
|
||||||
|
// ReSharper disable once PossibleLossOfFraction
|
||||||
|
decimal priceInDollars = (request.Amount / 100);
|
||||||
|
|
||||||
|
|
||||||
|
//todo: Need to add this transaction after the confirmation from stripe in the frontEnd ( redirect, re-call backend )
|
||||||
var userTransaction = new UserTransaction
|
var userTransaction = new UserTransaction
|
||||||
{
|
{
|
||||||
Currency = request.Currency, Amount = request.Price, TipMessage = request.TipMessage, ApplicationUserId = request.CreatorId
|
Currency = request.Currency, Amount = priceInDollars, TipMessage = request.TipMessage, ApplicationUserId = request.CreatorId
|
||||||
};
|
};
|
||||||
|
|
||||||
await dbContext.UserTransactions.AddAsync(userTransaction, cancellationToken);
|
await dbContext.UserTransactions.AddAsync(userTransaction, cancellationToken);
|
||||||
|
|||||||
@@ -1,18 +1,17 @@
|
|||||||
using Stripe;
|
using Stripe;
|
||||||
using Stripe.Checkout;
|
using Stripe.Checkout;
|
||||||
using Hutopy.Application.Common.Interfaces;
|
using Hutopy.Application.Common.Interfaces;
|
||||||
using Microsoft.Extensions.Configuration;
|
|
||||||
|
|
||||||
namespace Hutopy.Infrastructure.Stripe;
|
namespace Hutopy.Infrastructure.Stripe;
|
||||||
|
|
||||||
public class StripeService : IStripeService
|
public class StripeService : IStripeService
|
||||||
{
|
{
|
||||||
public StripeService(IConfiguration configuration)
|
public StripeService()
|
||||||
{
|
{
|
||||||
StripeConfiguration.ApiKey = configuration["STRIPE_API_KEY"];
|
StripeConfiguration.ApiKey = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<string> CreateCheckoutSession(int price, string currency = "cad")
|
public async Task<string> CreateCheckoutSession(int amount, string currency = "cad")
|
||||||
{
|
{
|
||||||
var options = new SessionCreateOptions
|
var options = new SessionCreateOptions
|
||||||
{
|
{
|
||||||
@@ -22,7 +21,7 @@ public class StripeService : IStripeService
|
|||||||
{
|
{
|
||||||
PriceData = new SessionLineItemPriceDataOptions
|
PriceData = new SessionLineItemPriceDataOptions
|
||||||
{
|
{
|
||||||
UnitAmount = price,
|
UnitAmount = amount,
|
||||||
Currency = currency,
|
Currency = currency,
|
||||||
ProductData = new SessionLineItemPriceDataProductDataOptions { Name = "Tip", },
|
ProductData = new SessionLineItemPriceDataProductDataOptions { Name = "Tip", },
|
||||||
},
|
},
|
||||||
@@ -32,7 +31,7 @@ public class StripeService : IStripeService
|
|||||||
],
|
],
|
||||||
Mode = "payment",
|
Mode = "payment",
|
||||||
UiMode = "embedded",
|
UiMode = "embedded",
|
||||||
ReturnUrl = $"https://zealous-bay-08204590f.5.azurestaticapps.net/paymentcompleted",
|
ReturnUrl = "https://zealous-bay-08204590f.5.azurestaticapps.net/paymentcompleted",
|
||||||
};
|
};
|
||||||
|
|
||||||
var service = new SessionService();
|
var service = new SessionService();
|
||||||
|
|||||||
@@ -694,7 +694,7 @@
|
|||||||
"creatorId": {
|
"creatorId": {
|
||||||
"type": "string"
|
"type": "string"
|
||||||
},
|
},
|
||||||
"price": {
|
"amount": {
|
||||||
"type": "integer",
|
"type": "integer",
|
||||||
"format": "int32"
|
"format": "int32"
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user