Commit 04fe20e8 authored by Brayan Sarmiento's avatar Brayan Sarmiento
Browse files

Agregar controladores

parent 27b95f35
{
"Version": 1,
"WorkspaceRootPath": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|d:\\discod\\selfcheckout\\proyecto difare\\integration_pinpad_difare\\integration_pinpad_difare\\app_datafono_difare\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|solutionrelative:app_datafono_difare\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|d:\\discod\\selfcheckout\\proyecto difare\\integration_pinpad_difare\\integration_pinpad_difare\\app_datafono_difare\\services\\transactionservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|solutionrelative:app_datafono_difare\\services\\transactionservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|d:\\discod\\selfcheckout\\proyecto difare\\integration_pinpad_difare\\integration_pinpad_difare\\app_datafono_difare\\helpers\\obtenertipotarjetahelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|solutionrelative:app_datafono_difare\\helpers\\obtenertipotarjetahelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|d:\\discod\\selfcheckout\\proyecto difare\\integration_pinpad_difare\\integration_pinpad_difare\\app_datafono_difare\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|solutionrelative:app_datafono_difare\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 3,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{f4e46f1e-cf83-40aa-b568-a627394bc994}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Program.cs",
"DocumentMoniker": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Program.cs",
"RelativeDocumentMoniker": "app_datafono_difare\\Program.cs",
"ToolTip": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Program.cs",
"RelativeToolTip": "app_datafono_difare\\Program.cs",
"ViewState": "AgIAAAYAAAAAAAAAAAAAACAAAAApAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-25T16:20:27.39Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "TransactionService.cs",
"DocumentMoniker": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Services\\TransactionService.cs",
"RelativeDocumentMoniker": "app_datafono_difare\\Services\\TransactionService.cs",
"ToolTip": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Services\\TransactionService.cs",
"RelativeToolTip": "app_datafono_difare\\Services\\TransactionService.cs",
"ViewState": "AgIAABMAAAAAAAAAAAAcwCIAAAApAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-26T19:26:54.107Z"
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "ObtenerTipoTarjetaHelper.cs",
"DocumentMoniker": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Helpers\\ObtenerTipoTarjetaHelper.cs",
"RelativeDocumentMoniker": "app_datafono_difare\\Helpers\\ObtenerTipoTarjetaHelper.cs",
"ToolTip": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Helpers\\ObtenerTipoTarjetaHelper.cs",
"RelativeToolTip": "app_datafono_difare\\Helpers\\ObtenerTipoTarjetaHelper.cs",
"ViewState": "AgIAAAUAAAAAAAAAAAAAAAkAAAADAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-27T15:55:25.195Z"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "appsettings.json",
"DocumentMoniker": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\appsettings.json",
"RelativeDocumentMoniker": "app_datafono_difare\\appsettings.json",
"ToolTip": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\appsettings.json",
"RelativeToolTip": "app_datafono_difare\\appsettings.json",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAABAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
"WhenOpened": "2025-11-26T22:24:52.479Z"
}
]
}
]
}
]
}
\ No newline at end of file
{
"Version": 1,
"WorkspaceRootPath": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\",
"Documents": [
{
"AbsoluteMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|d:\\discod\\selfcheckout\\proyecto difare\\integration_pinpad_difare\\integration_pinpad_difare\\app_datafono_difare\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|solutionrelative:app_datafono_difare\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|d:\\discod\\selfcheckout\\proyecto difare\\integration_pinpad_difare\\integration_pinpad_difare\\app_datafono_difare\\services\\transactionservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|solutionrelative:app_datafono_difare\\services\\transactionservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|d:\\discod\\selfcheckout\\proyecto difare\\integration_pinpad_difare\\integration_pinpad_difare\\app_datafono_difare\\helpers\\obtenertipotarjetahelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
"RelativeMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|solutionrelative:app_datafono_difare\\helpers\\obtenertipotarjetahelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
},
{
"AbsoluteMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|d:\\discod\\selfcheckout\\proyecto difare\\integration_pinpad_difare\\integration_pinpad_difare\\app_datafono_difare\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
"RelativeMoniker": "D:0:0:{686ACBEE-5419-40F7-A3E5-DDC60E451696}|app_datafono_difare\\app_datafono_difare.csproj|solutionrelative:app_datafono_difare\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
}
],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": [
{
"DockedWidth": 200,
"SelectedChildIndex": 3,
"Children": [
{
"$type": "Bookmark",
"Name": "ST:0:0:{f4e46f1e-cf83-40aa-b568-a627394bc994}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
},
{
"$type": "Bookmark",
"Name": "ST:0:0:{aa2115a1-9712-457b-9047-dbb71ca2cdd2}"
},
{
"$type": "Document",
"DocumentIndex": 0,
"Title": "Program.cs",
"DocumentMoniker": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Program.cs",
"RelativeDocumentMoniker": "app_datafono_difare\\Program.cs",
"ToolTip": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Program.cs",
"RelativeToolTip": "app_datafono_difare\\Program.cs",
"ViewState": "AgIAAAYAAAAAAAAAAAAAACAAAAApAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-25T16:20:27.39Z",
"EditorCaption": ""
},
{
"$type": "Document",
"DocumentIndex": 1,
"Title": "TransactionService.cs",
"DocumentMoniker": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Services\\TransactionService.cs",
"RelativeDocumentMoniker": "app_datafono_difare\\Services\\TransactionService.cs",
"ToolTip": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Services\\TransactionService.cs",
"RelativeToolTip": "app_datafono_difare\\Services\\TransactionService.cs",
"ViewState": "AgIAABMAAAAAAAAAAAAcwCIAAAApAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-26T19:26:54.107Z"
},
{
"$type": "Document",
"DocumentIndex": 2,
"Title": "ObtenerTipoTarjetaHelper.cs",
"DocumentMoniker": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Helpers\\ObtenerTipoTarjetaHelper.cs",
"RelativeDocumentMoniker": "app_datafono_difare\\Helpers\\ObtenerTipoTarjetaHelper.cs",
"ToolTip": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\Helpers\\ObtenerTipoTarjetaHelper.cs",
"RelativeToolTip": "app_datafono_difare\\Helpers\\ObtenerTipoTarjetaHelper.cs",
"ViewState": "AgIAAAUAAAAAAAAAAAAAAAkAAAADAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
"WhenOpened": "2025-11-27T15:55:25.195Z"
},
{
"$type": "Document",
"DocumentIndex": 3,
"Title": "appsettings.json",
"DocumentMoniker": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\appsettings.json",
"RelativeDocumentMoniker": "app_datafono_difare\\appsettings.json",
"ToolTip": "D:\\Discod\\SelfCheckout\\Proyecto DIFARE\\Integration_pinpad_difare\\Integration_pinpad_difare\\app_datafono_difare\\appsettings.json",
"RelativeToolTip": "app_datafono_difare\\appsettings.json",
"ViewState": "AgIAAAAAAAAAAAAAAAAAAAQAAAABAAAAAAAAAA==",
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
"WhenOpened": "2025-11-26T22:24:52.479Z"
}
]
}
]
}
]
}
\ No newline at end of file
......@@ -10,13 +10,16 @@ Global
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{686ACBEE-5419-40F7-A3E5-DDC60E451696}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{686ACBEE-5419-40F7-A3E5-DDC60E451696}.Debug|Any CPU.Build.0 = Debug|Any CPU
{686ACBEE-5419-40F7-A3E5-DDC60E451696}.Release|Any CPU.ActiveCfg = Release|Any CPU
{686ACBEE-5419-40F7-A3E5-DDC60E451696}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {AC17B00B-7470-4529-BDD9-C657E0B03A6A}
EndGlobalSection
EndGlobal
using app_datafono_difare.Services;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace app_datafono_difare.Controllers
{
[ApiController]
[Route("api/pinpad")]
public class PinpadController : ControllerBase
{
private readonly PinpadInitializer _init;
private readonly PinpadRestService _service;
public PinpadController(PinpadInitializer init, PinpadRestService service)
{
_init = init;
_service = service;
}
[HttpPost("init")]
public IActionResult Inicializar([FromBody] InitPinpadRequest req)
{
_init.Inicializar(req.Url, req.Estacion);
return Ok(new { message = "Pinpad inicializado" });
}
[HttpPost("venta")]
public async Task<IActionResult> Venta([FromBody] VentaRequest req)
{
var resp = await _service.AutorizarAsync(req.Amount, req.Cuotas);
return Ok(resp);
}
}
public class InitPinpadRequest
{
public string Url { get; set; }
public string Estacion { get; set; }
}
public class VentaRequest
{
public decimal Amount { get; set; }
public int Cuotas { get; set; }
}
}
......@@ -8,23 +8,46 @@ namespace app_datafono_difare.Entities
{
public class TransaccionResponse
{
public bool Success { get; set; }
public string AuthorizationCode { get; set; }
public string TransactionId { get; set; }
public string CardNumber { get; set; }
public string CardType { get; set; }
public string ResponseCode { get; set; }
public string ResponseMessage { get; set; }
public decimal Amount { get; set; }
//public bool Success { get; set; }
//public string AuthorizationCode { get; set; }
//public string TransactionId { get; set; }
//public string CardNumber { get; set; }
//public string CardType { get; set; }
//public string ResponseCode { get; set; }
//public string ResponseMessage { get; set; }
//public decimal Amount { get; set; }
//public DateTime Timestamp { get; set; }
//public string CommerceCode { get; set; }
//public string TerminalId { get; set; }
////Campos adicionales
//public string CodRed { get; set; }
//public string Metodo { get; set; }
//public string Lote { get; set; }
//public string Promocion { get; set; }
//public string codigoAdquiriente { get; set; }
//public string idAdquiriente { get; set; }
public bool ReturnFlag { get; set; } = false;
public bool DepositFlag { get; set; } = false;
public bool VoidFlag { get; set; } = false;
public decimal Amount { get; set; } = 0.00m;
public string LineItemType { get; set; } = "";
public bool BalanceDueSatisfied { get; set; } = false;
public string ReferenceNumber { get; set; } = "";
public string MaskedAccountNumber { get; set; } = "";
public string ResponseCode { get; set; } = "";
public string ApprovalCode { get; set; } = "";
public string SequenceNumber { get; set; } = "";
public decimal CashBackAmount { get; set; } = 0.00m;
public bool IsDeclined { get; set; } = false;
public string ResponseCodeDescriptor { get; set; } = "";
public DateTime Timestamp { get; set; }
public string CommerceCode { get; set; }
public string TerminalId { get; set; }
//Campos adicionales
public string CodRed { get; set; }
public string Metodo { get; set; }
public string RedCode { get; set; }
public string Lote { get; set; }
public string Promocion { get; set; }
public string codigoAdquiriente { get; set; }
public string Promotion { get; set; }
public string CodAdquiriente { get; set; }
public string idAdquiriente { get; set; }
public string CardBrand { get; set; }
}
}
......@@ -36,40 +36,6 @@ namespace app_datafono_difare.Helpers
}
return null;
//Manejo de bines
//if (string.IsNullOrWhiteSpace(cardNumber) || cardNumber.Length < 6)
// return null;
//string primeros6 = cardNumber.Substring(0, 6);
//string path = @"C:\RUTALOGPINPADADEFINIR\BINES.TXT";
//if (!File.Exists(path))
// return null;
//var lineas = File.ReadAllLines(path);
//foreach (var linea in lineas)
//{
// if (linea.Length < 18)
// continue; // línea inválida
// string binInicio = linea.Substring(0, 6);
// string binFin = linea.Substring(6, 6);
// string tipo = linea.Substring(linea.Length - 2); // Últimos 2 caracteres "TC" o "TD"
// // Convertir a número para comparar rangos
// if (int.TryParse(binInicio, out int inicio) &&
// int.TryParse(binFin, out int fin) &&
// int.TryParse(primeros6, out int bin))
// {
// if (bin >= inicio && bin <= fin)
// {
// return tipo; // Encontrado
// }
// }
//}
//return null; // No encontrado
}
}
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment