1903 lines
107 KiB
C#
1903 lines
107 KiB
C#
/*
|
|
|
|
//#20180413 웰컴카드 신규기능 추가 start,phj
|
|
//#20180413 웰컴카드 신규기능 추가 end,phj
|
|
|
|
*/
|
|
|
|
using System;
|
|
using System.Collections;
|
|
using Cosmos.UserFrame;
|
|
using Cosmos.ServiceProvider;
|
|
using Cosmos.Common;
|
|
using Cosmos.CommonManager;
|
|
using System.Text;
|
|
using System.Runtime.InteropServices;
|
|
using System.IO;
|
|
using System.Data.OleDb;
|
|
using System.Data;
|
|
using System.Xml;
|
|
using ADODB;
|
|
using System.Reflection;
|
|
using PosDBApi;
|
|
using Cosmos.BaseFrame;
|
|
using Newtonsoft.Json;
|
|
|
|
|
|
/*-----------------------------------------------------------------------------------------------*/
|
|
// 설 명 : 웰컴카드 발급/할인 함수모음
|
|
/*-----------------------------------------------------------------------------------------------*/
|
|
namespace Cosmos.Service
|
|
{
|
|
class WelcomCard : PaymentBase, IPaymentUs, IWelcomeCard
|
|
//class WelcomCard : PaymentBase, IWelcomeCard
|
|
{
|
|
#region 생산자
|
|
private IPaymentExpUs m_cHappyPoint = null;
|
|
private IDatabaseSQL m_cSqlDbService = null;
|
|
|
|
/// <summary>
|
|
/// 현재 등록중인 결제 정보
|
|
/// </summary>
|
|
public WelcomCard()
|
|
{
|
|
m_cPosStatus = (PosStatus)StateObject.POS; // POS 기본정보
|
|
m_cTrnStatus = (TranStatus)StateObject.TRAN; // POS 거래정보
|
|
//m_cDevStatus = (DeviceStatus)StateObject.TRAN; // 디바이스 관리
|
|
m_cHappyPoint = (IPaymentExpUs)sManager.InitServiceInstance(ServiceLists.BSV_PAYMENT.DLL, ServiceLists.BSV_PAYMENT.POINTHAPPYPOINT);
|
|
m_cSqlDbService = (IDatabaseSQL)sManager.InitServiceInstance(ServiceLists.AGENT_DATABASE.DLL, ServiceLists.AGENT_DATABASE.DATABASE_MSSQL);
|
|
}
|
|
#endregion
|
|
|
|
#region 결제 등록
|
|
/// <summary>
|
|
/// 결제 등록
|
|
/// </summary>
|
|
public string SetPayment(string[] aParam)
|
|
{
|
|
return "";
|
|
}
|
|
#endregion
|
|
|
|
#region 결제 조회
|
|
/// <summary>
|
|
/// 결제 조회
|
|
/// </summary>
|
|
public string SearchPayment(string[] aParam, ref string[] aRet)
|
|
{
|
|
return "";
|
|
}
|
|
#endregion
|
|
|
|
#region 결제 정보 획득
|
|
/// <summary>
|
|
/// 결제 정보 획득
|
|
/// </summary>
|
|
public object GetPayment(string[] aParam)
|
|
{
|
|
return "";
|
|
}
|
|
#endregion
|
|
|
|
#region 결제 취소
|
|
/// <summary>
|
|
/// 결제 취소
|
|
/// </summary>
|
|
public string CancelPayment(string[] aParam)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return sRet;
|
|
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return sRet;
|
|
|
|
double sTarget_Amt = 0;
|
|
string sInPutData = string.Empty;
|
|
string sInPutType = string.Empty;
|
|
string sTelecom = string.Empty;
|
|
string sCard_No = string.Empty;
|
|
string sHP_WccNo = string.Empty;
|
|
string sHP_CustNo = string.Empty;
|
|
string sCard_type = string.Empty;
|
|
string sYYYYMMDD = string.Empty;
|
|
string sHHmmss = string.Empty;
|
|
string sApprNo = string.Empty;
|
|
|
|
try
|
|
{
|
|
int nPayRow = CmUtil.IntParse(aParam[0]); // 취소할 행번호
|
|
|
|
// 결제 내역 받아 오기
|
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|
m_cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[nPayRow];
|
|
|
|
sInPutData = m_cPayItem.OCCUR_ENTRY_19; // 입력 데이터
|
|
sInPutType = m_cPayItem.OCCUR_ENTRY_05; // 입력구분
|
|
sTelecom = ""; //통신사구분
|
|
sCard_No = m_cPayItem.OCCUR_ENTRY_01; //카드번호
|
|
sHP_WccNo = m_cPayItem.OCCUR_ENTRY_01; //HPC - 웰컴카드번호
|
|
sTarget_Amt = m_cPayItem.AMT_ENTRY_10; //대상금액
|
|
sHP_CustNo = m_cPayItem.OCCUR_ENTRY_22; //HPC - 회원번호
|
|
sCard_type = m_cPayItem.OCCUR_ENTRY_23; //실물카드 또는 해피앱 구분
|
|
sYYYYMMDD = m_cPayItem.OCCUR_ENTRY_03; //거래일자(YYYYMMDD)
|
|
sHHmmss = m_cPayItem.OCCUR_ENTRY_04; //거래시간(HHMMSS)
|
|
sApprNo = m_cPayItem.OCCUR_ENTRY_02; //승인번호
|
|
|
|
// 전문통신!!!
|
|
string[] saRecvdData = null;
|
|
sRet = WelcomeCard_SendDataMake(PosConst.CANCEL_DIV.NORMAL,
|
|
new string[] {PosConst.WELCOMECARD_TYPE.DC_CANCEL, //웰컴타입
|
|
sInPutData, //카드번호
|
|
sInPutType, //입력구분
|
|
sHP_CustNo, //HPC - 회원번호
|
|
sHP_WccNo, //HPC - 웰컴카드번호
|
|
sCard_type, //웰컴카드 C:실물카드, A:해피App
|
|
sTelecom, //통신사구분
|
|
sTarget_Amt.ToString(), //할인대상금액
|
|
sYYYYMMDD, //거래일자(YYYYMMDD)
|
|
sHHmmss, //거래시간(HHMMSS)
|
|
sApprNo}, //승인번호
|
|
ref saRecvdData);
|
|
|
|
if (sRet != UserCom.RST_OK) return sRet;
|
|
|
|
if (m_cPayItem.PAY_DTL_CD_05 == PosConst.PAY_DC_TYPE.DC)
|
|
{
|
|
ClearPluDiscountAmount(m_cPayItem.PAY_WAY_CD + m_cPayItem.PAY_DTL_CD_01, ""); // 할인금액 삭제
|
|
}
|
|
|
|
m_cPayItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|
m_cDataService.UpdatePluAmount(); // 상품 합계금액 계산(거래해더)
|
|
m_cDataService.UpdatePayAmount(); // 결제 금액 재 계산 처리
|
|
|
|
// 여전법 대응 ///////////////////////////////////////////////////////////////////
|
|
CmUtil.ZeroFillClear(ref m_cPayItem.CanFiller1);
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
sRet = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
|
|
return sRet;
|
|
}
|
|
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 결제 반품(자동반품)
|
|
/// <summary>
|
|
/// 결제 반품(자동반품)
|
|
/// </summary>
|
|
public string RefundPayment(string[] aParam)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
double sTarget_Amt = 0;
|
|
string sInPutData = string.Empty;
|
|
string sInPutType = string.Empty;
|
|
string sTelecom = string.Empty;
|
|
string sCard_No = string.Empty;
|
|
string sHP_WccNo = string.Empty;
|
|
string sHP_CustNo = string.Empty;
|
|
string sCard_type = string.Empty;
|
|
string sYYYYMMDD = string.Empty;
|
|
string sHHmmss = string.Empty;
|
|
string sApprNo = string.Empty;
|
|
|
|
try
|
|
{
|
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.REFUND) return sRet;
|
|
|
|
int nPayRow = CmUtil.IntParse(aParam[0]); // 취소할 행번호
|
|
|
|
// 결제 내역 받아 오기
|
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM);
|
|
m_cPayItem = (Column.TR_PAYMENT.DATA)alPayItem[nPayRow];
|
|
|
|
sInPutData = m_cPayItem.OCCUR_ENTRY_19;
|
|
sInPutType = m_cPayItem.OCCUR_ENTRY_05; // 입력구분
|
|
sTelecom = ""; //통신사구분
|
|
sCard_No = m_cPayItem.OCCUR_ENTRY_01; //카드번호
|
|
sHP_WccNo = m_cPayItem.OCCUR_ENTRY_01; //HPC - 웰컴카드번호
|
|
sTarget_Amt = m_cPayItem.AMT_ENTRY_10; //대상금액
|
|
sHP_CustNo = m_cPayItem.OCCUR_ENTRY_22; //HPC - 회원번호
|
|
sCard_type = m_cPayItem.OCCUR_ENTRY_23; //실물카드 또는 해피앱 구분
|
|
sYYYYMMDD = m_cPayItem.OCCUR_ENTRY_03; //거래일자(YYYYMMDD)
|
|
sHHmmss = m_cPayItem.OCCUR_ENTRY_04; //거래시간(HHMMSS)
|
|
sApprNo = m_cPayItem.OCCUR_ENTRY_02; //승인번호
|
|
|
|
// 전문통신!!!
|
|
string[] saRecvdData = null;
|
|
sRet = WelcomeCard_SendDataMake(PosConst.CANCEL_DIV.CANCEL,
|
|
new string[] {PosConst.WELCOMECARD_TYPE.DC_CANCEL, //웰컴타입
|
|
sInPutData, //카드번호
|
|
sInPutType, //입력구분
|
|
sHP_CustNo, //HPC - 회원번호
|
|
sHP_WccNo, //HPC - 웰컴카드번호
|
|
sCard_type, //웰컴카드 C:실물카드, A:해피App
|
|
sTelecom, //통신사구분
|
|
sTarget_Amt.ToString(), //할인대상금액
|
|
sYYYYMMDD, //거래일자(YYYYMMDD)
|
|
sHHmmss, //거래시간(HHMMSS)
|
|
sApprNo}, //승인번호
|
|
ref saRecvdData);
|
|
|
|
|
|
if (sRet != UserCom.RST_OK) return sRet;
|
|
|
|
//if (m_cPayItem.PAY_DTL_CD_05 == PosConst.PAY_DC_TYPE.DC)
|
|
//{
|
|
// ClearPluDiscountAmount(m_cPayItem.PAY_WAY_CD + m_cPayItem.PAY_DTL_CD_01, ""); // 할인금액 삭제
|
|
//}
|
|
|
|
//m_cPayItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|
|
|
//m_cDataService.UpdatePluAmount(); // 상품 합계금액 계산(거래해더)
|
|
//m_cDataService.UpdatePayAmount(); // 결제 금액 재 계산 처리
|
|
|
|
// 여전법 대응 ///////////////////////////////////////////////////////////////////
|
|
CmUtil.ZeroFillClear(ref m_cPayItem.CanFiller1);
|
|
//////////////////////////////////////////////////////////////////////////////////
|
|
|
|
sRet = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
|
|
return sRet;
|
|
}
|
|
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 웰컴카드 할인등록
|
|
|
|
/// <summary>
|
|
/// 웰컴카드 할인등록
|
|
/// </summary>
|
|
public string SetWccDCPayment(string[] sParam, ref string[] sRevParam)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return sRet;
|
|
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return sRet;
|
|
|
|
//적용 시 주석해제
|
|
//string sVanCD = "";
|
|
//sVanCD = GetPayDtlCdToVanCode(ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD);
|
|
//if (sVanCD == "")
|
|
//{
|
|
// WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0563);
|
|
// return UserCom.RST_ERR;
|
|
//}
|
|
|
|
string sWccType = sParam.Length >= 1 ? sParam[0] : ""; //웰컴타입
|
|
string sInputCardNo = sParam.Length >= 2 ? sParam[1] : ""; //카드번호
|
|
string sInputType = sParam.Length >= 3 ? sParam[2] : ""; //카드입력구분
|
|
string sInputHPCustNo = sParam.Length >= 4 ? sParam[3] : ""; //HPC - 회원번호
|
|
string sInputHPWccNo = sParam.Length >= 5 ? sParam[4] : ""; //HPC - 웰컴카드번호
|
|
string sInputCardtype = sParam.Length >= 6 ? sParam[5] : ""; //웰컴카드 C:실물카드, A:해피App
|
|
string sInputTelecom = sParam.Length >= 7 ? sParam[6] : ""; //통신사구분
|
|
string sTargetAmt = sParam.Length >= 8 ? sParam[7] : ""; // 할인대상금액
|
|
string sYYYYMMDD = sParam.Length >= 9 ? sParam[8] : ""; //거래일자(YYYYMMDD)
|
|
string sHHmmss = sParam.Length >= 10 ? sParam[9] : ""; //거래시간(HHMMSS)
|
|
string sApprNo = sParam.Length >= 11 ? sParam[10] : ""; //승인번호
|
|
|
|
try
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_SendDataMake] " +
|
|
" sInputCardNo :" + sInputCardNo + "," +
|
|
" sInputType :" + sInputType + "," +
|
|
" sInputHPCustNo :" + sInputHPCustNo + "," +
|
|
" sInputHPWccNo :" + sInputHPWccNo + "," +
|
|
" sInputCardtype :" + sInputCardtype + "," +
|
|
" sInputTelecom :" + sInputTelecom + "," +
|
|
" sTargetAmt :" + sTargetAmt + "," +
|
|
" sYYYYMMDD :" + sYYYYMMDD + "," +
|
|
" sHHmmss :" + sHHmmss + "," +
|
|
" sApprNo :" + sApprNo
|
|
);
|
|
|
|
|
|
m_cPayItem = new Column.TR_PAYMENT.DATA(); // 결과 저장 변수 생성
|
|
m_cPayItem.PAY_WAY_CD = GetMenuKeyToPayWayCd(PosKey.MENU_KEY.WELCOMECARD_DC);
|
|
m_cPayItem.PAY_DTL_CD_01 = GetMenuKeyToPayDtlCd(PosKey.MENU_KEY.WELCOMECARD_DC);
|
|
|
|
// 전문통신!!!
|
|
sRet = WelcomeCard_SendDataMake(PosConst.CANCEL_DIV.NORMAL,
|
|
new string[] { sWccType,
|
|
sInputCardNo,
|
|
sInputType,
|
|
sInputHPCustNo,
|
|
sInputHPWccNo,
|
|
sInputCardtype,
|
|
"",
|
|
sTargetAmt,
|
|
sYYYYMMDD,
|
|
sHHmmss,
|
|
sApprNo },
|
|
ref sRevParam);
|
|
|
|
if (sRet != UserCom.RST_OK) { return sRet; }
|
|
|
|
// 결제 아이템 추가
|
|
ArrayList alPayItem = (ArrayList)StateObject.GetItemObject(Column.TR_PAYMENT.ITEM); // 결제 내역 받아 오기
|
|
m_cPayItem.SEQ = alPayItem.Count + 1;
|
|
alPayItem.Add(m_cPayItem);
|
|
|
|
if (m_cPayItem.PAY_DTL_CD_05 == PosConst.PAY_DC_TYPE.DC)
|
|
{
|
|
// 상품아이템에 할인금액 설정
|
|
SetPluDiscountAmount(-1, m_cPayItem.PAY_WAY_CD + m_cPayItem.PAY_DTL_CD_01, "", m_cPayItem.PAY_AMT);
|
|
}
|
|
|
|
m_cPayItem.CANCEL_DIV = PosConst.CANCEL_DIV.NORMAL;
|
|
|
|
m_cDataService.UpdatePluAmount(); // 상품 합계금액 계산(거래해더)
|
|
m_cDataService.UpdatePayAmount(); // 결제 금액 재 계산 처리
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
ex.Message);
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 결제 수기 등록(임의등록)
|
|
/// <summary>
|
|
/// 결제 수기 등록(임의등록)
|
|
/// </summary>
|
|
public string SetMenualPayment(string[] aParam)
|
|
{
|
|
return "";
|
|
}
|
|
#endregion
|
|
|
|
#region 해피앱 고객등록 대상자인지 체크
|
|
public bool ClientRegisterCheck(string sType, string[] aParam, ref string sHP_CustNumer, ref string sHP_WelcomeCard)
|
|
{
|
|
// 해피포인트 고객유무
|
|
bool bRet = false;
|
|
|
|
try
|
|
{
|
|
string HP_CustNumer = "";
|
|
string HP_WelcomeCard = "";
|
|
string[] saRecvdData = null;
|
|
|
|
// 해피포인트 조회 건 체크.
|
|
if (sType == PosConst.WELCOMECARD_MSG.HP_SEARCH_DATA)
|
|
{
|
|
Column.TR_ETC.DATA cEtcItem = null;
|
|
cEtcItem = new Column.TR_ETC.DATA();
|
|
cEtcItem = (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { });
|
|
|
|
if (cEtcItem == null) return false;
|
|
|
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) return false;
|
|
if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM || cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) return false;
|
|
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") return false; //해피앱여부 20180628 체크안하도록수정
|
|
if (cEtcItem.OCCUR_ENTRY_10 == "") return false; //HCP회원번호
|
|
|
|
// HCP고객번호
|
|
HP_CustNumer = CmUtil.MidH(cEtcItem.OCCUR_ENTRY_10, 0, 10).Trim();
|
|
|
|
|
|
//// 웰컴카드번호
|
|
//int nNowPos = 0;
|
|
//string[] aIrtRsp = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length];
|
|
//ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, Encoding.Default.GetBytes(cEtcItem.HP_ADD_INFO_SCH), ref nNowPos, ref aIrtRsp);
|
|
//HP_WelcomeCard = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointRESERVED]; //HPC -WELCOME CARD 추후 적립받으면 적용할 것
|
|
//if (HP_WelcomeCard != "") { HP_WelcomeCard = CmUtil.MidH(HP_WelcomeCard, 0, 50).Trim(); }
|
|
|
|
// 웰컴카드번호
|
|
HP_WelcomeCard = cEtcItem.OCCUR_ENTRY_19;
|
|
|
|
|
|
bRet = true;
|
|
}
|
|
// 해피포인트 등록 건 있는지 체크.
|
|
else if (sType == PosConst.WELCOMECARD_MSG.HP_REGISTER_DATA)
|
|
{
|
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|
{
|
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|
if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM || cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) continue;
|
|
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") continue; //해피앱여부 20180628 체크안하도록수정
|
|
if (cEtcItem.OCCUR_ENTRY_10 == "") continue; //HCP회원번호
|
|
|
|
// HCP고객번호
|
|
HP_CustNumer = CmUtil.MidH(cEtcItem.OCCUR_ENTRY_10, 0, 10).Trim();
|
|
|
|
|
|
//// 웰컴카드번호
|
|
//int nNowPos = 0;
|
|
//string[] aIrtRsp = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length];
|
|
//ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, Encoding.Default.GetBytes(cEtcItem.HP_ADD_INFO_SCH), ref nNowPos, ref aIrtRsp);
|
|
//HP_WelcomeCard = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointRESERVED]; //HPC -WELCOME CARD 추후 적립받으면 적용할 것
|
|
//if (HP_WelcomeCard != "") { HP_WelcomeCard = CmUtil.MidH(HP_WelcomeCard, 0, 50).Trim(); }
|
|
|
|
// 웰컴카드번호
|
|
HP_WelcomeCard = cEtcItem.OCCUR_ENTRY_19;
|
|
|
|
|
|
bRet = true;
|
|
break;
|
|
}
|
|
}
|
|
// 현재 해피포인트 조회 건 있는지 체크.
|
|
else if (sType == PosConst.WELCOMECARD_MSG.HP_SEARCH)
|
|
{
|
|
// 해피포인트 자동 조회
|
|
if (aParam == null) return false;
|
|
if (aParam.Length <= 0) return false;
|
|
|
|
string sPutType = aParam.Length >= 1 ? aParam[0] : "";
|
|
string sMaskData = aParam.Length >= 2 ? aParam[1] : "";
|
|
string sEncData = aParam.Length >= 3 ? aParam[2] : "";
|
|
string sMsgYN = aParam.Length >= 4 ? aParam[3] : "";
|
|
string sServiceCode = aParam.Length >= 5 ? aParam[4] : "";
|
|
string sInPutData = aParam.Length >= 6 ? aParam[5] : "";
|
|
|
|
//-------------------------------------------------------------------------------------------------------------------------
|
|
// 해피포인트 조회전문 날림
|
|
//-------------------------------------------------------------------------------------------------------------------------
|
|
string sRet = "";
|
|
sRet = m_cHappyPoint.SearchPayment(new string[] { sPutType, sMaskData, sEncData, sMsgYN, "", sInPutData }, ref saRecvdData);
|
|
if (sRet != UserCom.RST_OK) return false;
|
|
|
|
//-------------------------------------------------------------------------------------------------------------------------
|
|
// 조회 데이터 획득
|
|
//-------------------------------------------------------------------------------------------------------------------------
|
|
Column.TR_ETC.DATA cEtcItem = null;
|
|
cEtcItem = new Column.TR_ETC.DATA();
|
|
cEtcItem = (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { });
|
|
|
|
if (cEtcItem == null) return false;
|
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) return false;
|
|
if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM || cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) return false;
|
|
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") return false; //해피앱여부
|
|
//if (cEtcItem.OCCUR_ENTRY_10 == "") return false; //HCP회원번호
|
|
|
|
// HCP고객번호
|
|
HP_CustNumer = CmUtil.MidH(cEtcItem.OCCUR_ENTRY_10, 0, 10).Trim();
|
|
|
|
//// 웰컴카드번호
|
|
//int nNowPos = 0;
|
|
//string[] aIrtRsp = new string[Column.POINT_ADD_INFO_SEARCH.LEN.Length];
|
|
//ItemColumn.ParseMessage(Column.POINT_ADD_INFO_SEARCH.LEN, Column.POINT_ADD_INFO_SEARCH.TYPE, Encoding.Default.GetBytes(cEtcItem.HP_ADD_INFO_SCH), ref nNowPos, ref aIrtRsp);
|
|
//HP_WelcomeCard = aIrtRsp[Column.POINT_ADD_INFO_SEARCH.SEQ.pointRESERVED]; //HPC -WELCOME CARD 추후 적립받으면 적용할 것
|
|
//if (HP_WelcomeCard != "") { HP_WelcomeCard = CmUtil.MidH(HP_WelcomeCard, 0, 50).Trim(); }
|
|
|
|
// 웰컴카드번호
|
|
HP_WelcomeCard = cEtcItem.OCCUR_ENTRY_19;
|
|
|
|
|
|
bRet = true;
|
|
}
|
|
|
|
sHP_CustNumer = HP_CustNumer; //HPC 조회응답 - 회원번호
|
|
sHP_WelcomeCard = HP_WelcomeCard; //HPC 조회응답 - 컴카드번호
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
ex.Message);
|
|
|
|
bRet = false;
|
|
}
|
|
|
|
return bRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 웰컴카드 빈체크
|
|
public string WelcomeCard_PrefixCheck(string pCardNo)
|
|
{
|
|
string sRet = "";
|
|
string sQuery = "";
|
|
string sCardNo = "";
|
|
string sCardKind = "";
|
|
|
|
try
|
|
{
|
|
//#17515 PB 중산마을 - 유플러스 결합카드 통신사 자동선택안되는 현상 start
|
|
if (PosMstManager.GetPosOption(POS_OPTION.OPT516) != "1") return sRet;
|
|
//#17515 PB 중산마을 - 유플러스 결합카드 통신사 자동선택안되는 현상 end
|
|
|
|
|
|
sCardNo = pCardNo;
|
|
if (sCardNo == "") return sRet;
|
|
|
|
sQuery = " SELECT * ";
|
|
sQuery += " FROM POSMST.dbo.MST_CARD_PREFIX WITH(NOLOCK) ";
|
|
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
|
|
sQuery += " AND '" + sCardNo.Substring(0, 6) + "' LIKE REPLACE(PRFX_CD, 'X', '') + '%'";
|
|
sQuery += " AND USE_YN = '" + PosConst.MST_USE_YN.YES + "'";
|
|
|
|
IMasterUs cMstService = (IMasterUs)sManager.InitServiceInstance(ServiceLists.ASV_MASTER.DLL, ServiceLists.ASV_MASTER.POS_MASTER);
|
|
DataTable dtCardInfo = cMstService.Select(new string[] { sQuery });
|
|
|
|
if (dtCardInfo != null && dtCardInfo.Rows.Count > 0)
|
|
{
|
|
foreach (DataRow dr in dtCardInfo.Rows)
|
|
{
|
|
if (CmUtil.GetDataRowStr(dr, PosMst.MST_CARD_PREFIX.DATA.CARD_DIV) == "C") continue;
|
|
sCardKind = CmUtil.GetDataRowStr(dr, PosMst.MST_CARD_PREFIX.DATA.CARD_DIV);
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (sCardKind == "H") sCardKind = "A";
|
|
if (sCardKind == "W") sCardKind = "C";
|
|
|
|
sRet = sCardKind;
|
|
|
|
return sRet;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
|
|
return sRet;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 웰컴카드 전문조립
|
|
|
|
public string WelcomeCard_SendDataMake(string sTradeDiv, string[] sParam, ref string[] sRevParam)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
string sWccType = sParam.Length >= 1 ? sParam[0] : ""; //웰컴타입
|
|
string sInputCardNo = sParam.Length >= 2 ? sParam[1] : ""; //카드번호
|
|
string sInputType = sParam.Length >= 3 ? sParam[2] : ""; //카드입력구분
|
|
string sInputHPCustNo = sParam.Length >= 4 ? sParam[3] : ""; //HPC - 회원번호
|
|
string sInputHPWccNo = sParam.Length >= 5 ? sParam[4] : ""; //HPC - 웰컴카드번호
|
|
string sInputCardtype = sParam.Length >= 6 ? sParam[5] : ""; //웰컴카드 C:실물카드, A:해피App
|
|
string sInputTelecom = sParam.Length >= 7 ? sParam[6] : ""; //통신사구분
|
|
string sTargetAmt = sParam.Length >= 8 ? sParam[7] : ""; // 할인대상금액
|
|
string sYYYYMMDD = sParam.Length >= 9 ? sParam[8] : ""; //거래일자(YYYYMMDD)
|
|
string sHHmmss = sParam.Length >= 10 ? sParam[9] : ""; //거래시간(HHMMSS)
|
|
string sApprNo = sParam.Length >= 11 ? sParam[10] : ""; //승인번호
|
|
string sReadingHPData = sParam.Length >= 12 ? sParam[11] : ""; //
|
|
|
|
string[] saSendData = null;//보내는
|
|
string[] saRecvdData = null;//받은
|
|
|
|
try
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_SendDataMake] " +
|
|
" sTradeDiv :" + sTradeDiv + "," +
|
|
" sWccType :" + sWccType + "," +
|
|
" sInputHPCustNo :" + sInputHPCustNo + "," +
|
|
" sInputHPWccNo :" + sInputHPWccNo + "," +
|
|
" sInputCardtype :" + sInputCardtype + "," +
|
|
" sInputTelecom :" + sInputTelecom + "," +
|
|
" sTargetAmt :" + sTargetAmt + "," +
|
|
" sYYYYMMDD :" + sYYYYMMDD + "," +
|
|
" sHHmmss :" + sHHmmss + "," +
|
|
" sApprNo :" + sApprNo + "," +
|
|
" sReadingHPData :" + sReadingHPData
|
|
);
|
|
|
|
if (sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_SEARCH || sWccType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER || sWccType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER_CANCEL)
|
|
{
|
|
#region 웰컴카드 조회/ 웰컴고객등록
|
|
|
|
if (sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_SEARCH)
|
|
{
|
|
saRecvdData = new string[Column.WELCOMECARD_SEARCH_RECV.LEN.Length];
|
|
saSendData = new string[Column.WELCOMECARD_SEARCH.LEN.Length];
|
|
for (int i = 0; i < saRecvdData.Length; i++) { saRecvdData[i] = ""; }
|
|
for (int i = 0; i < saSendData.Length; i++) { saSendData[i] = ""; }
|
|
saSendData[0] = "0"; //전체 전문길이
|
|
saSendData[1] = "MC"; //구분
|
|
saSendData[2] = "0100"; //전문유형
|
|
saSendData[3] = "10"; //업무구분
|
|
saSendData[4] = "V100"; //전문버전
|
|
}
|
|
else if (sWccType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER)
|
|
{
|
|
saRecvdData = new string[Column.WELCOMECARD_SERVER_REGISTER_RECV.LEN.Length];
|
|
saSendData = new string[Column.WELCOMECARD_SERVER_REGISTER.LEN.Length];
|
|
for (int i = 0; i < saRecvdData.Length; i++) { saRecvdData[i] = ""; }
|
|
for (int i = 0; i < saSendData.Length; i++) { saSendData[i] = ""; }
|
|
saSendData[0] = "0"; //전체 전문길이
|
|
saSendData[1] = "MC"; //구분
|
|
saSendData[2] = "2300"; //전문유형
|
|
saSendData[3] = "40"; //업무구분
|
|
saSendData[4] = "V100"; //전문버전
|
|
}
|
|
else if (sWccType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER_CANCEL)
|
|
{
|
|
saRecvdData = new string[Column.WELCOMECARD_SERVER_REGISTER_RECV.LEN.Length];
|
|
saSendData = new string[Column.WELCOMECARD_SERVER_REGISTER.LEN.Length];
|
|
for (int i = 0; i < saRecvdData.Length; i++) { saRecvdData[i] = ""; }
|
|
for (int i = 0; i < saSendData.Length; i++) { saSendData[i] = ""; }
|
|
saSendData[0] = "0"; //전체 전문길이
|
|
saSendData[1] = "MC"; //구분
|
|
saSendData[2] = "2400"; //전문유형
|
|
saSendData[3] = "40"; //업무구분
|
|
saSendData[4] = "V100"; //전문버전
|
|
}
|
|
|
|
saSendData[5] = sYYYYMMDD; //거래일자
|
|
saSendData[6] = sHHmmss; //거래시간
|
|
saSendData[7] = sApprNo; //승인번호
|
|
saSendData[8] = ""; //응답코드
|
|
saSendData[9] = sInputCardNo; //welcome카드번호
|
|
saSendData[10] = sInputHPCustNo; //HPC고객번호
|
|
saSendData[11] = m_cPosStatus.Base.SaleDate; //영업일자
|
|
saSendData[12] = m_cPosStatus.Base.StoreNo; //점포코드
|
|
saSendData[13] = m_cPosStatus.Base.PosNo; //POS번호
|
|
saSendData[14] = m_cPosStatus.Base.TradeNo; //BILL번호
|
|
saSendData[15] = ""; //Filler
|
|
|
|
#endregion
|
|
|
|
// 전문통신!!!
|
|
sRet = WelcomeCard_Approval(sTradeDiv, sWccType, sInputType, saSendData, ref saRecvdData);
|
|
}
|
|
else if (sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER || sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_CANCEL)
|
|
{
|
|
#region 발급/ 발급취소
|
|
|
|
saRecvdData = new string[Column.WELCOMECARD_ISSUE_RECV.LEN.Length];
|
|
saSendData = new string[Column.WELCOMECARD_ISSUE.LEN.Length];
|
|
for (int i = 0; i < saRecvdData.Length; i++) { saRecvdData[i] = ""; }
|
|
for (int i = 0; i < saSendData.Length; i++) { saSendData[i] = ""; }
|
|
|
|
// 웰컴카드 발급
|
|
if (sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER)
|
|
{
|
|
saSendData[0] = "0"; //전체 전문길이
|
|
saSendData[1] = "MC"; //구분
|
|
saSendData[2] = "2100"; //전문유형
|
|
saSendData[3] = "50"; //업무구분
|
|
saSendData[4] = "V100"; //전문버전
|
|
}
|
|
// 웰컴카드 발급취소
|
|
else if (sWccType == PosConst.WELCOMECARD_TYPE.ISSUE_CANCEL)
|
|
{
|
|
saSendData[0] = "0"; //전체 전문길이
|
|
saSendData[1] = "MC"; //구분
|
|
saSendData[2] = "2200"; //전문유형
|
|
saSendData[3] = "50"; //업무구분
|
|
saSendData[4] = "V100"; //전문버전
|
|
}
|
|
|
|
saSendData[5] = sYYYYMMDD; //거래일자
|
|
saSendData[6] = sHHmmss; //거래시간
|
|
saSendData[7] = sApprNo; //승인번호
|
|
saSendData[8] = ""; //응답코드
|
|
saSendData[9] = sInputCardNo; //카드번호
|
|
saSendData[10] = sInputHPCustNo; //HPC고객번호
|
|
saSendData[11] = m_cPosStatus.Base.SaleDate; //영업일자
|
|
saSendData[12] = m_cPosStatus.Base.StoreNo; //점포코드
|
|
saSendData[13] = m_cPosStatus.Base.PosNo; //POS번호
|
|
saSendData[14] = m_cPosStatus.Base.TradeNo; //BILL번호
|
|
saSendData[15] = sInputTelecom; //통신사 구분
|
|
saSendData[16] = ""; //Filler
|
|
|
|
#endregion
|
|
|
|
// 전문통신!!!
|
|
sRet = WelcomeCard_Approval(sTradeDiv, sWccType, sInputType, saSendData, ref saRecvdData);
|
|
}
|
|
else if (sWccType == PosConst.WELCOMECARD_TYPE.DC_AGREE ||
|
|
sWccType == PosConst.WELCOMECARD_TYPE.DC_CANCEL ||
|
|
sWccType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE ||
|
|
sWccType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL)
|
|
{
|
|
#region 할인관련
|
|
|
|
saRecvdData = new string[Column.WELCOMECARD_DC_RECV.LEN.Length];
|
|
saSendData = new string[Column.WELCOMECARD_DC.LEN.Length];
|
|
for (int i = 0; i < saRecvdData.Length; i++) { saRecvdData[i] = ""; }
|
|
for (int i = 0; i < saSendData.Length; i++) { saSendData[i] = ""; }
|
|
|
|
//할인
|
|
if (sWccType == PosConst.WELCOMECARD_TYPE.DC_AGREE)
|
|
{
|
|
saSendData[0] = "0"; //전체 전문길이
|
|
saSendData[1] = "MC"; //구분
|
|
saSendData[2] = "0200"; //전문유형
|
|
saSendData[3] = "20"; //업무구분
|
|
saSendData[4] = "V100"; //전문버전
|
|
}
|
|
//할인취소
|
|
else if (sWccType == PosConst.WELCOMECARD_TYPE.DC_CANCEL)
|
|
{
|
|
saSendData[0] = "0"; //전체 전문길이
|
|
saSendData[1] = "MC"; //구분
|
|
saSendData[2] = "0300"; //전문유형
|
|
saSendData[3] = "20"; //업무구분
|
|
saSendData[4] = "V100"; //전문버전
|
|
}
|
|
//망상할인취소
|
|
else if (sWccType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE)
|
|
{
|
|
saSendData[0] = "0"; //전체 전문길이
|
|
saSendData[1] = "MC"; //구분
|
|
saSendData[2] = "0400"; //전문유형
|
|
saSendData[3] = "20"; //업무구분
|
|
saSendData[4] = "V100"; //전문버전
|
|
}
|
|
//망상할인
|
|
else if (sWccType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL)
|
|
{
|
|
saSendData[0] = "0"; //전체 전문길이
|
|
saSendData[1] = "MC"; //구분
|
|
saSendData[2] = "0500"; //전문유형
|
|
saSendData[3] = "20"; //업무구분
|
|
saSendData[4] = "V100"; //전문버전
|
|
}
|
|
|
|
saSendData[5] = sYYYYMMDD; //거래일자
|
|
saSendData[6] = sHHmmss; //거래시간
|
|
saSendData[7] = sApprNo; //승인번호
|
|
saSendData[8] = ""; //응답코드
|
|
saSendData[9] = sInputCardNo; //카드번호
|
|
saSendData[10] = sInputHPCustNo; //HPC고객번호
|
|
saSendData[11] = m_cPosStatus.Base.SaleDate; //영업일자
|
|
saSendData[12] = m_cPosStatus.Base.StoreNo; //점포코드
|
|
saSendData[13] = m_cPosStatus.Base.PosNo; //POS번호
|
|
saSendData[14] = m_cPosStatus.Base.TradeNo; //BILL번호
|
|
saSendData[15] = sInputCardtype; //입력구분 C:실물카드, A:해피App
|
|
saSendData[16] = sTargetAmt; //대상금액
|
|
saSendData[17] = ""; //Filler
|
|
|
|
#endregion
|
|
|
|
// 전문통신!!!
|
|
sRet = WelcomeCard_Approval(sTradeDiv, sWccType, sInputType, saSendData, ref saRecvdData);
|
|
}
|
|
else if (sWccType == PosConst.WELCOMECARD_TYPE.HPC_CLIENT_REGISTER)
|
|
{
|
|
#region HPC고객등록
|
|
string sReqDivCd = string.Empty;
|
|
if (sTradeDiv == PosConst.CANCEL_DIV.NORMAL)
|
|
{
|
|
sReqDivCd = "40";//등록
|
|
}
|
|
else
|
|
{
|
|
sReqDivCd = "41";//해지
|
|
}
|
|
|
|
//sRet = HPAppClientRegister(new string[] { sWccType, sInputType, sReqDivCd, sInputCardNo, sTradeDiv, sReadingHPData });
|
|
sRet = HPAppClientRegister(new string[] { sTradeDiv, sWccType, sInputCardNo, sInputType, sReqDivCd, sInputHPWccNo, sReadingHPData });
|
|
#endregion
|
|
}
|
|
|
|
sRevParam = saRecvdData;
|
|
|
|
//#20180605 응답값이 비어있을 경우 에러로 판단. start
|
|
if (sWccType != PosConst.WELCOMECARD_TYPE.HPC_CLIENT_REGISTER && saRecvdData == null)
|
|
{
|
|
sRet = UserCom.RST_ERR;
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_SendDataMake] saRecvdData is null");
|
|
}
|
|
//#20180605 응답값이 비어있을 경우 에러로 판단. end
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_SendDataMake] sRet :" + sRet.ToString());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
ex.Message);
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 웰컴카드 바디생성
|
|
/// <summary>
|
|
/// 월컴카드 발급-조회
|
|
/// </summary>
|
|
private string MakeBodyData(string aType, string[] aParam)
|
|
{
|
|
string sSendData = string.Empty;
|
|
|
|
try
|
|
{
|
|
int iLen = 0;
|
|
string sBody = string.Empty;
|
|
string sBodyLen = string.Empty;
|
|
string sBodyData = string.Empty;
|
|
|
|
string[] aIrtBody = null;
|
|
|
|
if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_SEARCH)
|
|
{
|
|
#region 발급조회
|
|
|
|
aIrtBody = new string[Column.WELCOMECARD_SEARCH.LEN.Length];
|
|
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sLen] = aParam[0]; //전체 전문길이
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sMsgDiv] = aParam[1]; //구분
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sMsgType] = aParam[2]; //전문유형
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sMsgGubun] = aParam[3]; //업무구분
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sMsgVersion] = aParam[4]; //전문버전
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sYYYYMMDD] = aParam[5]; //거래일자
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.shhmmss] = aParam[6]; //거래시간
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sApprNo] = aParam[7]; //승인번호
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sReqCode] = aParam[8]; //응답코드
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sCardNo] = aParam[9]; //카드번호
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sHPCustNo] = aParam[10];//HPC고객번호
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sSaleDate] = aParam[11];//영업일자
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sStoreCode] = aParam[12];//점포코드
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sPosNo] = aParam[13];//POS번호
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sBillNo] = aParam[14];//BILL번호
|
|
aIrtBody[Column.WELCOMECARD_SEARCH.SEQ.sFiller] = aParam[15];//Filler
|
|
|
|
sSendData = ItemColumn.MakeMessage(aIrtBody, Column.WELCOMECARD_SEARCH.LEN, Column.WELCOMECARD_SEARCH.TYPE);
|
|
|
|
if (sSendData != "")
|
|
{
|
|
sBody = sSendData.Substring(Column.WELCOMECARD_SEARCH.LEN[0], sSendData.Length - (Column.WELCOMECARD_SEARCH.LEN[0]));
|
|
iLen = sBody.Length + Column.WELCOMECARD_SEARCH.LEN[0];
|
|
sBodyData = iLen.ToString().PadLeft(Column.WELCOMECARD_SEARCH.LEN[0], '0') + sBody;
|
|
sSendData = sBodyData;
|
|
}
|
|
#endregion
|
|
}
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER || aType == PosConst.WELCOMECARD_TYPE.ISSUE_CANCEL)
|
|
{
|
|
#region 발급등록, 발급취소
|
|
|
|
//#20180704 망상 전문 관련 수정 start
|
|
// 웰컴카드 발급
|
|
if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER)
|
|
{
|
|
aParam[0] = "0"; //전체 전문길이
|
|
aParam[1] = "MC"; //구분
|
|
aParam[2] = "2100"; //전문유형
|
|
aParam[3] = "50"; //업무구분
|
|
aParam[4] = "V100"; //전문버전
|
|
}
|
|
// 웰컴카드 발급취소
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_CANCEL)
|
|
{
|
|
aParam[0] = "0"; //전체 전문길이
|
|
aParam[1] = "MC"; //구분
|
|
aParam[2] = "2200"; //전문유형
|
|
aParam[3] = "50"; //업무구분
|
|
aParam[4] = "V100"; //전문버전
|
|
}
|
|
//#20180704 망상 전문 관련 수정 end
|
|
|
|
|
|
|
|
aIrtBody = new string[Column.WELCOMECARD_ISSUE.LEN.Length];
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sLen] = aParam[0];//전체 전문길이
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sMsgDiv] = aParam[1];//구분
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sMsgType] = aParam[2];//전문유형
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sMsgGubun] = aParam[3];//업무구분
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sMsgVersion] = aParam[4];//전문버전
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sYYYYMMDD] = aParam[5];//거래일자
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.shhmmss] = aParam[6];//거래시간
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sApprNo] = aParam[7];//승인번호
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sReqCode] = aParam[8];//응답코드
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sCardNo] = aParam[9];//카드번호
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sHPCCustNo] = aParam[10];//HPC고객번호
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sSaleDate] = aParam[11];//영업일자
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sStoreCode] = aParam[12];//점포코드
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sPosNo] = aParam[13];//POS번호
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sBillNo] = aParam[14];//BILL번호
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sTelType] = aParam[15];//통신사 구분
|
|
aIrtBody[Column.WELCOMECARD_ISSUE.SEQ.sFiller] = aParam[16];//Filler
|
|
sSendData = ItemColumn.MakeMessage(aIrtBody, Column.WELCOMECARD_ISSUE.LEN, Column.WELCOMECARD_ISSUE.TYPE);
|
|
if (sSendData != "")
|
|
{
|
|
sBody = sSendData.Substring(Column.WELCOMECARD_ISSUE.LEN[0], sSendData.Length - (Column.WELCOMECARD_ISSUE.LEN[0]));
|
|
iLen = sBody.Length + Column.WELCOMECARD_ISSUE.LEN[0];
|
|
sBodyData = iLen.ToString().PadLeft(Column.WELCOMECARD_ISSUE.LEN[0], '0') + sBody;
|
|
sSendData = sBodyData;
|
|
}
|
|
#endregion
|
|
}
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER)
|
|
{
|
|
#region POS고객등록
|
|
aIrtBody = new string[Column.WELCOMECARD_SERVER_REGISTER.LEN.Length];
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sLen] = aParam[0]; //전체 전문길이
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sMsgDiv] = aParam[1]; //구분
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sMsgType] = aParam[2]; //전문유형
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sMsgGubun] = aParam[3]; //업무구분
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sMsgVersion] = aParam[4]; //전문버전
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sYYYYMMDD] = aParam[5]; //거래일자
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.shhmmss] = aParam[6]; //거래시간
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sApprNo] = aParam[7]; //승인번호
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sReqCode] = aParam[8]; //응답코드
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sCardNo] = aParam[9]; //카드번호
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sHPCCustNo] = aParam[10];//HPC고객번호
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sSaleDate] = aParam[11];//영업일자
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sStoreCode] = aParam[12];//점포코드
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sPosNo] = aParam[13];//POS번호
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sBillNo] = aParam[14];//BILL번호
|
|
aIrtBody[Column.WELCOMECARD_SERVER_REGISTER.SEQ.sFiller] = aParam[15];//Filler
|
|
sSendData = ItemColumn.MakeMessage(aIrtBody, Column.WELCOMECARD_SERVER_REGISTER.LEN, Column.WELCOMECARD_SERVER_REGISTER.TYPE);
|
|
|
|
if (sSendData != "")
|
|
{
|
|
sBody = sSendData.Substring(Column.WELCOMECARD_SERVER_REGISTER.LEN[0], sSendData.Length - (Column.WELCOMECARD_SERVER_REGISTER.LEN[0]));
|
|
iLen = sBody.Length + Column.WELCOMECARD_SERVER_REGISTER.LEN[0];
|
|
sBodyData = iLen.ToString().PadLeft(Column.WELCOMECARD_SERVER_REGISTER.LEN[0], '0') + sBody;
|
|
sSendData = sBodyData;
|
|
}
|
|
#endregion
|
|
}
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.HPC_CLIENT_REGISTER)
|
|
{
|
|
#region HPC고객등록
|
|
|
|
#endregion
|
|
}
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE || aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL ||
|
|
aType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE || aType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL)
|
|
{
|
|
#region 웰컴카드 할인
|
|
|
|
//#20180704 망상 전문 관련 수정 start
|
|
//할인
|
|
if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE)
|
|
{
|
|
aParam[0] = "0"; //전체 전문길이
|
|
aParam[1] = "MC"; //구분
|
|
aParam[2] = "0200"; //전문유형
|
|
aParam[3] = "20"; //업무구분
|
|
aParam[4] = "V100"; //전문버전
|
|
}
|
|
//할인취소
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL)
|
|
{
|
|
aParam[0] = "0"; //전체 전문길이
|
|
aParam[1] = "MC"; //구분
|
|
aParam[2] = "0300"; //전문유형
|
|
aParam[3] = "20"; //업무구분
|
|
aParam[4] = "V100"; //전문버전
|
|
}
|
|
//망상할인취소
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE)
|
|
{
|
|
aParam[0] = "0"; //전체 전문길이
|
|
aParam[1] = "MC"; //구분
|
|
aParam[2] = "0400"; //전문유형
|
|
aParam[3] = "20"; //업무구분
|
|
aParam[4] = "V100"; //전문버전
|
|
}
|
|
//망상할인
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL)
|
|
{
|
|
aParam[0] = "0"; //전체 전문길이
|
|
aParam[1] = "MC"; //구분
|
|
aParam[2] = "0500"; //전문유형
|
|
aParam[3] = "20"; //업무구분
|
|
aParam[4] = "V100"; //전문버전
|
|
}
|
|
//#20180704 망상 전문 관련 수정 end
|
|
|
|
aIrtBody = new string[Column.WELCOMECARD_DC.LEN.Length];
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sLen] = aParam[0]; //전체 전문길이
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sMsgDiv] = aParam[1]; //구분
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sMsgType] = aParam[2]; //전문유형
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sMsgGubun] = aParam[3]; //업무구분
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sMsgVersion] = aParam[4]; //전문버전
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sYYYYMMDD] = aParam[5]; //거래일자
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.shhmmss] = aParam[6]; //거래시간
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sApprNo] = aParam[7]; //승인번호
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sReqCode] = aParam[8]; //응답코드
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sCardNo] = aParam[9]; //카드번호
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sHPCustNo] = aParam[10];//HPC고객번호
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sSaleDate] = aParam[11];//영업일자
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sStoreCode] = aParam[12];//점포코드
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sPosNo] = aParam[13];//POS번호
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sBillNo] = aParam[14];//BILL번호
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sCard_type] = aParam[15];//입력구분
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sTarget_Amt] = aParam[16];//대상금액
|
|
aIrtBody[Column.WELCOMECARD_DC.SEQ.sFiller] = aParam[17];//Filler
|
|
sSendData = ItemColumn.MakeMessage(aIrtBody, Column.WELCOMECARD_DC.LEN, Column.WELCOMECARD_DC.TYPE);
|
|
|
|
if (sSendData != "")
|
|
{
|
|
sBody = sSendData.Substring(Column.WELCOMECARD_DC.LEN[0], sSendData.Length - (Column.WELCOMECARD_DC.LEN[0]));
|
|
iLen = sBody.Length + Column.WELCOMECARD_DC.LEN[0];
|
|
sBodyData = iLen.ToString().PadLeft(Column.WELCOMECARD_DC.LEN[0], '0') + sBody;
|
|
sSendData = sBodyData;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." + System.Reflection.MethodBase.GetCurrentMethod().Name + "()", ex.Message);
|
|
|
|
}
|
|
return sSendData;
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 웰컴카드 전문승인
|
|
public string WelcomeCard_Approval(string aTradeDiv, string aType, string aInputType, string[] aParam, ref string[] aRecvdData)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
string sSendData = string.Empty;
|
|
string sRecvData = string.Empty;
|
|
|
|
// 받는
|
|
Hashtable htRecvData = null;
|
|
htRecvData = new Hashtable();
|
|
htRecvData.Clear();
|
|
|
|
// 보내는
|
|
Hashtable htReqData = null;
|
|
htReqData = new Hashtable();
|
|
htReqData.Clear();
|
|
|
|
try
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_Approval] Approval Start! (aTradeDiv:" + aTradeDiv + "," + " aType:" + aType + "," + " aInputType:" + aInputType + ")");
|
|
|
|
sSendData = MakeBodyData(aType, aParam);
|
|
|
|
htReqData.Add(Column.WELCOMECARD.INQ_TYPE, ItemConst.IRT_INQ_TYPE.WELCOME_INFO_INQ);
|
|
htReqData.Add(Column.WELCOMECARD.DATA, sSendData);
|
|
htReqData.Add(Column.WELCOMECARD.RES_CD, "");
|
|
|
|
// 승인업체 코드 조회
|
|
string sWccIP = "";
|
|
string sWccPort = "";
|
|
string sVanCD = "";
|
|
sVanCD = PosMstManager.GetMstPayDc(ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD);
|
|
sWccIP = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.IP);
|
|
sWccPort = PosMstManager.GetMstVan(sVanCD, PosMst.MST_VAN.DATA.PORT);
|
|
//if (sWccIP == "") { sWccIP = "10.0.40.134";}
|
|
//if (sWccPort == "") { sWccPort = "9029"; }
|
|
|
|
|
|
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
|
|
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2,4), "S", aParam[9], htReqData[Column.WELCOMECARD.RES_CD].ToString(), "", "", "", "", "", sSendData, "", "", "", "", "" });
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_SOCK,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
"WelcomeCard_Approval()",
|
|
"[SEND :" + sWccIP + ":" + sWccPort + "] " + sSendData);
|
|
|
|
// 전문전송
|
|
//sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.WELCOME_INFO, m_cPosStatus.Base.CommSvrIp, (int)m_cPosStatus.Base.PayInqPort, 10000, htReqData, ref htRecvData, false);
|
|
sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.WELCOME_INFO, sWccIP, int.Parse(sWccPort), 10000, htReqData, ref htRecvData, true);
|
|
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_Approval] Approval End! (IP: " + sWccIP + " / PORT:" + sWccPort + " + Result :" + sRet.ToString() + ")");
|
|
|
|
if (htRecvData == null || htRecvData.Count == 0)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_SOCK,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
"WelcomeCard_Approval()",
|
|
"[RECV :" + sWccIP + ":" + sWccPort + "] " + "응답 전문이 없습니다.");
|
|
|
|
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
|
|
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2, 4), "R", aParam[9], "", "", "", "", "", "", "", "", "", "", "", "" });
|
|
}
|
|
else
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_SOCK,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
"WelcomeCard_Approval()",
|
|
"[RECV :" + sWccIP + ":" + sWccPort + "] " + htRecvData[Column.WELCOMECARD.DATA].ToString());
|
|
|
|
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
|
|
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2, 4), "R", aParam[9], "", "", "", "", CmUtil.MidH(htRecvData[Column.WELCOMECARD.DATA].ToString(), 50, 5), "", htRecvData[Column.WELCOMECARD.DATA].ToString(), "", "", "", "", "" });
|
|
}
|
|
|
|
|
|
if (sRet != UserCom.RST_OK || htRecvData == null || htRecvData.Count == 0)
|
|
{
|
|
#region 망상할인, 망상할인취소
|
|
if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE || aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_Approval] NET_Approval Start! (aType :" + aType + ")");
|
|
|
|
//#20180605 통신 실패 시 예외처리 start
|
|
// 받는
|
|
htRecvData = null;
|
|
htRecvData = new Hashtable();
|
|
htRecvData.Clear();
|
|
|
|
// 보내는
|
|
htReqData = null;
|
|
htReqData = new Hashtable();
|
|
htReqData.Clear();
|
|
//#20180605 통신 실패 시 예외처리 end
|
|
|
|
//#20180704 망상 전문 관련 수정 start
|
|
sSendData = string.Empty;
|
|
//#20180704 망상 전문 관련 수정 end
|
|
|
|
// 할인승인 -> 망상할인취소
|
|
if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE)
|
|
{
|
|
//DC_NETAGREE
|
|
sSendData = MakeBodyData(PosConst.WELCOMECARD_TYPE.DC_NETAGREE, aParam);
|
|
aType = PosConst.WELCOMECARD_TYPE.DC_NETAGREE;
|
|
|
|
}
|
|
// 할인취소승인 -> 망상할인
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL)
|
|
{
|
|
//DC_NETCANCEL
|
|
sSendData = MakeBodyData(PosConst.WELCOMECARD_TYPE.DC_NETCANCEL, aParam);
|
|
aType = PosConst.WELCOMECARD_TYPE.DC_NETCANCEL;
|
|
}
|
|
|
|
htReqData.Add(Column.WELCOMECARD.INQ_TYPE, ItemConst.IRT_INQ_TYPE.WELCOME_INFO_INQ);
|
|
htReqData.Add(Column.WELCOMECARD.DATA, sSendData);
|
|
htReqData.Add(Column.WELCOMECARD.RES_CD, "");
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_SOCK,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
"[WelcomeCard_Approval] NET_Approval ",
|
|
"[SEND :" + sWccIP + ":" + sWccPort + "] " + sSendData);
|
|
|
|
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
|
|
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2, 4), "S", aParam[9], CmUtil.MidH(htReqData[Column.WELCOMECARD.DATA].ToString(), 118, 7), "", "", "", "", "", sSendData, "", "", "", "", "" });
|
|
|
|
|
|
//sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.WELCOME_INFO, "10.0.40.134", 9029, 10000, htReqData, ref htRecvData, false);
|
|
sRet = m_cDataCommon.ExecutePosIrt(ItemConst.COMM_MSG_TYPE.WELCOME_INFO, sWccIP, int.Parse(sWccPort), 10000, htReqData, ref htRecvData, true);
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_Approval] NET_Approval End! (IP: " + sWccIP + " / PORT:" + sWccPort + " + Result :" + sRet.ToString() + ")");
|
|
|
|
if (htRecvData == null || htRecvData.Count == 0)
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_SOCK,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
"[WelcomeCard_Approval] NET_Approval ",
|
|
"[RECV :" + sWccIP + ":" + sWccPort + "] " + "응답 전문이 없습니다.");
|
|
|
|
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
|
|
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2, 4), "R", aParam[9], "", "", "", "", "", "", "", "", "", "", "", "" });
|
|
|
|
}
|
|
else
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_SOCK,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
"[WelcomeCard_Approval] NET_Approval ",
|
|
"[RECV :" + sWccIP + ":" + sWccPort + "] " + htRecvData[Column.WELCOMECARD.DATA].ToString());
|
|
|
|
// 요청 - 승인로그 저장 (판매구분, [0]결제수단, [1]결제상세코드, [2]전문구분, [3]요청구분, [4]카드번호, [5]결제금액, [6]승인번호, [7]승인일자, [8]승인시간, [9]응답상태값, [10]응답메시지, [11]전문, [12]입력구분, [13]추후적립여부, [14]적립구분, [15] skt할인상품코드)
|
|
m_cDataCommon.SetSaleApprLog(aTradeDiv, new string[] { ItemConst.TR_ITEM_ID.MOBILE_COM_POINT, ItemConst.TR_ITEM_ID.MOBILE_COM.WELCOMECARD, CmUtil.MidH(aType, 2, 4), "R", aParam[9], CmUtil.MidH(htRecvData[Column.WELCOMECARD.DATA].ToString(), 136, 7), "", "", "", CmUtil.MidH(htRecvData[Column.WELCOMECARD.DATA].ToString(), 50, 5), "", htRecvData[Column.WELCOMECARD.DATA].ToString(), "", "", "", "", "" });
|
|
|
|
}
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_Approval] NET_Approval End! (Result :" + sRet.ToString() + ")");
|
|
|
|
if (sRet != UserCom.RST_OK)
|
|
{
|
|
//망취소 실패 시 로컬에 데이터 저장!
|
|
Wcc_Net_log_Insert(aType, aParam[9], htReqData, htRecvData);
|
|
}
|
|
}
|
|
#endregion 망상할인, 망상할인취소
|
|
|
|
WinManager.ErrorMessage(MessageManager.GetErrorMessage(POS_MESSAGE.ERROR.MSG_0005));
|
|
sRet = UserCom.RST_ERR;
|
|
return sRet;
|
|
}
|
|
// 응답전문 파싱
|
|
string[] aReq = null;
|
|
string[] aRecv = null;
|
|
sRet = WelcomeCard_Parsing(aType, htReqData, htRecvData, ref aReq, ref aRecv);
|
|
|
|
aRecvdData = aRecv;
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_Approval] WelcomeCard_Parsing! (Result :" + sRet.ToString() + ")");
|
|
|
|
#region 전문 응답 메세지 - 정리하기
|
|
// 발급조회
|
|
if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_SEARCH && aRecv[Column.WELCOMECARD_SEARCH_RECV.SEQ.sReqCode].Trim() != "00000")
|
|
{
|
|
WinManager.ErrorMessage(aRecv[Column.WELCOMECARD_SEARCH_RECV.SEQ.sMsg1].Trim());
|
|
sRet = UserCom.RST_ERR;
|
|
return sRet;
|
|
}
|
|
// 발급요청, 취소
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER && aRecv[Column.WELCOMECARD_ISSUE_RECV.SEQ.sReqCode].Trim() != "00000")
|
|
{
|
|
WinManager.ErrorMessage(aRecv[Column.WELCOMECARD_ISSUE_RECV.SEQ.sMsg1].Trim());
|
|
sRet = UserCom.RST_ERR;
|
|
return sRet;
|
|
}
|
|
// POS 고객등록
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER && aRecv[Column.WELCOMECARD_SERVER_REGISTER_RECV.SEQ.sReqCode].Trim() != "00000")
|
|
{
|
|
WinManager.ErrorMessage(aRecv[Column.WELCOMECARD_SERVER_REGISTER_RECV.SEQ.sMsg1].Trim());
|
|
sRet = UserCom.RST_ERR;
|
|
return sRet;
|
|
}
|
|
// 할인요청,취소
|
|
else if ((aType == PosConst.WELCOMECARD_TYPE.DC_AGREE ||
|
|
aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL ||
|
|
aType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE ||
|
|
aType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL) && aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sReqCode].Trim() != "00000")
|
|
{
|
|
//#20180705 할인취소 시 응답코드가 00400일 때 정상처리 되도록 변경 start
|
|
//기존
|
|
//WinManager.ErrorMessage(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sMsg1].Trim());
|
|
//sRet = UserCom.RST_ERR;
|
|
//return sRet;
|
|
|
|
//변경
|
|
|
|
|
|
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 start
|
|
//기존
|
|
//if (aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL && aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sReqCode].Trim() != "00400")
|
|
//변경
|
|
if ((aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL && (aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sReqCode].Trim() != "00400" && aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sReqCode].Trim() != "00000"))
|
|
|| (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE && aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sReqCode].Trim() != "00000"))
|
|
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 end
|
|
|
|
{
|
|
WinManager.ErrorMessage(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sMsg1].Trim());
|
|
sRet = UserCom.RST_ERR;
|
|
return sRet;
|
|
}
|
|
//#20180705 할인취소 시 응답코드가 00400일 때 정상처리 되도록 변경 end
|
|
}
|
|
#endregion 전문 응답 메세지 - 정리하기
|
|
|
|
// 응답전문 적용
|
|
|
|
//#20180620 반품 시 반품승인번호 표기 start
|
|
//기존
|
|
//if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE )
|
|
//변경
|
|
if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE || aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL)
|
|
//#20180620 반품 시 반품승인번호 표기 end
|
|
{
|
|
sRet = WelcomeCard_Insert(aTradeDiv, aType, aInputType, aReq, aRecv);
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[WelcomeCard_Approval] WelcomeCard_Insert! (Result :" + sRet.ToString() + ")");
|
|
|
|
if (sRet != UserCom.RST_OK)
|
|
{
|
|
WinManager.ErrorMessage(MessageManager.GetLabelMessage(POS_MESSAGE.LABEL.MSG_1153));
|
|
sRet = UserCom.RST_ERR;
|
|
return sRet;
|
|
}
|
|
}
|
|
|
|
sRet = UserCom.RST_OK;
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
ex.Message);
|
|
sRet = UserCom.RST_ERR;
|
|
}
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 웰컴카드 전문파싱
|
|
public string WelcomeCard_Parsing(string aType, Hashtable htReqData, Hashtable htRecvData, ref string[] aReq, ref string[] aRecv)
|
|
{
|
|
int nNowPos = 0;
|
|
string sRet = UserCom.RST_ERR;
|
|
string sSendValue = string.Empty;
|
|
string sRecvValue = string.Empty;
|
|
string[] asSendValue = null;
|
|
string[] asRecvValue = null;
|
|
try
|
|
{
|
|
if (htReqData == null) return sRet;
|
|
if (htRecvData == null) return sRet;
|
|
|
|
// send
|
|
foreach (DictionaryEntry entry in htReqData)
|
|
{
|
|
//Console.WriteLine("{0}, {1}", entry.Key, entry.Value);
|
|
if ((string)entry.Key == "DATA")
|
|
{
|
|
sSendValue = (string)entry.Value;
|
|
break;
|
|
}
|
|
}
|
|
// receive
|
|
foreach (DictionaryEntry entry in htRecvData)
|
|
{
|
|
//Console.WriteLine("{0}, {1}", entry.Key, entry.Value);
|
|
if ((string)entry.Key == "DATA")
|
|
{
|
|
sRecvValue = (string)entry.Value;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if (sSendValue == "") return sRet;
|
|
if (sRecvValue == "") return sRet;
|
|
|
|
if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_SEARCH)
|
|
{
|
|
#region 발급조회
|
|
asRecvValue = new string[Column.WELCOMECARD_SEARCH_RECV.LEN.Length];
|
|
ItemColumn.ParseMessage(Column.WELCOMECARD_SEARCH_RECV.LEN,
|
|
Column.WELCOMECARD_SEARCH_RECV.TYPE,
|
|
Encoding.Default.GetBytes(sRecvValue),
|
|
ref nNowPos,
|
|
ref asRecvValue);
|
|
nNowPos = 0;
|
|
|
|
asSendValue = new string[Column.WELCOMECARD_SEARCH.LEN.Length];
|
|
ItemColumn.ParseMessage(Column.WELCOMECARD_SEARCH.LEN,
|
|
Column.WELCOMECARD_SEARCH.TYPE,
|
|
Encoding.Default.GetBytes(sSendValue),
|
|
ref nNowPos,
|
|
ref asSendValue);
|
|
#endregion
|
|
}
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.ISSUE_REGISTER || aType == PosConst.WELCOMECARD_TYPE.ISSUE_CANCEL)
|
|
{
|
|
#region 발급, 취소
|
|
asRecvValue = new string[Column.WELCOMECARD_ISSUE_RECV.LEN.Length];
|
|
ItemColumn.ParseMessage(Column.WELCOMECARD_ISSUE_RECV.LEN,
|
|
Column.WELCOMECARD_ISSUE_RECV.TYPE,
|
|
Encoding.Default.GetBytes(sRecvValue),
|
|
ref nNowPos,
|
|
ref asRecvValue);
|
|
nNowPos = 0;
|
|
|
|
asSendValue = new string[Column.WELCOMECARD_ISSUE.LEN.Length];
|
|
ItemColumn.ParseMessage(Column.WELCOMECARD_ISSUE.LEN,
|
|
Column.WELCOMECARD_ISSUE.TYPE,
|
|
Encoding.Default.GetBytes(sSendValue),
|
|
ref nNowPos,
|
|
ref asSendValue);
|
|
#endregion
|
|
}
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.POS_CLIENT_REGISTER)
|
|
{
|
|
#region POS고객등록
|
|
|
|
asRecvValue = new string[Column.WELCOMECARD_SERVER_REGISTER_RECV.LEN.Length];
|
|
ItemColumn.ParseMessage(Column.WELCOMECARD_SERVER_REGISTER_RECV.LEN,
|
|
Column.WELCOMECARD_SERVER_REGISTER_RECV.TYPE,
|
|
Encoding.Default.GetBytes(sRecvValue),
|
|
ref nNowPos,
|
|
ref asRecvValue);
|
|
|
|
nNowPos = 0;
|
|
|
|
asSendValue = new string[Column.WELCOMECARD_SERVER_REGISTER.LEN.Length];
|
|
ItemColumn.ParseMessage(Column.WELCOMECARD_SERVER_REGISTER.LEN,
|
|
Column.WELCOMECARD_SERVER_REGISTER.TYPE,
|
|
Encoding.Default.GetBytes(sSendValue),
|
|
ref nNowPos,
|
|
ref asSendValue);
|
|
#endregion
|
|
}
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.HPC_CLIENT_REGISTER)
|
|
{
|
|
#region HPC고객등록
|
|
|
|
#endregion
|
|
}
|
|
else if (aType == PosConst.WELCOMECARD_TYPE.DC_AGREE || aType == PosConst.WELCOMECARD_TYPE.DC_CANCEL ||
|
|
aType == PosConst.WELCOMECARD_TYPE.DC_NETAGREE || aType == PosConst.WELCOMECARD_TYPE.DC_NETCANCEL)
|
|
{
|
|
#region 웰컴카드 할인
|
|
asRecvValue = new string[Column.WELCOMECARD_DC_RECV.LEN.Length];
|
|
ItemColumn.ParseMessage(Column.WELCOMECARD_DC_RECV.LEN,
|
|
Column.WELCOMECARD_DC_RECV.TYPE,
|
|
Encoding.Default.GetBytes(sRecvValue),
|
|
ref nNowPos,
|
|
ref asRecvValue);
|
|
|
|
nNowPos = 0;
|
|
|
|
asSendValue = new string[Column.WELCOMECARD_DC.LEN.Length];
|
|
ItemColumn.ParseMessage(Column.WELCOMECARD_DC.LEN,
|
|
Column.WELCOMECARD_DC.TYPE,
|
|
Encoding.Default.GetBytes(sSendValue),
|
|
ref nNowPos,
|
|
ref asSendValue);
|
|
#endregion
|
|
}
|
|
|
|
aRecv = asRecvValue; //응답
|
|
aReq = asSendValue; //요청
|
|
|
|
sRet = UserCom.RST_OK;
|
|
|
|
return sRet;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
ex.Message);
|
|
|
|
return UserCom.RST_ERR;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 웰컴카드 할인 데이터 인서트
|
|
public string WelcomeCard_Insert(string aTradeDiv, string aType, string aInputType, string[] aReq, string[] aRecv)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
if (aReq == null) return sRet; // 요청데이터
|
|
if (aRecv == null) return sRet;// 응답데이터
|
|
|
|
//#20180620 반품 시 반품승인번호 표기 start
|
|
//기존
|
|
//if (aType != PosConst.WELCOMECARD_TYPE.DC_AGREE) return sRet;
|
|
//#20180620 반품 시 반품승인번호 표기 end
|
|
|
|
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return sRet;
|
|
|
|
try
|
|
{
|
|
if (aTradeDiv == PosConst.CANCEL_DIV.NORMAL)
|
|
{
|
|
// 결제구분 (1:결제, 2:할인)
|
|
DataRow dr = PosMstManager.GetMstPayDc(new string[] { m_cPosStatus.Base.CmpCd, m_cPosStatus.Base.StoreNo, m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01 });
|
|
|
|
m_cPayItem.PAY_AMT = CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sDC_Amt].Trim()); // 사용포인트(할인금액)
|
|
m_cPayItem.PAY_AMT = CmUtil.MathRounds(m_cPayItem.PAY_AMT, PosConst.MATH_ROUND.CEILING, -1);
|
|
m_cPayItem.PAY_DTL_CD_02 = "";
|
|
|
|
//if (PosMstManager.GetMstPayDc(m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01, PosMst.MST_PAY_DC.DATA.PAY_DC_TYPE) == PosConst.PAY_DC_TYPE.DC)
|
|
if (CmUtil.GetDataRowStr(dr, PosMst.MST_PAY_DC.DATA.PAY_DC_TYPE) == PosConst.PAY_DC_TYPE.DC)
|
|
{
|
|
m_cPayItem.PAY_DTL_CD_03 = "1"; // 할인금액아이템적용여부 (0:미적용, 1:적용)
|
|
m_cPayItem.PAY_DTL_CD_04 = "";
|
|
m_cPayItem.PAY_DTL_CD_05 = CmUtil.GetDataRowStr(dr, PosMst.MST_PAY_DC.DATA.PAY_DC_TYPE); // 할인결제구분 (1:결제, 2:할인)
|
|
}
|
|
else
|
|
{
|
|
m_cPayItem.PAY_DTL_CD_03 = "0"; //할인금액아이템적용여부 (0:미적용, 1:적용)
|
|
m_cPayItem.PAY_DTL_CD_04 = "";
|
|
m_cPayItem.PAY_DTL_CD_05 = PosConst.PAY_DC_TYPE.PAY; //할인결제구분 (1:결제, 2:할인)
|
|
}
|
|
|
|
m_cPayItem.AMT_ENTRY_01 = m_cPayItem.PAY_AMT; // 할인금액
|
|
m_cPayItem.AMT_ENTRY_02 = 0;
|
|
// 총포인트
|
|
m_cPayItem.AMT_ENTRY_03 = 0; // CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt]);
|
|
// 가용포인트(할인후결제금액)
|
|
m_cPayItem.AMT_ENTRY_04 = CmUtil.DoubleParse(aReq[Column.WELCOMECARD_DC.SEQ.sTarget_Amt].Trim()) -
|
|
CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sDC_Amt].Trim()); // 대상금액 - 할인금액 제외
|
|
// 잔여포인트
|
|
m_cPayItem.AMT_ENTRY_05 = 0; // CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt]); //총할인금액
|
|
m_cPayItem.AMT_ENTRY_06 = 0;
|
|
m_cPayItem.AMT_ENTRY_07 = 0;
|
|
m_cPayItem.AMT_ENTRY_08 = 0;
|
|
m_cPayItem.AMT_ENTRY_09 = 0;
|
|
m_cPayItem.AMT_ENTRY_10 = CmUtil.DoubleParse(aReq[Column.WELCOMECARD_DC.SEQ.sTarget_Amt]); // 대상금액
|
|
|
|
m_cPayItem.OCCUR_ENTRY_01 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardNo].Trim(); // 카드번호
|
|
m_cPayItem.OCCUR_ENTRY_02 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprNo].Trim(); // 승인번호
|
|
|
|
|
|
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 start
|
|
//기존
|
|
//m_cPayItem.OCCUR_ENTRY_03 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sYYYYMMDD].Trim(); // 승인일자
|
|
//m_cPayItem.OCCUR_ENTRY_04 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.shhmmss].Trim(); // 승인시간
|
|
//변경
|
|
m_cPayItem.OCCUR_ENTRY_03 = CmUtil.MidH(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprDate].Trim(), 0, 8); // 승인일자
|
|
m_cPayItem.OCCUR_ENTRY_04 = CmUtil.MidH(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprDate].Trim(), 8, 6); // 승인시간
|
|
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 end
|
|
|
|
m_cPayItem.OCCUR_ENTRY_05 = aInputType; //aReq[Column.WELCOMECARD_DC.SEQ.sCard_type].ToString();// 입력 구분
|
|
m_cPayItem.OCCUR_ENTRY_06 = ""; // 원승인번호
|
|
m_cPayItem.OCCUR_ENTRY_07 = ""; // 원승인일자
|
|
m_cPayItem.OCCUR_ENTRY_08 = ItemConst.PAY_APP_DIV.NORMAL; //승인구분
|
|
|
|
m_cPayItem.OCCUR_ENTRY_16 = CmUtil.GetDataRowStr(dr, PosMst.MST_PAY_DC.DATA.APPR_VEND_CD); // VAN 구분
|
|
m_cPayItem.OCCUR_ENTRY_18 = ""; // 가맹점번호
|
|
|
|
m_cPayItem.OCCUR_ENTRY_19 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardNo].Trim(); //웰컴카드번호
|
|
m_cPayItem.OCCUR_ENTRY_20 = GetPayDtlCdToPayDtlName(m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01); // 결제수단명
|
|
m_cPayItem.OCCUR_ENTRY_21 = GetPayDtlCdToCashBillYn(m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01); // 현금영수증 발행여부
|
|
m_cPayItem.OCCUR_ENTRY_22 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sHPCustNo].Trim(); // hpc 회원번호
|
|
m_cPayItem.OCCUR_ENTRY_23 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardDiv].Trim(); // 입력구분(C:실물카드,A: 해피포인트)
|
|
m_cPayItem.OCCUR_ENTRY_24 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sRemainCnt].Trim(); // 잔여횟수
|
|
m_cPayItem.OCCUR_ENTRY_25 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt].Trim(); // 총할인금액
|
|
|
|
m_cPayItem.CANCEL_DIV = ItemConst.PAY_CANCEL_DIV.NORMAL;
|
|
|
|
m_cPayItem.BILLSPR_NO = m_cTrnStatus.Sale.BillSplitNo; // 빌분리 번호
|
|
}
|
|
else
|
|
{
|
|
// 전체금액
|
|
m_cPayItem.AMT_ENTRY_03 = 0; // CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt].Trim());
|
|
// 대상금액 - 할인금액 제외
|
|
m_cPayItem.AMT_ENTRY_04 = CmUtil.DoubleParse(aReq[Column.WELCOMECARD_DC.SEQ.sTarget_Amt].Trim()) -
|
|
CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sDC_Amt].Trim());
|
|
m_cPayItem.AMT_ENTRY_05 = 0; //CmUtil.DoubleParse(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt].Trim());
|
|
|
|
|
|
m_cPayItem.OCCUR_ENTRY_06 = m_cPayItem.OCCUR_ENTRY_02; // 원승인번호
|
|
m_cPayItem.OCCUR_ENTRY_07 = m_cPayItem.OCCUR_ENTRY_03; // 원승인일자
|
|
|
|
|
|
m_cPayItem.OCCUR_ENTRY_01 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardNo].Trim(); // 카드번호
|
|
m_cPayItem.OCCUR_ENTRY_02 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprNo].Trim(); // 승인번호
|
|
|
|
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 start
|
|
//기존
|
|
//m_cPayItem.OCCUR_ENTRY_03 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sYYYYMMDD].Trim(); // 승인일자
|
|
//m_cPayItem.OCCUR_ENTRY_04 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.shhmmss].Trim(); // 승인시간
|
|
//변경
|
|
m_cPayItem.OCCUR_ENTRY_03 = CmUtil.MidH(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprDate].Trim(), 0, 8); // 승인일자
|
|
m_cPayItem.OCCUR_ENTRY_04 = CmUtil.MidH(aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sApprDate].Trim(), 8, 6); // 승인시간
|
|
//#20180726 멤버십 할인 반품처리시 승인일자 확인요청 end
|
|
|
|
m_cPayItem.OCCUR_ENTRY_05 = aRecv[Column.WELCOMECARD_DC.SEQ.sCard_type].Trim(); // 입력구분
|
|
|
|
|
|
//m_cPayItem.OCCUR_ENTRY_19 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardNo].Trim(); //웰컴카드번호
|
|
//m_cPayItem.OCCUR_ENTRY_20 = GetPayDtlCdToPayDtlName(m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01); // 결제수단명
|
|
//m_cPayItem.OCCUR_ENTRY_21 = GetPayDtlCdToCashBillYn(m_cPayItem.PAY_WAY_CD, m_cPayItem.PAY_DTL_CD_01); // 현금영수증 발행여부
|
|
//m_cPayItem.OCCUR_ENTRY_22 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sHPCustNo].Trim(); // hpc 회원번호
|
|
//m_cPayItem.OCCUR_ENTRY_23 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sCardDiv].Trim(); // 입력구분(C:실물카드,A: 해피포인트)
|
|
//m_cPayItem.OCCUR_ENTRY_24 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sRemainCnt].Trim(); // 잔여횟수
|
|
//m_cPayItem.OCCUR_ENTRY_25 = aRecv[Column.WELCOMECARD_DC_RECV.SEQ.sTotDcAmt].Trim(); // 총할인금액
|
|
|
|
//m_cPayItem.CANCEL_DIV = PosConst.CANCEL_DIV.CANCEL;
|
|
}
|
|
sRet = UserCom.RST_OK;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
ex.Message);
|
|
|
|
return sRet;
|
|
}
|
|
|
|
return sRet;
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 해피앱 고객등록 전송
|
|
public string HPAppClientRegister(string[] sParam)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
string sTradeDiv = sParam.Length >= 1 ? sParam[0] : "";
|
|
string sWccType = sParam.Length >= 2 ? sParam[1] : "";
|
|
string sInputCardNo = sParam.Length >= 3 ? sParam[2] : "";
|
|
string sInputType = sParam.Length >= 4 ? sParam[3] : "";
|
|
string sReqDivCd = sParam.Length >= 5 ? sParam[4] : "";
|
|
string sInputHPWccNo = sParam.Length >= 6 ? sParam[5] : "";
|
|
string sReadingHPData = sParam.Length >= 7 ? sParam[6] : "";
|
|
|
|
string sAppCardNo = "";
|
|
string sInEncData = "";
|
|
string sInPutData = "";
|
|
|
|
try
|
|
{
|
|
if (m_cTrnStatus.Head.TradeDiv != ItemConst.TRAN_DIV.NORMAL) return sRet;
|
|
if (m_cPosStatus.Base.TrainingFlag == "1" || m_cPosStatus.Mst.TestStorYn == "1") return sRet;
|
|
if (sReadingHPData == "") return sRet;
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[HPAppClientRegister] " +
|
|
" sTradeDiv :" + sTradeDiv + "," +
|
|
" sWccType :" + sWccType + "," +
|
|
" sInputCardNo :" + sInputCardNo + "," +
|
|
" sInputType :" + sInputType + "," +
|
|
" sReqDivCd :" + sReqDivCd + "," +
|
|
" sInputHPWccNo :" + sInputHPWccNo + "," +
|
|
" sReadingHPData :" + sReadingHPData
|
|
);
|
|
//#20180701 웰컴카드 번호 16자리 이상인 경우 16자리만 처리 start
|
|
if (sInputCardNo.Length > 16)
|
|
{
|
|
sInputCardNo = sInputCardNo.Substring(0,16);
|
|
}
|
|
//#20180701 웰컴카드 번호 16자리 이상인 경우 16자리만 처리 end
|
|
|
|
// 추가정보 생성
|
|
string sAddInfo = "";
|
|
sAddInfo += CmUtil.RPadH("", 10); //요청 사용자ID
|
|
sAddInfo += CmUtil.RPadH(sReqDivCd, 2); //요청구분코드 40:웰컴카드등록, 41:웰컴카드해지
|
|
sAddInfo += CmUtil.RPadH(sInputCardNo, 160); //Filler 웰컴카드번호(20자리)
|
|
sAddInfo += CmUtil.RPadH("", 28); //VReserved
|
|
|
|
if (sReadingHPData == PosConst.WELCOMECARD_MSG.HP_REGISTER_DATA)
|
|
{
|
|
ArrayList alEtcItem = (ArrayList)StateObject.GetItemObject(Column.TR_ETC.ITEM);
|
|
foreach (Column.TR_ETC.DATA cEtcItem in alEtcItem)
|
|
{
|
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) continue;
|
|
if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM && cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) continue;
|
|
if (cEtcItem.OCCUR_ENTRY_10 == "") continue; //HCP회원번호
|
|
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") continue; //해피앱여부 20180628 체크안하도록수정
|
|
sAppCardNo = cEtcItem.OCCUR_ENTRY_14;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// 조회 데이터 획득
|
|
Column.TR_ETC.DATA cEtcItem = null;
|
|
cEtcItem = new Column.TR_ETC.DATA();
|
|
cEtcItem = (Column.TR_ETC.DATA)m_cHappyPoint.GetPayment(new string[] { });
|
|
|
|
if (cEtcItem.CANCEL_DIV == ItemConst.PAY_CANCEL_DIV.CANCEL) return UserCom.RST_ERR;
|
|
if (cEtcItem.ETC_WAY_CD != ItemConst.TR_ITEM_ID.ETC_INFO_ITEM || cEtcItem.ETC_DTL_CD_01 != ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT) return UserCom.RST_ERR;
|
|
if (cEtcItem.OCCUR_ENTRY_10 == "") return UserCom.RST_ERR; //HCP회원번호
|
|
//if (cEtcItem.OCCUR_ENTRY_12 != "Y") return UserCom.RST_ERR; //해피앱여부 20180628 체크안하도록수정
|
|
|
|
//#20180628 start
|
|
//기존
|
|
/*
|
|
//sAppCardNo = cEtcItem.OCCUR_ENTRY_14;
|
|
sAppCardNo = cEtcItem.CanFiller3;
|
|
*/
|
|
//변경
|
|
sAppCardNo = cEtcItem.OCCUR_ENTRY_14;
|
|
//#20180628 end
|
|
}
|
|
|
|
if (sAppCardNo.EndsWith("=") == false)
|
|
{
|
|
sAppCardNo = sAppCardNo + "=";
|
|
}
|
|
|
|
// 암호화
|
|
EncryptedCardNo(sAppCardNo, ref sInPutData, ref sInEncData);
|
|
|
|
// 승인업체 코드 조회
|
|
string sVanCD = GetPayDtlCdToVanCode(ItemConst.TR_ITEM_ID.ETC_INFO_ITEM, ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT);
|
|
if (sVanCD == "")
|
|
{
|
|
WinManager.ErrorMessage(POS_MESSAGE.ERROR.MSG_0563);
|
|
return sRet;
|
|
}
|
|
|
|
// 포인트 조회
|
|
string[] saRsp = null;
|
|
sRet = ExecutePointIrt(sTradeDiv, ItemConst.TR_ITEM_ID.ETC_INFO_ITEM, ItemConst.TR_ITEM_ID.ETC_INFO.SAVEPOINT, sVanCD, PosConst.POS_VAN_MASTER.TRADE_ID.VAN_POT_QRY_A, "HPY", sInputType, sInPutData, sInEncData, 0, "", "", "", "", "", "", sAddInfo, ref saRsp, "", "", "1");
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[HPAppClientRegister] ExecutePointIrt (Result :" + sRet.ToString() + ")");
|
|
|
|
if (sRet != UserCom.RST_OK)
|
|
{
|
|
sRet = UserCom.RST_ERR;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
ex.Message);
|
|
|
|
sRet = UserCom.RST_ERR;
|
|
}
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
|
|
#region 망취소 데이터 로컬 db 저장
|
|
private string Wcc_Net_log_Insert(string aType, string aCardNo, Hashtable SendData, Hashtable RecvData)
|
|
{
|
|
string sRet = UserCom.RST_ERR;
|
|
|
|
int iSeq = 0;
|
|
string sQry = "";
|
|
string sQuery = "";
|
|
string sCardNo = "";
|
|
string sSendText = "";
|
|
string sRecvText = "";
|
|
DataTable dtSeqCnt = null;
|
|
DataRow drSeqCnt = null;
|
|
try
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[Wcc_Net_log_Insert] Start! (aCardNo :" + aCardNo + ")");
|
|
|
|
sCardNo = aCardNo;
|
|
|
|
|
|
if (SendData != null && RecvData.Count != 0)
|
|
{
|
|
sSendText = SendData[Column.WELCOMECARD.DATA].ToString();
|
|
}
|
|
if (RecvData != null && RecvData.Count != 0)
|
|
{
|
|
sRecvText = RecvData[Column.WELCOMECARD.DATA].ToString();
|
|
}
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[Wcc_Net_log_Insert] sSendText! " + sSendText + "");
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[Wcc_Net_log_Insert] sRecvText! " + sRecvText + "");
|
|
|
|
sQuery = " SELECT ISNULL(MAX(SEQ) + 1,0) AS SEQ ";
|
|
sQuery += " FROM POSLOG..WCC_NET_LOG";
|
|
sQuery += " WHERE CMP_CD = '" + m_cPosStatus.Base.CmpCd + "'";
|
|
sQuery += " AND SALE_DT = '" + m_cPosStatus.Base.SaleDate + "'";
|
|
sQuery += " AND STOR_CD = '" + m_cPosStatus.Base.SubShopNo + "'";
|
|
sQuery += " AND POS_NO = '" + m_cPosStatus.Base.PosNo + "'";
|
|
|
|
m_cSqlDbService.DBSelect(sQuery, out dtSeqCnt);
|
|
|
|
if (dtSeqCnt != null && dtSeqCnt.Rows.Count > 0)
|
|
{
|
|
drSeqCnt = dtSeqCnt.Rows[0];
|
|
iSeq = Convert.ToInt32(CmUtil.GetDataRowStr(drSeqCnt, "SEQ"));
|
|
}
|
|
|
|
sQuery = "";
|
|
sQuery += " INSERT INTO POSLOG..WCC_NET_LOG(CMP_CD,SALE_DT,STOR_CD,POS_NO,SEQ,INPUT_TYPE,INPUT_CARD_NO,SEND_TEXT,RESV_TEXT,SEND_YN,INS_DT) ";
|
|
sQuery += " VALUES('{0}'";
|
|
sQuery += " ,'{1}'";
|
|
sQuery += " ,'{2}'";
|
|
sQuery += " ,'{3}'";
|
|
sQuery += " ,'{4}'";
|
|
sQuery += " ,'{5}'";
|
|
sQuery += " ,'{6}'";
|
|
sQuery += " ,'{7}'";
|
|
sQuery += " ,'{8}'";
|
|
sQuery += " ,'{9}'";
|
|
sQuery += " ,'{10}')";
|
|
sQry = string.Format(sQuery
|
|
, m_cPosStatus.Base.CmpCd
|
|
, m_cPosStatus.Base.SaleDate
|
|
, m_cPosStatus.Base.SubShopNo
|
|
, m_cPosStatus.Base.PosNo
|
|
, iSeq
|
|
, aType
|
|
, sCardNo
|
|
, sSendText
|
|
, sRecvText
|
|
, "0"
|
|
, DateTime.Now.ToString("yyyyMMddHHmmss"));
|
|
int iQry = 0;
|
|
iQry = m_cSqlDbService.DBExecuteNonQuery(new string[] { sQry });
|
|
|
|
if (iQry == 1)
|
|
{
|
|
sRet = UserCom.RST_OK;
|
|
}
|
|
else
|
|
{
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[Wcc_Net_log_Insert] DBExecuteNonQuery Fail! [iQry :" + iQry.ToString() + "]" + sQry);
|
|
|
|
sRet = UserCom.RST_ERR;
|
|
}
|
|
|
|
|
|
UserLog.WriteLogFile(UserCom.LOG_IOS,
|
|
System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
"[Wcc_Net_log_Insert] End! (Result :" + sRet.ToString() + ")");
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
WinManager.ExceptionMessage(System.Reflection.Assembly.GetExecutingAssembly().ManifestModule.Name,
|
|
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.Name + "." +
|
|
System.Reflection.MethodBase.GetCurrentMethod().Name + "()",
|
|
ex.Message);
|
|
|
|
sRet = UserCom.RST_ERR;
|
|
}
|
|
return sRet;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|
|
|