예제 #1
0
        /// <summary>
        /// 주문 파라메터를 주문 SP 파라메터로 변환
        /// </summary>
        /// <param name="paymentParam"></param>
        /// <returns></returns>
        public static PaymentOrderMultiParamT ConvertRequestInfo2OrderParam(PaymentRequestInfoT paymentParam)
        {
            PaymentOrderMultiParamT orderParam = new PaymentOrderMultiParamT();

            #region set orderParam

            orderParam.OrderWayKind = paymentParam.OrderWayKind;
            orderParam.PosShopCd = paymentParam.PosShopCd;
            orderParam.PosClassCd = paymentParam.PosClassCd;
            orderParam.PosClassKind = paymentParam.PosClassKind;
            orderParam.PrimaryCheckValue = paymentParam.PrimaryCheckValue;
            orderParam.ShoppingGuideNo = paymentParam.ShoppingGuideNo;
            orderParam.InterestGroupNo = paymentParam.InterestGroupNo;
            orderParam.BasketPID = paymentParam.BasketPid;
            orderParam.GdSelNo = paymentParam.GdSelNo;
            orderParam.OrderIdx = paymentParam.SelectedOrderIdxs;
            orderParam.JaehuID = paymentParam.CurrentJaehuID;
            orderParam.JaehuIDs = paymentParam.JaehuID;
            orderParam.GoodsCode = paymentParam.ItemNo;
            orderParam.OrderNo = paymentParam.OrderNo;
            orderParam.OrderPrice = paymentParam.OrderPrice;
            orderParam.OrderCnts = paymentParam.OrderCounts;
            //orderParam.SelItemPrice = paymentParam.SelItemPrice;
            //orderParam.InventorySeqNo = paymentParam.InventorySeqNo;
            //orderParam.OptInventorySeqNo = paymentParam.InventorySeqNoOpt;
            orderParam.ReservationRsvNo = paymentParam.ReservationRsvNo;
            orderParam.PolicyNos = paymentParam.PolicyNo;
            orderParam.DeliveryGoodsYN = paymentParam.DeliveryGoodsYN;
            orderParam.OnlineTransportSid = paymentParam.OnlineTransportSid;
            //orderParam.JehuGdCds = paymentParam.Jehugoodscode;
            //orderParam.JehuOrderCnts = paymentParam.Jehuordercnts;
            //orderParam.JehuOrderNo = paymentParam.Jehuorderno;
            //orderParam.JehuLType = paymentParam.Jehuorderltype;
            //orderParam.JehuAtype = paymentParam.Jehuorderatype;
            //orderParam.GiftPackYn = paymentParam.GiftPackYN;
            //orderParam.GiftShopYN = paymentParam.GiftShopYN;
            orderParam.RealCostPrice = paymentParam.RealCostPrice;
            orderParam.RealDealerCostPrice = paymentParam.RealDealerCostPrice;
            orderParam.RealDealerCostBasisNo = paymentParam.RealDealerCostBasisNo;
            orderParam.Sid = paymentParam.Sid;
            orderParam.PlusDisBcCondNos = paymentParam.PlusDisBcCondNos;
            orderParam.PlusDisSatisCnts = paymentParam.PlusDisSatisCounts;
            orderParam.SetCostScdNos = paymentParam.SetCostScdNos;
            orderParam.SetCondScdNos = paymentParam.SetCondScdNos;
            orderParam.PackCostPcdNos = paymentParam.PackCostPcdNos;
            orderParam.PackCondPcdNos = paymentParam.PackCondPcdNos;
            orderParam.PackCostSatisCnts = paymentParam.PackCostSatisCounts;
            //orderParam.AuctionNo = paymentParam.AucNo;
            //orderParam.AuctionBidPrice = Validate.IsNumeric(paymentParam.AuctionBidPrice) ? Convert.ToDecimal(paymentParam.AuctionBidPrice) : 0;
            //orderParam.AuctionBidAmt = Validate.IsNumeric(paymentParam.AuctionBidAmt) ? Convert.ToInt32(paymentParam.AuctionBidAmt) : 0;
            //orderParam.BidNo = Validate.IsNumeric(paymentParam.BidNo) ? Convert.ToInt32(paymentParam.BidNo) : 0;
            orderParam.CustNo = paymentParam.CustNo;
            orderParam.LoginID = paymentParam.LoginID;
            orderParam.MemberWay = paymentParam.MemberType;
            orderParam.BuyerName = paymentParam.BuyerName;
            orderParam.BuyerTelNo = paymentParam.BuyerTelNo;
            orderParam.BuyerEmail = paymentParam.BuyerEmail;
            orderParam.BuyerSSN = string.Empty;	// 비회원 주문은 없다
            orderParam.BuyerIdentificationNo = string.Empty;	// 비회원 주문은 없다
            orderParam.PayAuthSeq = paymentParam.PayAuthSeq;
            orderParam.CardCash = paymentParam.CardCash;
            orderParam.AcntType = paymentParam.AcntType;
            orderParam.PaymentCode = paymentParam.PaymentCode;
            orderParam.SettleLimitKey = paymentParam.SettleLimitKey;
            orderParam.OnCreditYN = paymentParam.OncreditYN;
            orderParam.Gbank = paymentParam.Gbank;
            orderParam.DepositNm = paymentParam.DepositName;
            orderParam.Vaccount = paymentParam.Vaccount;
            orderParam.VacntNo = paymentParam.VacntNo;
            orderParam.GbankGubun = paymentParam.GbankGubun;
            orderParam.ForeignMoney = paymentParam.ForeignMoney;
            //orderParam.TransactionNo = paymentParam.TransTransactionConfirmNo;
            //orderParam.TransBankNo = paymentParam.TransBankNo;
            //orderParam.TransOrderNo = paymentParam.TransOrderNo;
            //orderParam.TransSeqNo = Validate.IsNumeric(paymentParam.TransSeqNo) ? Convert.ToInt16(paymentParam.TransSeqNo) : (short)0;
            orderParam.IsCorpCard = paymentParam.IsCorpCard;
            orderParam.VirtualCardKind = paymentParam.VirtualCardKind;
            orderParam.CardNumber = paymentParam.CardNumber;
            orderParam.Installmonth = paymentParam.Installmonth;
            orderParam.FreeInterestNo = paymentParam.FreeInterestNo;
            orderParam.HalbuType = paymentParam.HalbuType;
            orderParam.CardYear = paymentParam.CardYear;
            orderParam.CardMonth = paymentParam.CardMonth;
            orderParam.CardPwd = paymentParam.CardPwd;
            orderParam.SocialNo2 = paymentParam.SocialNo2;
            orderParam.KVPSessionkey = paymentParam.KvpSessionkey;
            orderParam.KVPEncdata = paymentParam.KvpEncdata;
            orderParam.KVPCardCode = paymentParam.KvpCardcode;
            orderParam.Xid = paymentParam.Xid;
            orderParam.Eci = paymentParam.Eci;
            orderParam.Cavv = paymentParam.Cavv;
            orderParam.PaySaveCardYN = paymentParam.PaySaveCardYN;
            //orderParam.FrCode = paymentParam.FrCode;
            //orderParam.CellPhoneHpNo = paymentParam.CellphoneAuthHpNo;
            //orderParam.CellPhoneAuthKind = paymentParam.CellphoneAuthKind;
            //orderParam.CellPhoneSessionKey = paymentParam.CellphoneSessionkey;
            //orderParam.CellPhoneAuthNo = paymentParam.CellphoneAuthNo;
            //orderParam.CellPhoneIdentificationNo = paymentParam.CellPhoneIdentificationNo;
            orderParam.PaypalNo = Validate.IsNumeric(paymentParam.PaypalNo) ? Convert.ToInt32(paymentParam.PaypalNo) : 0;
            orderParam.PaypalToken = paymentParam.PaypalToken;
            orderParam.BibitNo = paymentParam.BibitNo;
            //orderParam.TCashID = paymentParam.TcashTid;
            orderParam.TaxIssueYN = paymentParam.TaxIssueYN;
            orderParam.CashIssueYN = paymentParam.CashIssueYN;
            orderParam.TaxChargeTeam = paymentParam.TaxChargeTeam;
            orderParam.TaxChargeName = paymentParam.TaxChargeName;
            orderParam.TaxRegNo = paymentParam.TaxRegNo;
            orderParam.TaxCompanyNm = paymentParam.TaxCompanyName;
            orderParam.TaxBoss = paymentParam.TaxBoss;
            orderParam.TaxAddress = paymentParam.TaxAddress;
            orderParam.TaxRcvAddress = paymentParam.TaxRcvAddress;
            orderParam.TaxZipCode = paymentParam.TaxZipCode;
            orderParam.TaxCategory = paymentParam.TaxCategory;
            orderParam.TaxKind = paymentParam.TaxKind;
            orderParam.TaxEmail = paymentParam.TaxEmail;
            orderParam.TaxPhone = paymentParam.TaxPhone;
            orderParam.TaxMemo = paymentParam.TaxMemo;
            orderParam.CashUseType = (string.IsNullOrEmpty(paymentParam.CashUseType) || paymentParam.CashUseType == "0") ? false : true;
            orderParam.CashRegNo = paymentParam.CashRegNo;
            orderParam.CashName = paymentParam.CashName;
            orderParam.CashPhone = paymentParam.CashPhone;
            orderParam.CashEmail = paymentParam.CashEmail;
            orderParam.CashReceiptYN = paymentParam.CashReceiptYN;
            orderParam.IdFlag = paymentParam.CashIdFlag;
            orderParam.AddressNo = 0;
            orderParam.ReceiverZipCode = paymentParam.ReceiverZipCode;
            orderParam.ReceiverAddr1 = paymentParam.ReceiverAddress1;
            orderParam.ReceiverAddr2 = paymentParam.ReceiverAddress2;
            orderParam.ReceiverName = paymentParam.ReceiverName;
            orderParam.ReceiverHpNo = paymentParam.ReceiverHpNo;
            orderParam.ReceiverPhoneNo = paymentParam.ReceiverPhoneNo;
            orderParam.Interval = paymentParam.Interval;
            orderParam.DelMemo = paymentParam.DelMemo;
            //orderParam.CouponGiftGroupNo = Validate.IsNumeric(paymentParam.CouponGiftGroupNo) ? Convert.ToInt32(paymentParam.CouponGiftGroupNo) : 0;
            //orderParam.SendGiftYN = paymentParam.SendGiftYN;
            //orderParam.GiftReceiverCustNo = paymentParam.GiftReceiverCustNo;
            //orderParam.GiftRecevierNm = paymentParam.GiftReceiverName;
            //orderParam.GiftReceiverHp = paymentParam.GiftReceiverHpNo;
            //orderParam.GiftReceiverId = paymentParam.GiftReceiverID;
            //orderParam.GiftReceiverEmail = paymentParam.GiftReceiverEmail;
            //orderParam.GiftMemo = paymentParam.GiftMemo;
            //orderParam.SenderInfoKindI = paymentParam.SenderInfoKindI;
            //orderParam.SenderInfoKindE = paymentParam.SenderInfoKindE;
            //orderParam.SenderInfoKindH = paymentParam.SenderInfoKindH;
            //orderParam.SendGiftWay = paymentParam.SendGiftWay;
            //orderParam.MsgKind = paymentParam.GiftMessageKind;
            //orderParam.GiftSenderNm = paymentParam.GiftSenderName;
            //orderParam.GiftSenderId = paymentParam.GiftSenderID;
            //orderParam.GiftSenderEmail = paymentParam.GiftSenderEmail;
            //orderParam.GiftSenderHpNo = paymentParam.GiftSenderHpNo;
            orderParam.RemoteAddr = paymentParam.RemoteAddress;
            orderParam.ServerIPAddr = paymentParam.ServerIPAddress;
            orderParam.ReceiveMailYN = paymentParam.ReceiveMailYn;
            orderParam.ReceiveSmsYN = paymentParam.ReceiveSmsYN;
            orderParam.GlinkNations = paymentParam.GlinkNation;
            //orderParam.OkCashBagSaveYn = paymentParam.OkcashbagSaveYN;
            //orderParam.Pwd = string.Empty;	// 비회원 주문 없다
            orderParam.OuterOrderNos = paymentParam.OuterOrderNos;
            //orderParam.PartnerGiftMsg = paymentParam.PartnerGiftMessage;
            //orderParam.PartnerGiftMsgReceiver = paymentParam.PartnerGiftMessageReceiver;
            //orderParam.PartnerGiftMsgSender = paymentParam.PartnerGiftMessageSender;

            #endregion

            return orderParam;
        }
예제 #2
0
        public PaymentGEPPaymentProcessResultT PaymentExecuteOrder(
			PaymentOrderMultiParamT orderParam
			, PaymentOrderMultiParamEtcT orderParamEtc
			, PaymentInfoCheckT payMethodtInfo
			, List<PaymentDataOrderInfoT> paymentDataOrderInfoList
			, List<PaymentDataCostBasisInfoT> paymentDataCostBasisInfoList
			, List<PaymentOrderItemCostInfoT> paymentOrderItemCostInfoList)
        {
            PaymentGEPPaymentProcessResultT orderResult = new PaymentGEPPaymentProcessResultT();
            PaymentProcessQueryBiz biz = new PaymentProcessQueryBiz();

            orderResult.Result = new GEPBaseResultT();

            string acntNo = string.Empty;
            string cashpayWay = "M";
            int affectedRowCount = 0;

            #region 미리 처리할 것들

            #endregion

            #region 주문 중 수량 입력

            try
            {
                biz.UpdatePaymentOrderCountToOrderBufSell(orderParam.PackNo);
            }
            catch
            {
                throw new PaymentProcessBizException(-742, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion

            #region 결제 수단 처리

            // 현금 계좌 생성
            if (orderParam.AcntType.Equals("A3", StringComparison.InvariantCultureIgnoreCase))
            {
                if (orderParam.CardCash.Equals("CASH", StringComparison.InvariantCultureIgnoreCase))
                {
                    // 일반계좌 생성
                    if (string.IsNullOrEmpty(orderParam.Vaccount) || orderParam.Vaccount.Length < 3)
                    {
                        cashpayWay = "M";

                        if (orderParam.MemberWay.Equals("NON", StringComparison.InvariantCultureIgnoreCase))
                        {
                            acntNo = "300792725";
                        }
                        else
                        {
                            PaymentCashAccountInfoT customerCashAccountInfo = biz.GetCustomerCashAccountInfo(orderParam.CustNo, cashpayWay);

                            acntNo = customerCashAccountInfo != null ? customerCashAccountInfo.AcntNo : string.Empty;
                        }
                    }
                    else // 가상계좌 생성
                    {
                        cashpayWay = "V";

                        // 잘못된 가상계좌 튕겨내기
                        if (!biz.GetExistAccountMCash(orderParam.CustNo, orderParam.VacntNo, cashpayWay, orderParam.Vaccount).IsExist)
                        {
                            throw new PaymentProcessBizException(-334, "가상계좌 정보에 이상이 있습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                        }

                        acntNo = orderParam.Vaccount;

                    }

                    if (string.IsNullOrEmpty(acntNo))
                    {
                        throw new PaymentProcessBizException(-321, "온라인 입금을 위한 계좌 정보를 찾지 못했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                    }
                }
            }
            else if (orderParam.AcntType.Equals("I1", StringComparison.InvariantCultureIgnoreCase)) // Paypal 계좌 생성
            {
                if (orderParam.CardCash.Equals("GBANK_PAYPAL", StringComparison.InvariantCultureIgnoreCase))
                {
                    cashpayWay = "P";

                    try
                    {
                        PaymentGlobalAccountInfoT customerGlobalAccountInfo = biz.GetCustomerGlobalAccountInfo(orderParam.CustNo, cashpayWay);
                        acntNo = customerGlobalAccountInfo != null ? customerGlobalAccountInfo.AcntNo : string.Empty;

                        if (string.IsNullOrEmpty(acntNo) || acntNo.Length < 3)
                        {
                            string result = biz.MakePersonalAccount(orderParam.CustNo, orderParam.AcntType, orderParam.Gbank.ToString()
                                , string.Empty, string.Empty, string.Empty, 0, string.Empty, string.Empty
                                , string.Empty, string.Empty, string.Empty, string.Empty, orderParam.CardCash
                                , string.Empty, string.Empty, string.Empty, string.Empty, string.Empty, 0, null
                                , string.Empty, "Y", 0, string.Empty);

                            acntNo = result;
                        }
                    }
                    catch
                    {
                        throw new PaymentProcessBizException(-333, "외화입금 계좌 생성중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                    }

                    if (string.IsNullOrEmpty(acntNo))
                    {
                        throw new PaymentProcessBizException(-322, "온라인 입금을 위한 계좌 정보를 찾지 못했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                    }
                    else if (acntNo == "-1")
                    {
                        throw new PaymentProcessBizException(-333, "외화입금 계좌 생성중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                    }

                }
            }
            else if (orderParam.AcntType.Equals("A2", StringComparison.InvariantCultureIgnoreCase)
                || orderParam.AcntType.Equals("A7", StringComparison.InvariantCultureIgnoreCase)) // 카드 계좌 생성
            {
                cashpayWay = "M";

                try
                {
                    decimal totalAcntMoney = paymentDataOrderInfoList.Sum(x => (decimal)(x.OrderPrice * x.OrderCnt) + x.SelItemPrice + x.DeliveryFee - x.CostPrice);

                    string result = biz.MakePersonalAccount(orderParam.CustNo, orderParam.AcntType, payMethodtInfo.MasterCard
                        , orderParam.CardNumber, orderParam.CardYear, orderParam.CardMonth, orderParam.Installmonth, orderParam.CardPwd, orderParam.SocialNo2
                        , orderParam.KVPCardCode, payMethodtInfo.SessionKey, payMethodtInfo.EncData, payMethodtInfo.AppType, string.Empty
                        , string.Empty, string.Empty, string.Empty, string.Empty, orderParam.Eci, 0, null
                        , orderParamEtc.OrderJaehuID, orderParamEtc.DirectYN, totalAcntMoney, orderParam.HalbuType);

                    acntNo = result;
                }
                catch
                {
                    throw new PaymentProcessBizException(-338, "카드 계좌 처리작업중 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                if (string.IsNullOrEmpty(acntNo) || acntNo == "-1")
                {
                    throw new PaymentProcessBizException(-328, "카드 계좌 생성중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }
            else
            {
                throw new PaymentProcessBizException(-376, "결제 정보가 잘못 되었습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            // PayPal Express CheckOut
            if (orderParam.CardCash.Equals("GBANK_PAYPAL", StringComparison.InvariantCultureIgnoreCase)
                && orderParam.PaypalToken.Trim().Length != 0)
            {
                if (biz.GetExistPaypalPaymentInfo(orderParam.PaypalToken).IsExist)
                {
                    throw new PaymentProcessBizException(-727, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                try
                {

                    PaymentPaypalPaymentInfoT paypalPaymentInfo = biz.GetPaypalPaymentInfo(orderParam.PaypalToken);

                    biz.UpdatePaypalPaymentInfo(orderParam.PackNo, orderParam.PaypalToken, paypalPaymentInfo == null || string.IsNullOrEmpty(paypalPaymentInfo.CustNo) ? orderParam.CustNo : string.Empty);
                }
                catch
                {
                    throw new PaymentProcessBizException(-728, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            // 카드 정보 기록
            if (orderParam.AcntType.Equals("A2", StringComparison.InvariantCultureIgnoreCase)
               || orderParam.AcntType.Equals("A7", StringComparison.InvariantCultureIgnoreCase))
            {
                try
                {
                    biz.InsertCardInfo(orderParam.PackNo, payMethodtInfo.SessionKey, payMethodtInfo.EncData, payMethodtInfo.AppType
                        , orderParam.Installmonth, orderParam.CardPwd, orderParam.RemoteAddr, orderParam.Eci
                        , (string.IsNullOrEmpty(orderParam.PaySaveCardYN) ? "N" : orderParam.PaySaveCardYN)
                        , orderParam.SocialNo2, orderParam.HalbuType, orderParam.KVPCardCode, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-330, "주문카드 정보 기록중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 경품권 서비스 관련

            if (orderParam.MemberWay.Equals("MEM", StringComparison.InvariantCultureIgnoreCase)
                && !orderParam.OrderWayKind.Equals("BAR", StringComparison.InvariantCultureIgnoreCase))
            {
                try
                {
                    int insertedRowCount = biz.InsertSticketAccHistory(orderParam.PackNo, orderParam.CustNo, orderParam.LoginID);

                    if (insertedRowCount > 0)
                    {
                        if (biz.GetExistSticketAccount(orderParam.CustNo).IsExist)
                        {
                            biz.UpdateStickerAccount(orderParam.PackNo, orderParam.CustNo, orderParam.LoginID, orderParam.OrderDateTime);
                        }
                        else
                        {
                            biz.InsertStickerAccount(orderParam.PackNo, orderParam.CustNo, orderParam.LoginID);
                        }
                    }
                }
                catch
                {
                    throw new PaymentProcessBizException(-417, "경품권 서비스 관련 오류 발생.");
                }
            }

            #endregion

            #region 세금계산서 및 현금영수증 요청 처리

            if (orderParam.TaxRegNo.Length >= 9)
            {
                string cardKind = (orderParam.IsCorpCard.Equals("Y", StringComparison.InvariantCultureIgnoreCase) ? "Y" : (orderParam.IsCorpCard.Equals("N", StringComparison.InvariantCultureIgnoreCase) ? "N" : string.Empty));

                try
                {
                    biz.InsertRequestTaxCheck(orderParam.PackNo, orderParam.CustNo, orderParam.TaxRegNo
                        , orderParam.TaxCompanyNm, orderParam.TaxBoss, orderParam.TaxAddress, orderParam.TaxRcvAddress
                        , orderParam.TaxZipCode, orderParam.TaxCategory, orderParam.TaxKind, cardKind
                        , orderParam.TaxEmail, orderParam.TaxPhone, orderParam.TaxMemo
                        , orderParam.TaxChargeName, orderParam.TaxChargeName, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-808, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다");
                }

                if (orderParam.CashRegNo.Length >= 9)
                {
                    if (paymentDataOrderInfoList
                        .Where(x => x.TaxIssueYn.Equals("N", StringComparison.InvariantCultureIgnoreCase) && x.CashIssueYn.Equals("Y", StringComparison.InvariantCultureIgnoreCase))
                        .Sum(x => (decimal)(x.OrderPrice * x.OrderCnt) + x.SelItemPrice + x.DeliveryFee - x.CostPrice) >= 10)
                    {
                        try
                        {
                            List<PaymentDataOrderInfoT> cashReceiptDataOrderList = paymentDataOrderInfoList.Where(x => x.TaxIssueYn.Equals("N", StringComparison.InvariantCultureIgnoreCase) && x.CashIssueYn.Equals("Y", StringComparison.InvariantCultureIgnoreCase)).ToList<PaymentDataOrderInfoT>();

                            foreach (PaymentDataOrderInfoT item in cashReceiptDataOrderList)
                            {
                                biz.InsertCashReceipt(orderParam.CashUseType, orderParam.CashRegNo, orderParam.CashName
                                    , item.OrderNo, item.ItemNo, orderParam.CashPhone, orderParam.CashEmail
                                    , (item.SelItemPrice + item.DeliveryFee - item.CostPrice), orderParam.CustNo
                                    , "Y", orderParam.IdFlag);
                            }
                        }
                        catch
                        {
                            throw new PaymentProcessBizException(-809, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다");
                        }
                    }
                }
            }
            else
            {
                if (orderParam.CashRegNo.Length >= 9)
                {
                    if (paymentDataOrderInfoList
                        .Where(x => x.CashIssueYn.Equals("Y", StringComparison.InvariantCultureIgnoreCase))
                        .Sum(x => (decimal)(x.OrderPrice * x.OrderCnt) + x.SelItemPrice + x.DeliveryFee - x.CostPrice) >= 10)
                    {
                        try
                        {
                            List<PaymentDataOrderInfoT> cashReceiptDataOrderList = paymentDataOrderInfoList.Where(x => x.CashIssueYn.Equals("Y", StringComparison.InvariantCultureIgnoreCase)).ToList<PaymentDataOrderInfoT>();

                            foreach (PaymentDataOrderInfoT item in cashReceiptDataOrderList)
                            {
                                biz.InsertCashReceipt(orderParam.CashUseType, orderParam.CashRegNo, orderParam.CashName
                                    , item.OrderNo, item.ItemNo, orderParam.CashPhone, orderParam.CashEmail
                                    , (item.SelItemPrice + item.DeliveryFee - item.CostPrice), orderParam.CustNo
                                    , "Y", orderParam.IdFlag);
                            }
                        }
                        catch
                        {
                            throw new PaymentProcessBizException(-810, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다");
                        }
                    }
                }
            }

            #endregion

            #region 공급원가 입력

            try
            {
                biz.InsertPaymentDsorderSttlData(paymentOrderItemCostInfoList);
            }
            catch
            {
                throw new PaymentProcessBizException(-741, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion

            #region 할인정보 입력

            if (paymentDataCostBasisInfoList.Count > 0)
            {
                try
                {
                    biz.InsertDsorderCostbasisInfo(orderParam.PackNo, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-113, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 현금성 도용 예외처리

            if (biz.GetExistCashTypeGoods(orderParam.PackNo).IsExist)
            {
                if (orderParam.AcntType.Equals("AM", StringComparison.InvariantCultureIgnoreCase) ||
                    orderParam.AcntType.Equals("A8", StringComparison.InvariantCultureIgnoreCase) ||
                    (orderParam.AcntType.Equals("A3", StringComparison.InvariantCultureIgnoreCase) &&
                    cashpayWay.Equals("V", StringComparison.InvariantCultureIgnoreCase)))
                {
                    throw new PaymentProcessBizException(-10, "결제가 불가능 합니다.");
                }
            }

            #endregion

            #region 사자 주문 입력

            // dsorderindex 테이블에 입력하기
            affectedRowCount = 0;
            try
            {
                affectedRowCount = biz.InsertDsorderIndex(orderParam.PackNo, orderParam.OrderDateTime);
            }
            catch
            {
                throw new PaymentProcessBizException(-708, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            if (affectedRowCount != orderParam.ItemCount)
            {
                throw new PaymentProcessBizException(-708, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            // dsorder 테이블에 입력하기
            affectedRowCount = 0;
            try
            {
                affectedRowCount = biz.InsertDsorder(orderParam.PackNo, orderParam.CustNo, orderParam.TaxRegNo
                    , acntNo, orderParam.ReceiverName, orderParam.ReceiverZipCode, orderParam.ReceiverAddr1, orderParam.ReceiverAddr2
                    , orderParam.AcntType, orderParam.ReceiverPhoneNo, orderParam.ReceiverHpNo, orderParam.BuyerEmail
                    , orderParam.Gbank, orderParam.DepositNm, orderParam.OnCreditYN, orderParam.Vaccount
                    , orderParam.FreeInterestNo, orderParam.HalbuType, orderParam.AddressNo, cashpayWay, orderParam.OrderDateTime);
            }
            catch
            {
                throw new PaymentProcessBizException(-709, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            if (affectedRowCount != orderParam.ItemCount)
            {
                throw new PaymentProcessBizException(-709, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            // dsorder_sub 테이블에 입력하기
            try
            {
                biz.InsertDsorderSub(orderParam.PackNo);
            }
            catch
            {
                throw new PaymentProcessBizException(-720, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion

            #region 필수구성/선택옵션 정보 입력

            try
            {
                biz.InsertDsselorder(orderParam.BasketPID, orderParam.PackNo);
            }
            catch
            {
                throw new PaymentProcessBizException(-710, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion

            #region 필수구성/선택옵션 가격 조작 방지 체크

            PaymentCurrentSelPriceInfoT currentSelPriceInfo = biz.GetCurrentSelPriceInfo(orderParam.PackNo);

            if (currentSelPriceInfo != null)
            {
                if (currentSelPriceInfo.SelItemPriceDb != currentSelPriceInfo.SelItemPriceIn)
                {
                    throw new PaymentProcessBizException(-807, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region G-Plus 카드 쿠폰 사용내용 기록

            if (paymentDataCostBasisInfoList.Any(x => x.BasisKind.Equals("PCP", StringComparison.InvariantCultureIgnoreCase)) && orderParam.PaymentCode.Equals("Po_HN_G", StringComparison.InvariantCultureIgnoreCase))
            {
                string useMonth;

                if (orderParam.OrderDateTime.Day < 5)
                {
                    useMonth = orderParam.OrderDateTime.AddMonths(-1).Year.ToString() + orderParam.OrderDateTime.AddMonths(-1).Month.ToString().PadLeft(2, '0');
                }
                else
                {
                    useMonth = orderParam.OrderDateTime.Year.ToString() + orderParam.OrderDateTime.Month.ToString().PadLeft(2, '0');
                }

                affectedRowCount = 0;
                int gplusCostBasisNo = 0;
            #if DEBUG || PAYMENT_DEBUG
                gplusCostBasisNo = 2238819;
            #else
                gplusCostBasisNo = 2238819;
            #endif
                try
                {
                    affectedRowCount = biz.InsertGlusUsedCouponInfo(orderParam.PackNo, orderParam.CustNo, orderParam.PaymentCode
                        , "SN", useMonth, gplusCostBasisNo, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-118, "배송비 할인쿠폰 적용 에러입니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                if (affectedRowCount > 0)
                {
                    try
                    {
                        biz.UpdateUsedCouponSum(orderParam.CustNo, orderParam.LoginID, useMonth, affectedRowCount, orderParam.OrderDateTime);
                    }
                    catch
                    {
                        throw new PaymentProcessBizException(-119, "배송비 할인쿠폰 적용 에러입니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                    }
                }
            }

            #endregion

            #region 위약금 정보 입력

            if (paymentDataOrderInfoList.Any(x => x.PolicyNo != 0))
            {
                try
                {
                    biz.InsertChargeOffOrder(orderParam.PackNo, orderParam.CustNo, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-504, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 외화입금 정보 입력

            if (orderParam.CardCash.Equals("GBANK_PAYPAL", StringComparison.InvariantCultureIgnoreCase))
            {
                int gubunMethod;
                string paymentMthd;
                decimal gExchangeRate;

                if (orderParam.GbankGubun.Equals("citibank", StringComparison.InvariantCultureIgnoreCase))
                {
                    gubunMethod = 2000;
                    paymentMthd = "02";
                }
                else if (orderParam.GbankGubun.Equals("resonabank", StringComparison.InvariantCultureIgnoreCase))
                {
                    gubunMethod = 30000;
                    paymentMthd = "03";
                }
                else if (orderParam.GbankGubun.Equals("paypal_express", StringComparison.InvariantCultureIgnoreCase))
                {
                    gubunMethod = 110000;
                    paymentMthd = "01";
                }
                else
                {
                    gubunMethod = 10000;
                    paymentMthd = "01";
                }

                try
                {
                    gExchangeRate = biz.GetExchangeRate(paymentMthd, orderParam.OrderDateTime);
                    biz.InsertDsgbankorder(orderParam.PackNo, gubunMethod, paymentMthd, gExchangeRate, orderParam.ForeignMoney, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-335, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

            }

            #endregion

            #region 개인별 할인쿠폰 사용여부 변경

            if (paymentDataCostBasisInfoList.Any(x => x.BasisKind.Equals("PCP", StringComparison.InvariantCultureIgnoreCase)))
            {
                // 쿠폰 사용내역 업데이트
                try
                {
                    biz.UpdateDcouponDetail(orderParam.PackNo, orderParam.CustNo, orderParam.LoginID, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-114, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                // 쿠폰 사용 히스토리 입력
                try
                {
                    biz.InsertOrderCouponHistory(orderParam.PackNo, orderParam.CustNo, orderParam.LoginID, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-115, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 복수구매 할인 정보 기록

            if (paymentDataOrderInfoList.Any(x => x.BundCondNo > 0))
            {
                try
                {
                    biz.InsertBundKeysProc(orderParam.PackNo, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-116, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 세트구매 할인 정보 기록

            if (paymentDataOrderInfoList.Any(x => x.SetCostNo > 0))
            {
                try
                {
                    biz.InsertDsSetCostOrder(orderParam.PackNo, orderParam.LoginID, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-129, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 묶음구매 할인 정보 기록

            if (paymentDataOrderInfoList.Any(x => x.PackCostNo > 0))
            {
                try
                {
                    biz.InsertDsSetCostOrder(orderParam.PackNo, orderParam.LoginID, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-133, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 결제에 따른 코드 추가

            if (!string.IsNullOrEmpty(orderParam.PaymentCode) && orderParam.PaymentCode.Length > 0)
            {
                try
                {
                    biz.UpdateDscontrPolicySttlCode(orderParam.PackNo, orderParam.PaymentCode);
                }
                catch
                {
                    throw new PaymentProcessBizException(-133, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 현금잔고 주문시 장바구니 번호 입력

            if (orderParam.AcntType.Equals("A3", StringComparison.InvariantCultureIgnoreCase)
                && orderParam.CardCash.Equals("CASH", StringComparison.InvariantCultureIgnoreCase)
                && orderParam.Gbank == 60000)
            {
                try
                {
                    biz.InsertBuySttlBalancePackNo(orderParam.PackNo);
                }
                catch
                {
                    throw new PaymentProcessBizException(-744, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 해외PG 한도 제한 관련 기록

            if (!string.IsNullOrEmpty(orderParam.SettleLimitKey) && orderParam.SettleLimitKey.Length > 12)
            {
                if (orderParam.AcntType.Equals("I1", StringComparison.InvariantCultureIgnoreCase))
                {
                    orderParam.AcntType = "I2";
                }

                decimal totalOrderPeice = paymentDataOrderInfoList.Sum(x => x.OrderPrice * (decimal)x.OrderCnt);
                try
                {
                    biz.InsertLimitOrderSettleLog(orderParam.PackNo, orderParam.CustNo, orderParam.LoginID
                        , orderParam.SettleLimitKey, totalOrderPeice, orderParam.AcntType, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-748, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 주문 유입경로 기록

            try
            {
                biz.InsertOrderFlowLog(orderParam.PackNo, orderParamEtc.PolicyOrderSrc, orderParam.PrimaryCheckValue, orderParam.OrderDateTime);
            }
            catch
            {
                throw new PaymentProcessBizException(-812, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion

            #region 북캐시 적립 정책 기록

            if (biz.GetExistBookCashInfo(orderParam.PackNo).IsExist)
            {
                try
                {
                    biz.InsertDsOrderBookCash(orderParam.PackNo, orderParam.LoginID, orderParam.OrderDateTime);
                }
                catch
                {
                    throw new PaymentProcessBizException(-814, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }

                try
                {
                    PaymentBookCashPolicyT bookCashPolicy = biz.GetBookCashPolicy("A", orderParam.OrderDateTime);

                    if (bookCashPolicy != null)
                    {
                        if (bookCashPolicy.BcashPNo != 0 && bookCashPolicy.BasisMoney > 0)
                        {
                            biz.InsertDsOrderBookCashPack(orderParam.PackNo, orderParam.LoginID, bookCashPolicy.BcashPNo, bookCashPolicy.PHistNo, bookCashPolicy.BasisMoney, orderParam.OrderDateTime);
                        }
                    }
                }
                catch
                {
                    throw new PaymentProcessBizException(-815, "주문 접수중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
                }
            }

            #endregion

            #region 쇼핑지원금 차감 처리

            if (paymentDataCostBasisInfoList.Any(x => x.BasisKind.Equals("SSD", StringComparison.InvariantCultureIgnoreCase)))
            {
                decimal remainSSCash = biz.GetRemainShoppingSupportCash(orderParam.CustNo, orderParam.OrderDateTime);
                decimal deductSSCash = paymentDataCostBasisInfoList.Where(x => x.BasisKind.Equals("SSD", StringComparison.InvariantCultureIgnoreCase)).Sum(x => x.CostPrice);

                if (remainSSCash < deductSSCash || remainSSCash <= 0)
                {
                    throw new PaymentProcessBizException(-157, "쇼핑지원금이 부족합니다.");
                }

                // 주문건별로 쇼핑지원금 차감 처리
                try
                {
                    var costSSInfo = (from x in paymentDataCostBasisInfoList
                                      where x.BasisKind.Equals("SSD", StringComparison.InvariantCultureIgnoreCase)
                                      group x by new { x.PackNo, x.ItemNo, x.BuyOrderNo } into g
                                      select new { PackNo = g.Key.PackNo, ItemNo = g.Key.ItemNo, OrderNo = g.Key.BuyOrderNo, ShoppingSupportCash = g.Sum(p => p.CostPrice) }
                                        ).ToList();

                    List<PaymentCostShoppingSupportInfoT> costSSInfoList = new List<PaymentCostShoppingSupportInfoT>();
                    foreach (var item in costSSInfo)
                    {
                        costSSInfoList.Add(new PaymentCostShoppingSupportInfoT
                        {
                            PackNo = item.PackNo,
                            ItemNo = item.ItemNo,
                            OrderNo = item.OrderNo,
                            ShoppingSupportCash = item.ShoppingSupportCash
                        });
                    }

                    if (costSSInfoList != null && costSSInfoList.Count > 0)
                    {

                        if (costSSInfoList.Count == 1)
                        {
                            int retCode = 0;

                            try
                            {
                                retCode = biz.SetShoppingSupportCash(orderParam.CustNo, "D1", costSSInfoList[0].ShoppingSupportCash, costSSInfoList[0].PackNo, costSSInfoList[0].ItemNo
                                    , costSSInfoList[0].OrderNo, null, null, 0, orderParam.LoginID, 0, "N", 0);
                            }
                            catch
                            {
                                throw new PaymentProcessBizException(-155, "쇼핑지원금 처리에 문제가 발생했습니다.");
                            }

                            if (retCode != 0)
                            {
                                throw new PaymentProcessBizException(-155, "쇼핑지원금 처리에 문제가 발생했습니다.");
                            }
                        }
                        else
                        {
                            try
                            {
                                biz.SetShoppingSupportCash(costSSInfoList, orderParam.CustNo, orderParam.LoginID, "D1");
                            }
                            catch (PaymentProcessBizException pEx)
                            {
                                throw pEx;
                            }
                            catch
                            {
                                throw new PaymentProcessBizException(-156, "쇼핑지원금 처리에 문제가 발생했습니다.");
                            }
                        }
                    }
                }
                catch (PaymentProcessBizException pEx)
                {
                    throw pEx;
                }
                catch
                {
                    throw new PaymentProcessBizException(-817, "쇼핑지원금 회원권 처리에 문제가 발생하였습니다. 다시 주문해 주시기 바랍니다.");
                }

            }

            #endregion

            #region 주문 유입 채널 정보 기록

            try
            {
                //string siteCode = string.Empty;
                string siteCode = "P";

                switch (orderParam.PrimaryCheckValue.ToUpper())
                {
                    case "ENG":
                        siteCode = "E";
                        break;
                    case "BRA":
                        siteCode = "B";
                        break;
                    case "SOH":
                        siteCode = "S";
                        break;
                    case "GIR":
                        siteCode = "G";
                        break;
                    case "GEP":
                        siteCode = "P";
                        break;
                }

                biz.InsertDsOrderChannelInfo(paymentDataOrderInfoList, siteCode, orderParamEtc.OrderJaehuID);
            }
            catch
            {
                throw new PaymentProcessBizException(-760, "채널 정보 기록 중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion

            #region 외부 주문 번호 저장

            try
            {
                biz.InsertOutContrList(orderParam.PackNo);
            }
            catch
            {
                throw new PaymentProcessBizException(-764, "외부 주문 정보 기록 중에 문제가 발생했습니다. 다시 주문해 주세요. 주문은 접수되지 않았습니다.");
            }

            #endregion

            #region GEP의 통합주문 목록에 주문 정보 Update

            #if (!PAYMENT_DEBUG && !PAYMENT_RELEASE)
            try
            {
                List<PaymentGepOrderUpdateInfoT> gepOrderUpdateInfoList = new List<PaymentGepOrderUpdateInfoT>();

                foreach (PaymentDataOrderInfoT item in paymentDataOrderInfoList)
                {
                    gepOrderUpdateInfoList.Add(new PaymentGepOrderUpdateInfoT
                    {
                        GepOrderNo = item.GepOrderNo,
                        ItemNo = item.ItemNo,
                        OrderNo = (long)item.OrderNo,
                        PackNo = item.PackNo
                    });
                }

                new PaymentProcessQueryBiz().UpdateGepOrderList(gepOrderUpdateInfoList, orderParam.OrderDateTime);
            }
            catch (PaymentProcessBizException pEx)
            {
                throw pEx;
            }
            catch
            {
                throw new PaymentProcessBizException(-1104, "GEP 주문 정보 기록 중 오류가 발생하였습니다");
            }
            #endif
            #endregion

            return orderResult;
        }
예제 #3
0
 public PaymentAutoCashReceiptInfoT GetAutoCashReceiptInfo(PaymentOrderMultiParamT entity)
 {
     return new PaymentProcessQueryDac().GetAutoCashReceiptInfo(entity.CardCash, entity.CustNo, entity.MemberWay
         , entity.BuyerName, entity.BuyerTelNo, entity.BuyerEmail, entity.BuyerSSN, entity.CashUseType
         , entity.CashRegNo, entity.CashName, entity.CashPhone, entity.CashEmail, entity.IdFlag, entity.BuyerIdentificationNo);
 }
예제 #4
0
        /// <summary>
        /// 주문
        /// </summary>
        /// <param name="reqOrderParam"></param>
        /// <returns></returns>
        public PaymentGEPPaymentProcessResultT GEPOrderDomesticMulti(PaymentOrderMultiParamT reqOrderParam)
        {
            PaymentGEPPaymentProcessResultT orderResult = new PaymentGEPPaymentProcessResultT();
            List<PaymentGEPItemInfoT> paymentGEPItemInfoList;

            orderResult.Result = new GEPBaseResultT();

            #region 주문에 필요한 상품 정보 List 생성

            try
            {
                paymentGEPItemInfoList = ConvertOrderParam2ItemInfo(reqOrderParam);
                this._paymentGEPItemInfoList = paymentGEPItemInfoList;
            }
            catch (ArgumentException argumentEx)
            {
                throw new PaymentProcessBizException(Util.GetSafeInt(argumentEx.ParamName, -900), argumentEx.Message);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            #region CBT 통합 주문 주문가능 여부 확인

            #if (!PAYMENT_DEBUG && !PAYMENT_RELEASE)

            // 주문 가능여부 체크
            if (!new PaymentProcessQueryBiz().IsGEPOrderOrderable(paymentGEPItemInfoList.Select(c => Util.GetSafeLong(c.OutOrderNo)).ToList()))
            {
                throw new PaymentProcessBizException(-1109, "주문 할 수 없는 GEP 주문 건이 있습니다.");
            }
            #endif
            #endregion

            //int count = paymentBiz.InsertGEPPaymentItemInfo(paymentGEPItemInfoList);

            #endregion

            #region 주문실행

            try
            {
                this._orderParam = reqOrderParam;

                #region 주문 실행 시간

                this._orderParam.OrderDateTime = this.GetOrderDateTime();

                #endregion

                #region 파라메터 Validate

                PaymentValidateParameter();

                #endregion

                #region 주문 실행 준비 - 주문건별 Validation 및 주문정보 생성

                PaymentPrepare();

                #endregion

                #region 주문에 필요한 상품 정보 입력

                // 할인 정보
                PaymentInsertDataCostBasis(this._paymentDataCostBasisInfoList);

                // 상품 정보
                PaymentInsertDataOrder(this._paymentDataOrderInfoList);

                #endregion

                #region 총 상품 갯수

                this._orderParam.ItemCount = this._paymentDataOrderInfoList.Count;

                #endregion

                #region 기타정보 입력

                this._orderParamEtc.PolicyOrderSrc = "DM";

                #endregion

                #region 주문

                orderResult = PaymentExecuteOrder(this._orderParam
                    , this._orderParamEtc
                    , this._paymenPayMethodtInfo
                    , this._paymentDataOrderInfoList
                    , this._paymentDataCostBasisInfoList
                    , this._paymentOrderItemCostInfoList);

                // 주문 실행 시간 넣어준다.
                orderResult.OrderDateTime = this._orderParam.OrderDateTime;

                #endregion
            }
            catch (PaymentProcessBizException pEx)
            {
                throw pEx;
            }
            catch (Exception ex)
            {
                throw new PaymentProcessBizException(-1180, ex.Message);
            }

            #endregion

            return orderResult;
        }
예제 #5
0
        public List<PaymentGEPOrderMultiResultT> SetPaymentGEPOrderMulti(PaymentOrderMultiParamT entity)
        {
            List<PaymentGEPOrderMultiResultT> list = new DacHelper(DbHelper, "tiger_write").SelectMultipleEntities < PaymentGEPOrderMultiResultT>(
                typeof(PaymentGEPOrderMultiResultT),
                GEPMappingCache.GetDataMappings("PaymentGEPOrderMultiResultT"),
                CommandType.StoredProcedure,
                "dbo.up_gmkt_common_payment_gep_insert_order_domestic_multi",
                SqlParameterHelper.CreateParameter("@order_way_kind", entity.OrderWayKind, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@pos_shop_cd_s", entity.PosShopCd, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@pos_class_cd_s", entity.PosClassCd, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@pos_class_kind_s", entity.PosClassKind, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@primary_check_value", entity.PrimaryCheckValue, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@shopping_guide_no_s", entity.ShoppingGuideNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@interest_group_no_s", entity.InterestGroupNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@pid", entity.BasketPID, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gd_sel_no_s", entity.GdSelNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@g_jaehuid", entity.JaehuID, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@jaehuid_s", entity.JaehuIDs, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gd_no_s", entity.GoodsCode, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@order_no_s", entity.OrderNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@order_price_s", entity.OrderPrice, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@order_cnt_s", entity.OrderCnts, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@sel_item_price_s", entity.SelItemPrice, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@inventory_seq_no_s", entity.InventorySeqNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@opt_inventory_seq_no_s", entity.OptInventorySeqNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@reservation_rsv_no", entity.ReservationRsvNo, SqlDbType.Int),
                //SqlParameterHelper.CreateParameter("@policy_no_s", entity.PolicyNos, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@deliverygoodsyn", entity.DeliveryGoodsYN, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@online_transport_sid", entity.OnlineTransportSid, SqlDbType.Int),
                //SqlParameterHelper.CreateParameter("@jehu_gd_no", entity.JehuGdCds, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@jehu_order_cnt", entity.JehuOrderCnts, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@jehu_order_no", entity.JehuOrderNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@jehu_l_type", entity.JehuLType, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@jehu_a_type", entity.JehuAtype, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gift_pack_yn_s", entity.GiftPackYn, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gift_shop_yn_s", entity.GiftShopYN, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@cost_price_s", entity.RealCostPrice, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@dealer_cost_price_s", entity.RealDealerCostPrice, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@dealer_cost_basis_no_s", entity.RealDealerCostBasisNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@sid_s", entity.Sid, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@bund_cond_no_s", entity.PlusDisBcCondNos, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@bund_satis_cnt_s", entity.PlusDisSatisCnts, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@set_cost_no_s", entity.SetCostScdNos, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@set_cond_no_s", entity.SetCondScdNos, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@pack_cost_no_s", entity.PackCostPcdNos, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@pack_cond_no_s", entity.PackCondPcdNos, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@pack_satis_cnt_s", entity.PackCostSatisCnts, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@auction_no_s", entity.AuctionNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@bid_price", entity.AuctionBidPrice, SqlDbType.Money),
                //SqlParameterHelper.CreateParameter("@bid_amt", entity.AuctionBidAmt, SqlDbType.Int),
                //SqlParameterHelper.CreateParameter("@bid_no", entity.BidNo, SqlDbType.Int),
                SqlParameterHelper.CreateParameter("@cust_no", entity.CustNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@login_id", entity.LoginID, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@member_type", entity.MemberWay, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@buyer_name", entity.BuyerName, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@buyer_tel_no", entity.BuyerTelNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@buyer_email", entity.BuyerEmail, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@buyer_ssn", entity.BuyerSSN, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@buyer_identification_no", entity.BuyerIdentificationNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@pay_auth_seq", entity.PayAuthSeq, SqlDbType.Int),
                SqlParameterHelper.CreateParameter("@card_cash", entity.CardCash, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@acnt_type", entity.AcntType, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@sttl_code", entity.PaymentCode, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@settle_limit_key", entity.SettleLimitKey, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@oncredit_yn", entity.OnCreditYN, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@gbank", entity.Gbank, SqlDbType.Int),
                SqlParameterHelper.CreateParameter("@deposit_nm", entity.DepositNm, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@vaccount", entity.Vaccount, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@vacnt_no", entity.VacntNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@gbank_gubun", entity.GbankGubun, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@foreign_money", entity.ForeignMoney, SqlDbType.Int),
                //SqlParameterHelper.CreateParameter("@transaction_no", entity.TransactionNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@trans_bank_no", entity.TransBankNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@trans_order_no", entity.TransOrderNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@trans_seq_no", entity.TransSeqNo, SqlDbType.TinyInt),
                SqlParameterHelper.CreateParameter("@iscorp_card", entity.IsCorpCard, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@virtual_card_kind", entity.VirtualCardKind, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@card_number", entity.CardNumber, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@installmonth", entity.Installmonth, SqlDbType.Int),
                SqlParameterHelper.CreateParameter("@fi_no", entity.FreeInterestNo, SqlDbType.Int),
                SqlParameterHelper.CreateParameter("@halbu_type", entity.HalbuType, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@year", entity.CardYear, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@month", entity.CardMonth, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@card_pwd", entity.CardPwd, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@social_no2", entity.SocialNo2, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@kcp_session_key", entity.KVPSessionkey, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@kcp_enc_data", entity.KVPEncdata, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@kcp_card_code", entity.KVPCardCode, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@xid", entity.Xid, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@eci", entity.Eci, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@cavv", entity.Cavv, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@save_yn", entity.PaySaveCardYN, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@fr_code ", entity.FrCode, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@cellphone_no", entity.CellPhoneHpNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@cellphone_kind", entity.CellPhoneAuthKind, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@cellphone_session_key", entity.CellPhoneSessionKey, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@cellphone_social_no", entity.CellPhoneAuthNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@cellphone_identification_no", entity.CellPhoneIdentificationNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@paypal_no", entity.PaypalNo, SqlDbType.Int),
                SqlParameterHelper.CreateParameter("@paypal_token", entity.PaypalToken, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@bibit_no", entity.BibitNo, SqlDbType.Int),
                //SqlParameterHelper.CreateParameter("@tcash_tid", entity.TCashID, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@tax_issue_yns", entity.TaxIssueYN, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@cash_issue_yns", entity.CashIssueYN, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@tax_charge_team", entity.TaxChargeTeam, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@tax_charge_name", entity.TaxChargeName, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@reg_no", entity.TaxRegNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@company_name", entity.TaxCompanyNm, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@boss", entity.TaxBoss, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@Address", entity.TaxAddress, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@Rcv_address", entity.TaxRcvAddress, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@zip_code", entity.TaxZipCode, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@category", entity.TaxCategory, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@kind", entity.TaxKind, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@tax_email", entity.TaxEmail, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@tax_phone", entity.TaxPhone, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@tax_memo", entity.TaxMemo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@receipt_type", entity.CashUseType, SqlDbType.Bit),
                SqlParameterHelper.CreateParameter("@id_number", entity.CashRegNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@demander", entity.CashName, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@contact", entity.CashPhone, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@email", entity.CashEmail, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@cash_receipt_yn", entity.CashReceiptYN, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@id_flag", entity.IdFlag, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@address_no", entity.AddressNo, SqlDbType.Int),
                SqlParameterHelper.CreateParameter("@order_zip_code", entity.ReceiverZipCode, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@address1", entity.ReceiverAddr1, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@address2", entity.ReceiverAddr2, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@rcv_nm", entity.ReceiverName, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@hp", entity.ReceiverHpNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@phone", entity.ReceiverPhoneNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@interval_s", entity.Interval, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@del_memo_s", entity.DelMemo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@coupon_gift_group_no", entity.CouponGiftGroupNo, SqlDbType.Int),
                //SqlParameterHelper.CreateParameter("@send_gift_yn", entity.SendGiftYN, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gift_receiver_cust_no", entity.GiftReceiverCustNo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gift_receiver_nm", entity.GiftRecevierNm, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gift_receiver_hp_no", entity.GiftReceiverHp, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gift_receiver_id", entity.GiftReceiverId, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gift_receiver_email", entity.GiftReceiverEmail, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gift_memo", entity.GiftMemo, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@sender_info_kind_i", entity.SenderInfoKindI, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@sender_info_kind_e", entity.SenderInfoKindE, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@sender_info_kind_h", entity.SenderInfoKindH, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@send_gift_way", entity.SendGiftWay, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@gift_msg_kind", entity.MsgKind, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@sender_nm", entity.GiftSenderNm, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@sender_id", entity.GiftSenderId, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@sender_email", entity.GiftSenderEmail, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@sender_hp_no", entity.GiftSenderHpNo, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@remote_ip", entity.RemoteAddr, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@svr_ip", entity.ServerIPAddr, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@receive_mail_yn", entity.ReceiveMailYN, SqlDbType.VarChar),
                SqlParameterHelper.CreateParameter("@receive_sms_yn", entity.ReceiveSmsYN, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@glink_nation_s", entity.GlinkNations, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@okcashbag_acc_yn", entity.OkCashBagSaveYn, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@buyerpwd", entity.Pwd, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@out_order_no_s", entity.OuterOrderNos, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@partner_gift_msg", entity.PartnerGiftMsg, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@partner_gift_msg_receiver", entity.PartnerGiftMsgReceiver, SqlDbType.VarChar),
                //SqlParameterHelper.CreateParameter("@partner_gift_msg_sender", entity.PartnerGiftMsgSender, SqlDbType.VarChar)
                SqlParameterHelper.CreateParameter("@pack_no", entity.PackNo, SqlDbType.Int),
                SqlParameterHelper.CreateParameter("@item_count", entity.ItemCount, SqlDbType.Int)
                );

            return list;
        }
예제 #6
0
        private GEPBaseResultT PaymentExecuteOrderFollowUp(PaymentOrderMultiParamT orderParam)
        {
            GEPBaseResultT result = new GEPBaseResultT();

            PaymentProcessQueryBiz paymentProcessQueryBiz = new PaymentProcessQueryBiz();

            #region 주문시 클라이언트 IP를 기록

            try
            {
                paymentProcessQueryBiz.InsertOrderLogIpAddress(orderParam.RemoteAddr, orderParam.PackNo.ToString() + ",", orderParam.ServerIPAddr);
            }
            catch
            {
                // 실패 시 lion.dbo.order_error_log_for_sub_sp 에 기록
            }

            if (!orderParam.AcntType.Equals("GL", StringComparison.InvariantCultureIgnoreCase) && orderParam.PayAuthSeq != 0)
            {
                int retCode = 0;

                //try
                //{
                    retCode = paymentProcessQueryBiz.UpdateOrderSubAuthLog(orderParam.PayAuthSeq, orderParam.PackNo, orderParam.OrderDateTime);
                //}
                //catch
                //{

                //}

                // 주문에 영향은 없다고 함.
                /*
                if (retCode < 0)
                {
                    result.RetCode = retCode;
                    result.RetMessage = "정상적으로 주문은 접수되었지만, 문제가 발생했습니다. 나의 쇼핑정보에서 확인해주세요";

                    return result;
                }
                */
            }

            #endregion

            return result;
        }
예제 #7
0
        private void PaymentExecuteOrderCleanUp(PaymentOrderMultiParamT orderParam)
        {
            PaymentProcessQueryBiz biz = new PaymentProcessQueryBiz();

            #region 임시 주문 정보 삭제

            try
            {
                biz.DeletePaymentDataOrder(orderParam.PackNo);
            }
            catch
            {

            }

            try
            {
                biz.DeletePaymentDataCoastbasisInfo(orderParam.PackNo);
            }
            catch
            {

            }

            #endregion
        }
예제 #8
0
        /// <summary>
        /// 주문 실행
        /// </summary>
        /// <param name="orderParam"></param>
        /// <param name="orderParamEtc"></param>
        /// <param name="paymenPayMethodtInfo"></param>
        /// <param name="paymentDataOrderInfoList"></param>
        /// <param name="paymentDataCostBasisInfoList"></param>
        /// <param name="paymentOrderItemCostInfoList"></param>
        /// <returns></returns>
        //private List<PaymentGEPOrderMultiResultT> PaymentStartOrder()
        private PaymentGEPPaymentProcessResultT PaymentExecuteOrder(PaymentOrderMultiParamT orderParam
			, PaymentOrderMultiParamEtcT orderParamEtc
			, PaymentInfoCheckT paymenPayMethodtInfo
			, List<PaymentDataOrderInfoT> paymentDataOrderInfoList
			, List<PaymentDataCostBasisInfoT> paymentDataCostBasisInfoList
			, List<PaymentOrderItemCostInfoT> paymentOrderItemCostInfoList)
        {
            PaymentGEPPaymentProcessResultT orderResult = new PaymentGEPPaymentProcessResultT();

            PaymentBiz paymentBiz = new PaymentBiz();
            PaymentProcessQueryBiz paymentProcessQueryBiz = new PaymentProcessQueryBiz();

            orderResult.Result = new GEPBaseResultT();

            #region 주문

            #region 주문 실행

            PaymentGEPPaymentProcessResultT paymentExecuteOrderResult = paymentProcessQueryBiz.PaymentExecuteOrder(
                orderParam
                , orderParamEtc
                , paymenPayMethodtInfo
                , paymentDataOrderInfoList
                , paymentDataCostBasisInfoList
                , paymentOrderItemCostInfoList);

            #endregion

            #region 주문 이후 처리

            GEPBaseResultT followUpResult = PaymentExecuteOrderFollowUp(orderParam);

            if (followUpResult.RetCode != 0)
            {
                orderResult.Result = followUpResult;
            }

            #endregion

            #region 주문 내역 조회

            List<PaymentGEPOrderMultiResultT> orderItemList = GetExecuteOrderItemList(paymentDataOrderInfoList);

            #endregion

            #region 주문 CleanUp

            try
            {
                PaymentExecuteOrderCleanUp(orderParam);
            }
            catch
            {

            }

            #endregion

            paymentExecuteOrderResult.OrderResultList.AddRange(orderItemList);

            #endregion

            #region 주문 결과 처리

            if (paymentExecuteOrderResult.OrderResultList == null)
            {
                orderResult.Result.RetCode = -1107;
                orderResult.Result.RetMessage = "주문 접수중에 문제가 발생하여 결제가 이루어지지 않았습니다. 확인후 다시 주문해 주시기 바랍니다";
            }
            else
            {
                if (paymentExecuteOrderResult.OrderResultList.Count <= 0)
                {
                    orderResult.Result.RetCode = -1108;
                    orderResult.Result.RetMessage = "주문 접수중에 문제가 발생하여 결제가 이루어지지 않았습니다. 확인후 다시 주문해 주시기 바랍니다";
                }
                else
                {
                    orderResult.Result.RetCode = paymentExecuteOrderResult.OrderResultList[0].RetCode;
                    orderResult.Result.RetMessage = paymentExecuteOrderResult.OrderResultList[0].RetReason;

                    orderResult.OrderResultList.AddRange(paymentExecuteOrderResult.OrderResultList);
                }
            }

            #endregion

            return orderResult;
        }
예제 #9
0
        /// <summary>
        /// 주문 SP 파라메터 컬렉션 생성
        /// </summary>
        /// <param name="orderParam"></param>
        /// <returns></returns>
        private List<PaymentGEPItemInfoT> ConvertOrderParam2ItemInfo(PaymentOrderMultiParamT orderParam)
        {
            List<PaymentGEPItemInfoT> list = new List<PaymentGEPItemInfoT>();

            string[] arrItemNo = (string.IsNullOrEmpty(orderParam.GoodsCode) ? string.Empty : orderParam.GoodsCode).Split(PaymentConstant.CommaSeperator, StringSplitOptions.RemoveEmptyEntries);
            int count = arrItemNo.Length;

            if (count <= 0)
                return list;

            Dictionary<string, KeyValuePair<int, string[]>> dicParam = new Dictionary<string, KeyValuePair<int, string[]>>();

            #region dicParam 입력

            dicParam.Add("ItemNo", new KeyValuePair<int,string[]>(1, arrItemNo));
            dicParam.Add("OrderPrice", new KeyValuePair<int, string[]>(2, PaymentUtil.SplitParamNumber(orderParam.OrderPrice, count)));
            dicParam.Add("OrderCnt", new KeyValuePair<int, string[]>(3, PaymentUtil.SplitParamNumber(orderParam.OrderCnts, count)));
            dicParam.Add("OrderNo", new KeyValuePair<int, string[]>(8, PaymentUtil.SplitParamNumber(orderParam.OrderNo, count)));
            dicParam.Add("GdSelNo", new KeyValuePair<int, string[]>(45, PaymentUtil.SplitParam(orderParam.GdSelNo, count)));
            dicParam.Add("Interval", new KeyValuePair<int,string[]>(4, PaymentUtil.SplitParamNumber(orderParam.Interval, count)));
            dicParam.Add("PosShopCd", new KeyValuePair<int,string[]>(5, PaymentUtil.SplitParam(orderParam.PosShopCd, count)));
            dicParam.Add("PosClassCd", new KeyValuePair<int,string[]>(6, PaymentUtil.SplitParam(orderParam.PosClassCd, count)));
            dicParam.Add("PosClassKind", new KeyValuePair<int,string[]>(7, PaymentUtil.SplitParam(orderParam.PosClassKind, count)));
            dicParam.Add("Sid", new KeyValuePair<int,string[]>(13, PaymentUtil.SplitParamNumber(orderParam.Sid, count)));
            dicParam.Add("DelMemo", new KeyValuePair<int, string[]>(17, PaymentUtil.SplitParam(orderParam.DelMemo, PaymentConstant.MainDelimiter, count, false, string.Empty)));
            dicParam.Add("DealerCostPrice", new KeyValuePair<int,string[]>(18, PaymentUtil.SplitParamNumber(orderParam.RealDealerCostPrice, count)));
            dicParam.Add("DealerCostBasisNo", new KeyValuePair<int,string[]>(19, PaymentUtil.SplitParamNumber(orderParam.RealDealerCostBasisNo, count)));
            dicParam.Add("ShoppingGuideNo", new KeyValuePair<int,string[]>(33, PaymentUtil.SplitParamNumber(orderParam.ShoppingGuideNo, count)));
            dicParam.Add("InterestGroupNo", new KeyValuePair<int,string[]>(37, PaymentUtil.SplitParamNumber(orderParam.InterestGroupNo, count)));
            dicParam.Add("Jaehuid", new KeyValuePair<int,string[]>(42, PaymentUtil.SplitParam(orderParam.JaehuIDs, count)));
            dicParam.Add("PolicyNo", new KeyValuePair<int,string[]>(43, PaymentUtil.SplitParamNumber(orderParam.PolicyNos, count)));
            dicParam.Add("BundCondNo", new KeyValuePair<int,string[]>(44, PaymentUtil.SplitParamNumber(orderParam.PlusDisBcCondNos, count)));
            dicParam.Add("BundSatisCnt", new KeyValuePair<int,string[]>(46, PaymentUtil.SplitParamNumber(orderParam.PlusDisSatisCnts, count)));
            dicParam.Add("TaxIssueYn", new KeyValuePair<int,string[]>(47, PaymentUtil.SplitParam(orderParam.TaxIssueYN, count)));
            dicParam.Add("CashIssueYn", new KeyValuePair<int,string[]>(48, PaymentUtil.SplitParam(orderParam.CashIssueYN, count)));
            dicParam.Add("CostPrice", new KeyValuePair<int,string[]>(11, PaymentUtil.SplitParamNumber(orderParam.RealCostPrice, count)));
            dicParam.Add("SetCostNo", new KeyValuePair<int,string[]>(51, PaymentUtil.SplitParamNumber(orderParam.SetCostScdNos, count)));
            dicParam.Add("SetCondNo", new KeyValuePair<int,string[]>(52, PaymentUtil.SplitParamNumber(orderParam.SetCondScdNos, count)));
            dicParam.Add("GlinkNation", new KeyValuePair<int,string[]>(53, PaymentUtil.SplitParam(orderParam.GlinkNations, count)));
            dicParam.Add("PackCostNo", new KeyValuePair<int,string[]>(60, PaymentUtil.SplitParamNumber(orderParam.PackCostPcdNos, count)));
            dicParam.Add("PackCondNo", new KeyValuePair<int,string[]>(61, PaymentUtil.SplitParamNumber(orderParam.PackCondPcdNos, count)));
            dicParam.Add("PackSatisCnt", new KeyValuePair<int,string[]>(62, PaymentUtil.SplitParamNumber(orderParam.PackCostSatisCnts, count)));
            dicParam.Add("OutOrderNo", new KeyValuePair<int,string[]>(64, PaymentUtil.SplitParam(orderParam.OuterOrderNos, count)));

            dicParam.Add("OrderIdx", new KeyValuePair<int,string[]>(90, PaymentUtil.SplitParamNumber(orderParam.OrderIdx, count)));

            #endregion

            // 배열들이 잘 생성되었나 점검
            foreach (KeyValuePair<string, KeyValuePair<int, string[]>> kvp in dicParam)
            {
                if (kvp.Value.Value.Length != count)
                {
                    throw new ArgumentException("주문 접수중에 문제가 발생하여 결제가 이루어지지 않았습니다. 확인후 다시 주문해 주시기 바랍니다.", (3000 + kvp.Value.Key).ToString());
                }
            }

            for (int i = 0; i < count; i++)
            {
                list.Add(new PaymentGEPItemInfoT()
                {
                    PackNo = orderParam.PackNo,
                    ItemNo = dicParam["ItemNo"].Value[i],
                    OrderPrice = Util.GetSafeInt(dicParam["OrderPrice"].Value[i]),
                    OrderCnt = Util.GetSafeInt(dicParam["OrderCnt"].Value[i]),
                    OrderNo = Util.GetSafeLong(dicParam["OrderNo"].Value[i]),
                    GdSelNo = dicParam["GdSelNo"].Value[i],
                    Interval = Util.GetSafeInt(dicParam["Interval"].Value[i]),
                    PosShopCd = dicParam["PosShopCd"].Value[i],
                    PosClassCd = dicParam["PosClassCd"].Value[i],
                    PosClassKind = dicParam["PosClassKind"].Value[i],
                    Sid = Util.GetSafeInt(dicParam["Sid"].Value[i]),
                    DelMemo = dicParam["DelMemo"].Value[i],
                    DealerCostPrice = Util.GetSafeInt(dicParam["DealerCostPrice"].Value[i]),
                    DealerCostBasisNo = Util.GetSafeInt(dicParam["DealerCostBasisNo"].Value[i]),
                    ShoppingGuideNo = Util.GetSafeInt(dicParam["ShoppingGuideNo"].Value[i]),
                    InterestGroupNo = Util.GetSafeInt(dicParam["InterestGroupNo"].Value[i]),
                    Jaehuid = dicParam["Jaehuid"].Value[i],
                    PolicyNo = Util.GetSafeInt(dicParam["PolicyNo"].Value[i]),
                    BundCondNo = Util.GetSafeInt(dicParam["BundCondNo"].Value[i]),
                    BundSatisCnt = Util.GetSafeInt(dicParam["BundSatisCnt"].Value[i]),
                    TaxIssueYn = dicParam["TaxIssueYn"].Value[i],
                    CashIssueYn = dicParam["CashIssueYn"].Value[i],
                    CostPrice = Util.GetSafeInt(dicParam["CostPrice"].Value[i]),
                    SetCostNo = Util.GetSafeInt(dicParam["SetCostNo"].Value[i]),
                    SetCondNo = Util.GetSafeInt(dicParam["SetCondNo"].Value[i]),
                    GlinkNation = dicParam["GlinkNation"].Value[i],
                    PackCostNo = Util.GetSafeInt(dicParam["PackCostNo"].Value[i]),
                    PackCondNo = Util.GetSafeInt(dicParam["PackCondNo"].Value[i]),
                    PackSatisCnt = Util.GetSafeInt(dicParam["PackSatisCnt"].Value[i]),
                    OutOrderNo = dicParam["OutOrderNo"].Value[i],
                    OrderIdx = Util.GetSafeLong(dicParam["OrderIdx"].Value[i])
                });
            }

            return list;
        }
예제 #10
0
 public List<PaymentGEPOrderMultiResultT> SetPaymentGEPOrderMulti(PaymentOrderMultiParamT entity)
 {
     return new PaymentDac().SetPaymentGEPOrderMulti(entity);
 }