Fix SilverPay payment integration JSON serialization
- Changed JSON naming policy from CamelCase to SnakeCaseLower for SilverPay API compatibility - Fixed field name from 'fiat_amount' to 'amount' in request body - Used unique payment ID instead of order ID to avoid duplicate external_id conflicts - Modified SilverPayApiResponse to handle string amounts from API - Added [JsonIgnore] attributes to computed properties to prevent JSON serialization conflicts - Fixed test compilation errors (mock service and enum casting issues) - Updated SilverPay endpoint to http://10.0.0.52:8001/ 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -57,8 +57,11 @@ public class CryptoPaymentService : ICryptoPaymentService
|
||||
// Use SilverPAY
|
||||
_logger.LogInformation("Creating SilverPAY order for {Currency}", currency);
|
||||
|
||||
// Generate payment ID first to use as external_id
|
||||
var paymentId = Guid.NewGuid();
|
||||
|
||||
var silverPayOrder = await _silverPayService.CreateOrderAsync(
|
||||
order.Id.ToString(),
|
||||
paymentId.ToString(), // Use unique payment ID instead of order ID
|
||||
order.TotalAmount,
|
||||
currency,
|
||||
$"Order #{order.Id} - {order.Items.Count} items",
|
||||
@@ -67,7 +70,7 @@ public class CryptoPaymentService : ICryptoPaymentService
|
||||
|
||||
var cryptoPayment = new CryptoPayment
|
||||
{
|
||||
Id = Guid.NewGuid(),
|
||||
Id = paymentId, // Use the same payment ID
|
||||
OrderId = orderId,
|
||||
Currency = currency,
|
||||
WalletAddress = silverPayOrder.PaymentAddress,
|
||||
|
||||
Reference in New Issue
Block a user