public void InsertCash(TCashMst objTCashMst) { try { pl_objSqlCommand = new SqlCommand("dbo.UP_CASH_NT_INS", pl_objSqlCon); pl_objSqlCommand.CommandType = CommandType.StoredProcedure; pl_objSqlCommand.Parameters.AddWithValue("@pi_strUserID", objTCashMst.UserID); pl_objSqlCommand.Parameters.AddWithValue("@pi_strUserName", objTCashMst.UserName); pl_objSqlCommand.Parameters.AddWithValue("@pi_strCashAttrCode", objTCashMst.OrderNo); pl_objSqlCommand.Parameters.AddWithValue("@pi_strTID", objTCashMst.TID); pl_objSqlCommand.Parameters.AddWithValue("@pi_strCID", objTCashMst.CID); pl_objSqlCommand.Parameters.AddWithValue("@pi_intPayAmt", objTCashMst.PayAmt); pl_objSqlCommand.Parameters.AddWithValue("@pi_strPGCode", objTCashMst.PGCode); pl_objSqlCon.Open(); pl_objSqlCommand.ExecuteNonQuery(); return; } catch (Exception pl_objExp) { Console.WriteLine(pl_objExp); return; } finally { pl_objSqlCon.Close(); } }
//----------------------------------------------------------------------------------------- // Description : Callback URL로 반환된 결제 결과 받아오기 (json) // - 결제가 성공한 경우 callback_url로 결제 결과가 반환됩니다. (json) // - 전달받은 Callback URL 을 통해서 결과값을 받아서 가맹점에 맞는 충전, 구매 등의 로직을 수행하도록 합니다. //----------------------------------------------------------------------------------------- public ActionResult POQCallback() { StreamReader objStreamReader = new StreamReader(Request.GetBufferlessInputStream(), Encoding.GetEncoding("utf-8")); string strResponse = objStreamReader.ReadToEnd(); objStreamReader.Close(); //-- Callback URL로 반환된 결제 결과 받기 if (string.IsNullOrEmpty(strResponse)) { Response.Write("{\"code\":9999, \"message\":\"Response data is empty\"}"); } //-- JSON 파싱 PayResult objJsonData = JsonConvert.DeserializeObject <PayResult>(strResponse); string strResponseCode = "{\"code\":0, \"message\":\"success\"}"; POQResp objRespData = JsonConvert.DeserializeObject <POQResp>(strResponseCode); if (objRespData.code.Equals(0)) { TCashMst objTCashMst = new TCashMst(); objTCashMst.UserID = objJsonData.user_id; //--가맹점 결제자(회원) 아이디(email, 영문 및 숫자 가능) objTCashMst.UserName = objJsonData.user_name; //--가맹점 결제자(회원) 이름 objTCashMst.OrderNo = objJsonData.order_no; //--가맹점의 주문 번호 objTCashMst.TID = objJsonData.tid; //--결제고유번호 objTCashMst.CID = objJsonData.cid; //--승인번호 objTCashMst.PayAmt = objJsonData.amount; //--결제요청 금액 objTCashMst.PGCode = objJsonData.pgcode; //--결제요청한 pg명 string strPayHash = objJsonData.payhash; //--파라메터 검증을 위한 SHA256 hash 값 SHA256(user_id +amount + tid +결제용 API Key) * 일부 결제 수단은 전달되지 않습니다.(가상계좌 등) objCashDao.InsertCash(objTCashMst); return(RedirectToAction("POQCallback", "Home")); } else { return(RedirectToAction("POQCancel", "Home")); } }