|
@@ -683,29 +683,28 @@ namespace LotteryWebApp.Areas.LotteryV2.Controllers
|
|
|
{
|
|
{
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
|
|
+ log.Info($"[ConfirmTicketData] START - Request: {JsonConvert.SerializeObject(request)}");
|
|
|
var token = HttpContext.Session.GetComplexData<string>("token");
|
|
var token = HttpContext.Session.GetComplexData<string>("token");
|
|
|
var msisdn = HttpContext.Session.GetComplexData<string>("msisdn");
|
|
var msisdn = HttpContext.Session.GetComplexData<string>("msisdn");
|
|
|
- if (string.IsNullOrEmpty(token)) return Json(new { responseCode = Code.SESSION_EXPIRED, responseMessage = "Session expired" });
|
|
|
|
|
|
|
+ if (string.IsNullOrEmpty(token))
|
|
|
|
|
+ {
|
|
|
|
|
+ log.Info("[ConfirmTicketData] Session expired");
|
|
|
|
|
+ return Json(new { responseCode = Code.SESSION_EXPIRED, responseMessage = "Session expired" });
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
request.token = token;
|
|
request.token = token;
|
|
|
request.msisdn = msisdn;
|
|
request.msisdn = msisdn;
|
|
|
request.language = CultureInfo.CurrentCulture.Name.StartsWith("en") ? "0" : "1";
|
|
request.language = CultureInfo.CurrentCulture.Name.StartsWith("en") ? "0" : "1";
|
|
|
request.requestId = Guid.NewGuid().ToString();
|
|
request.requestId = Guid.NewGuid().ToString();
|
|
|
|
|
|
|
|
- // DEBUG: Log request data
|
|
|
|
|
- var ticketDebug = request.ticket != null ? string.Join("; ", request.ticket.Select(t => $"code={t.code}, money={t.money}")) : "NULL";
|
|
|
|
|
- log.Info($"[ConfirmTicketData] gameId={request.gameId}, msisdn={request.msisdn}, tickets=[{ticketDebug}]");
|
|
|
|
|
-
|
|
|
|
|
ConfirmTicketDataResponse response = api.ConfirmTicketDataApi(configuration, request);
|
|
ConfirmTicketDataResponse response = api.ConfirmTicketDataApi(configuration, request);
|
|
|
-
|
|
|
|
|
- // DEBUG: Log response
|
|
|
|
|
- log.Info($"[ConfirmTicketData] Response: code={response.responseCode}, msg={response.responseMessage}, transId={response.transId}");
|
|
|
|
|
|
|
+ log.Info($"[ConfirmTicketData] Call ConfirmTicketDataApi Response: {JsonConvert.SerializeObject(response)}");
|
|
|
|
|
|
|
|
return Json(response);
|
|
return Json(response);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
|
- log.Error(ex);
|
|
|
|
|
|
|
+ log.Error("[ConfirmTicketData] EXCEPTION: ", ex);
|
|
|
return Json(new { responseCode = Code.ERROR, responseMessage = ex.Message });
|
|
return Json(new { responseCode = Code.ERROR, responseMessage = ex.Message });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -715,19 +714,25 @@ namespace LotteryWebApp.Areas.LotteryV2.Controllers
|
|
|
{
|
|
{
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
|
|
+ log.Info($"[ConfirmOTP] START - Request: {JsonConvert.SerializeObject(request)}");
|
|
|
var token = HttpContext.Session.GetComplexData<string>("token");
|
|
var token = HttpContext.Session.GetComplexData<string>("token");
|
|
|
var msisdn = HttpContext.Session.GetComplexData<string>("msisdn");
|
|
var msisdn = HttpContext.Session.GetComplexData<string>("msisdn");
|
|
|
- if (string.IsNullOrEmpty(token)) return Json(new { responseCode = Code.SESSION_EXPIRED, responseMessage = "Session expired" });
|
|
|
|
|
|
|
+ if (string.IsNullOrEmpty(token))
|
|
|
|
|
+ {
|
|
|
|
|
+ log.Info("[ConfirmOTP] Session expired");
|
|
|
|
|
+ return Json(new { responseCode = Code.SESSION_EXPIRED, responseMessage = "Session expired" });
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
request.token = token;
|
|
request.token = token;
|
|
|
request.msisdn = msisdn;
|
|
request.msisdn = msisdn;
|
|
|
|
|
|
|
|
ConfirmOTPResponse response = api.ConfirmOTPApi(configuration, request);
|
|
ConfirmOTPResponse response = api.ConfirmOTPApi(configuration, request);
|
|
|
|
|
+ log.Info($"[ConfirmOTP] Call ConfirmOTPApi Response: {JsonConvert.SerializeObject(response)}");
|
|
|
return Json(response);
|
|
return Json(response);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
|
- log.Error(ex);
|
|
|
|
|
|
|
+ log.Error("[ConfirmOTP] EXCEPTION: ", ex);
|
|
|
return Json(new { responseCode = Code.ERROR, responseMessage = ex.Message });
|
|
return Json(new { responseCode = Code.ERROR, responseMessage = ex.Message });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -737,9 +742,14 @@ namespace LotteryWebApp.Areas.LotteryV2.Controllers
|
|
|
{
|
|
{
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
|
|
+ log.Info("[SendOTP] START");
|
|
|
var token = HttpContext.Session.GetComplexData<string>("token");
|
|
var token = HttpContext.Session.GetComplexData<string>("token");
|
|
|
var msisdn = HttpContext.Session.GetComplexData<string>("msisdn");
|
|
var msisdn = HttpContext.Session.GetComplexData<string>("msisdn");
|
|
|
- if (string.IsNullOrEmpty(token)) return Json(new { responseCode = Code.SESSION_EXPIRED, responseMessage = "Session expired" });
|
|
|
|
|
|
|
+ if (string.IsNullOrEmpty(token))
|
|
|
|
|
+ {
|
|
|
|
|
+ log.Info("[SendOTP] Session expired");
|
|
|
|
|
+ return Json(new { responseCode = Code.SESSION_EXPIRED, responseMessage = "Session expired" });
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
SendOTPRequest request = new SendOTPRequest
|
|
SendOTPRequest request = new SendOTPRequest
|
|
|
{
|
|
{
|
|
@@ -748,13 +758,15 @@ namespace LotteryWebApp.Areas.LotteryV2.Controllers
|
|
|
language = CultureInfo.CurrentCulture.Name.StartsWith("en") ? "0" : "1",
|
|
language = CultureInfo.CurrentCulture.Name.StartsWith("en") ? "0" : "1",
|
|
|
channel = configuration.GetSection("channel").Value
|
|
channel = configuration.GetSection("channel").Value
|
|
|
};
|
|
};
|
|
|
|
|
+ log.Info($"[SendOTP] Call SendOTPApi Request: {JsonConvert.SerializeObject(request)}");
|
|
|
|
|
|
|
|
SendOTPResponse response = api.SendOTPApi(configuration, request);
|
|
SendOTPResponse response = api.SendOTPApi(configuration, request);
|
|
|
|
|
+ log.Info($"[SendOTP] Call SendOTPApi Response: {JsonConvert.SerializeObject(response)}");
|
|
|
return Json(response);
|
|
return Json(response);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
|
- log.Error(ex);
|
|
|
|
|
|
|
+ log.Error("[SendOTP] EXCEPTION: ", ex);
|
|
|
return Json(new { responseCode = Code.ERROR, responseMessage = ex.Message });
|
|
return Json(new { responseCode = Code.ERROR, responseMessage = ex.Message });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -764,9 +776,14 @@ namespace LotteryWebApp.Areas.LotteryV2.Controllers
|
|
|
{
|
|
{
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
|
|
+ log.Info($"[ConfirmBuyingTicketV2] START - Request: {JsonConvert.SerializeObject(request)}");
|
|
|
var token = HttpContext.Session.GetComplexData<string>("token");
|
|
var token = HttpContext.Session.GetComplexData<string>("token");
|
|
|
var msisdn = HttpContext.Session.GetComplexData<string>("msisdn");
|
|
var msisdn = HttpContext.Session.GetComplexData<string>("msisdn");
|
|
|
- if (string.IsNullOrEmpty(token)) return Json(new { responseCode = Code.SESSION_EXPIRED, responseMessage = "Session expired" });
|
|
|
|
|
|
|
+ if (string.IsNullOrEmpty(token))
|
|
|
|
|
+ {
|
|
|
|
|
+ log.Info("[ConfirmBuyingTicketV2] Session expired");
|
|
|
|
|
+ return Json(new { responseCode = Code.SESSION_EXPIRED, responseMessage = "Session expired" });
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
// Step 1: Verify OTP first
|
|
// Step 1: Verify OTP first
|
|
|
ConfirmOTPRequest otpRequest = new ConfirmOTPRequest
|
|
ConfirmOTPRequest otpRequest = new ConfirmOTPRequest
|
|
@@ -777,10 +794,14 @@ namespace LotteryWebApp.Areas.LotteryV2.Controllers
|
|
|
language = CultureInfo.CurrentCulture.Name.StartsWith("en") ? "0" : "1",
|
|
language = CultureInfo.CurrentCulture.Name.StartsWith("en") ? "0" : "1",
|
|
|
channel = configuration.GetSection("channel").Value
|
|
channel = configuration.GetSection("channel").Value
|
|
|
};
|
|
};
|
|
|
|
|
+ log.Info($"[ConfirmBuyingTicketV2] Call ConfirmOTPApi Request: {JsonConvert.SerializeObject(otpRequest)}");
|
|
|
|
|
+
|
|
|
ConfirmOTPResponse otpResponse = api.ConfirmOTPApi(configuration, otpRequest);
|
|
ConfirmOTPResponse otpResponse = api.ConfirmOTPApi(configuration, otpRequest);
|
|
|
|
|
+ log.Info($"[ConfirmBuyingTicketV2] Call ConfirmOTPApi Response: {JsonConvert.SerializeObject(otpResponse)}");
|
|
|
|
|
|
|
|
if (otpResponse.responseCode != Code.SUCCESS)
|
|
if (otpResponse.responseCode != Code.SUCCESS)
|
|
|
{
|
|
{
|
|
|
|
|
+ log.Info($"[ConfirmBuyingTicketV2] OTP Verification Failed: {otpResponse.responseMessage}");
|
|
|
return Json(new { responseCode = otpResponse.responseCode, responseMessage = otpResponse.responseMessage });
|
|
return Json(new { responseCode = otpResponse.responseCode, responseMessage = otpResponse.responseMessage });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -791,16 +812,23 @@ namespace LotteryWebApp.Areas.LotteryV2.Controllers
|
|
|
request.language = CultureInfo.CurrentCulture.Name.StartsWith("en") ? "0" : "1";
|
|
request.language = CultureInfo.CurrentCulture.Name.StartsWith("en") ? "0" : "1";
|
|
|
request.channel = configuration.GetSection("channel").Value;
|
|
request.channel = configuration.GetSection("channel").Value;
|
|
|
|
|
|
|
|
|
|
+ log.Info($"[ConfirmBuyingTicketV2] Call ConfirmBuyingTicketApi Request: {JsonConvert.SerializeObject(request)}");
|
|
|
|
|
+
|
|
|
ConfirmBuyingTicketResponse response = api.ConfirmBuyingTicketApi(configuration, request);
|
|
ConfirmBuyingTicketResponse response = api.ConfirmBuyingTicketApi(configuration, request);
|
|
|
|
|
+ log.Info($"[ConfirmBuyingTicketV2] Call ConfirmBuyingTicketApi Response: {JsonConvert.SerializeObject(response)}");
|
|
|
|
|
+
|
|
|
if (response.responseCode == Code.SUCCESS)
|
|
if (response.responseCode == Code.SUCCESS)
|
|
|
{
|
|
{
|
|
|
|
|
+ log.Info($"[ConfirmBuyingTicketV2] Payment Success. Updating user status for {msisdn}");
|
|
|
UpdateUserStatus(msisdn, token);
|
|
UpdateUserStatus(msisdn, token);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ log.Info($"[ConfirmBuyingTicketV2] END - Result: {JsonConvert.SerializeObject(response)}");
|
|
|
return Json(response);
|
|
return Json(response);
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
|
- log.Error(ex);
|
|
|
|
|
|
|
+ log.Error("[ConfirmBuyingTicketV2] EXCEPTION: ", ex);
|
|
|
return Json(new { responseCode = Code.ERROR, responseMessage = ex.Message });
|
|
return Json(new { responseCode = Code.ERROR, responseMessage = ex.Message });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -993,16 +1021,22 @@ namespace LotteryWebApp.Areas.LotteryV2.Controllers
|
|
|
{
|
|
{
|
|
|
try
|
|
try
|
|
|
{
|
|
{
|
|
|
|
|
+ log.Info($"[UpdateUserStatus] START - msisdn: {msisdn}");
|
|
|
UserStatusRequest userStatusRequest = new UserStatusRequest { users = msisdn, token = token };
|
|
UserStatusRequest userStatusRequest = new UserStatusRequest { users = msisdn, token = token };
|
|
|
|
|
+ log.Info($"[UpdateUserStatus] Call GetUserStatusApi Request: {JsonConvert.SerializeObject(userStatusRequest)}");
|
|
|
|
|
+
|
|
|
UserStatus userStatusGet = api.GetUserStatusApi(configuration, userStatusRequest);
|
|
UserStatus userStatusGet = api.GetUserStatusApi(configuration, userStatusRequest);
|
|
|
|
|
+ log.Info($"[UpdateUserStatus] Call GetUserStatusApi Response: {JsonConvert.SerializeObject(userStatusGet)}");
|
|
|
|
|
+
|
|
|
if (userStatusGet != null)
|
|
if (userStatusGet != null)
|
|
|
{
|
|
{
|
|
|
HttpContext.Session.SetComplexData("userStatus", userStatusGet);
|
|
HttpContext.Session.SetComplexData("userStatus", userStatusGet);
|
|
|
}
|
|
}
|
|
|
|
|
+ log.Info("[UpdateUserStatus] END");
|
|
|
}
|
|
}
|
|
|
catch (Exception ex)
|
|
catch (Exception ex)
|
|
|
{
|
|
{
|
|
|
- log.Error("UpdateUserStatus Error: " + ex.Message);
|
|
|
|
|
|
|
+ log.Error("[UpdateUserStatus] EXCEPTION: ", ex);
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|