이니시스 모듈 추가 및 모바일 결제 기능 개선

This commit is contained in:
chicpro
2015-05-29 10:01:13 +09:00
parent ff045857c6
commit a7cfae126d
82 changed files with 9642 additions and 443 deletions

1339
shop/inicis/libs/INICls.php Normal file

File diff suppressed because it is too large Load Diff

671
shop/inicis/libs/INIDFN.php Normal file
View File

@ -0,0 +1,671 @@
<?php
/**
* Copyright (C) 2007 INICIS Inc.
*
* <20>ش<EFBFBD> <20><><EFBFBD>̺귯<CCBA><EAB7AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<C7BE><EEBCAD> <20>ȵ˴ϴ<CBB4>.
* <20><><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ忡 <20><><EFBFBD><EFBFBD> å<><C3A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˷<EFBFBD><CBB7><EFBFBD>ϴ<EFBFBD>.
*
* @version 5.0
* @author ddaemiri
*
* @buildno 5000
* @date 2007.12.27
* @note first release
*
* @buildno 5001
* @date 2008.01.15
* @note <09><>ü<EFBFBD><C3BC><EFBFBD><EFBFBD>ũ<EFBFBD><C5A9> <20>߰<EFBFBD>, DNS Lookup Timeout <20>߰<EFBFBD>, DNS Lookup <20><><EFBFBD>н<EFBFBD> socket close<73><65><EFBFBD>ϴ<EFBFBD> <20>κ<EFBFBD> <20>߰<EFBFBD>
* @date 2008.01.16
* @note Encrypt,Decrypt <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>, pkcs5 padding <20>߰<EFBFBD>
* @date 2008.01.24
* @note non block connect immediate return check code/str
* @date 2008.02.11
* @note key load <20><> read<61><64><EFBFBD><EFBFBD><EFBFBD>߻<EFBFBD><DFBB><EFBFBD> fclose <20>߰<EFBFBD>
* @date 2008.03.03
* @note <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(passing by reference) <20><><EFBFBD><EFBFBD>
* @date 2008.03.11
* @note <09><><EFBFBD><EFBFBD>ũ<EFBFBD><C5A9> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Cmd <20>߰<EFBFBD>
* @date 2008.03.12
* @note <09><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP<49><50> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
* @buildno 5002
* @note <09><><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD> Sign<67>߰<EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>->5001<30><31> <20><><EFBFBD><EFBFBD><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>,<2C>׷<EFBFBD><D7B7><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ó<EFBFBD><C3B3><EFBFBD><EFBFBD> <20><>)
* @date 2008.03.12
* @buildno 5016
* @note pg1ip, pg2ip <20>߰<EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> drpg<70><67> <20><><EFBFBD>õ<EFBFBD>
* @date 2008.04.02
* @buildno 5017
* @note 1)chkfake<6B><65> <20>Ķ<EFBFBD><C4B6><EFBFBD><EFBFBD><EFBFBD> <20>α<EFBFBD> <20><><EFBFBD><EFBFBD>(<28>ߺ<EFBFBD>)
* 2)call-time pass-by-reference => pass-by-value<75><65> <20><><EFBFBD><EFBFBD>
* @date 2009.01.12
* @buildno 5019
* @note delete UIP
* @date 2009.01.21
* @note add mkey/mergelog ( for Makeshop )
* @date 2009.02.24
* @note 1)define MKEY deprecated 2009.02.19 ( Makeshop <20>ʱ<EFBFBD> <20>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>񽺵ǰ<F1BDBAB5> <20>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
* 2)Makeshop PG Updrade<64><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>γ<EFBFBD><CEB3><EFBFBD> 2009.02.19 (interface<63><65><EFBFBD><EFBFBD> mkey<65><79><EFBFBD><EFBFBD> <20>޾<EFBFBD> ó<><C3B3><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD>)
* 3)Makeshop PG Updrade<64><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>γ<EFBFBD><CEB3><EFBFBD> 2009.02.24 (interface<63><65><EFBFBD><EFBFBD> mergelog<6F><67><EFBFBD><EFBFBD> <20>޾<EFBFBD> ó<><C3B3><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD>)
* @date 2009.05.07
* @note add BUILDDATE in TXVersion
* @date 2009.08.05
* @buildno 5030
* @note add vacct refund
* @date 2009.12.16
* @buildno 5030
* @note add recv info
* @date 2010.07.14
* @note add Tax, TaxFree info(TX_TAX, TX_TAXFREE)
* @date 2010.09.09
* @note <09><><EFBFBD>ҿ<EFBFBD>û<EFBFBD><C3BB> PG <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>->IP, INILib.php)
* @note BUILDDATE update(100414 -> 100909)
* @note 2011.05.23 5030 XML ELEMENT <20><> ROOT <20><> ROOTINFO<46><4F> <20><><EFBFBD><EFBFBD>
* @buildno 5032
* @note 2012.07.09 <09>ŷ<EFBFBD><C5B7><EFBFBD>ȸ <20>߰<EFBFBD> (TYPE_INQUIRY)
* @note 2012.07.09 PHP ini <20><><EFBFBD><EFBFBD> error display setting <20>߰<EFBFBD>
* @buildno 5036
* @note 2014.12.09 add gather parameter tid, type
*/
ini_set('error_reporting', E_ALL ^ E_NOTICE);
ini_set('display_errors', 'Off');
/* GLOBAL */
define("PROGRAM", "INIPHP");
define("LANG", "PHP");
define("VERSION", "5036");
define("BUILDDATE", "141209");
define("TID_LEN", 40);
define("MAX_KEY_LEN", 24);
define("MAX_IV_LEN", 8);
/* TIMEOUT */
define("TIMEOUT_CONNECT", 5);
define("TIMEOUT_WRITE", 2);
define("TIMEOUT_READ", 20);
define("G_TIMEOUT_CONNECT", 2);
define("DNS_LOOKUP_TIMEOUT", 5);
/* LOG LEVEL */
define("CRITICAL", 1);
define("ERROR", 2);
define("NOTICE", 3);
define("INFO", 5);
define("DEBUG", 7);
/* SERVER INFO */
define("PG_HOST", "pg.inicis.com");
define("DRPG_HOST", "drpg.inicis.com");
define("PG_IP", "203.238.37.3");
define("DRPG_IP", "211.219.96.180");
define("PG_PORT", 34049);
define("G_SERVER", "gthr.inicis.com");
define("G_CGI", "/cgi-bin/g.cgi");
define("G_PORT", 80);
define("OK", "0");
define("IV", "Initiative Tech");
define("IMHK", "SFBQSU5JTkZPUk1BVElPTg==");
define("IMHV", "SU5JQ0lTIENJUEhFUi4uLg==");
define("IMJK", "UkVHSVNUX05PX1JDNEtFWQ==");
define("IMJV", "UkVHSVNUX05PX1JDNElW");
//define for mkey
//deprecated 2009.02.19 ( Makeshop <20>ʱ<EFBFBD> <20>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD>. <20><><EFBFBD>񽺵ǰ<F1BDBAB5> <20>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>)
//Makeshop PG Updrade<64><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD>γ<EFBFBD><CEB3><EFBFBD> 2009.02.19 (interface<63><65><EFBFBD><EFBFBD> mkey<65><79><EFBFBD><EFBFBD> <20>޾<EFBFBD> ó<><C3B3><EFBFBD>ϰ<EFBFBD> <20><><EFBFBD><EFBFBD>)
//define("MKEY", 1);
//non block connect immediate return check code/str
define("ERRSTR_INPROGRESS", "Operation now in progress");
define("ERRCODE_INPROGRESS_LINUX", 115);
define("ERRCODE_INPROGRESS_FREEBSD", 36);
define("ERRCODE_INPROGRESS_WIN", 10035);
//------------------------------------------------------
// IFD Header
//------------------------------------------------------
define("MSGHEADER_LEN", 150);
define("BODY_LEN", 5);
define("TAIL_LEN", 5);
define("FLGCRYPTO_LEN", 1);
define("FLGSIGN_LEN", 5);
define("MPUBSN_LEN", 20);
define("PIPGPUBSN_LEN", 20);
define("TXPGPUBSN_LEN", 20);
define("CMD_LEN", 4);
define("MID_LEN", 10);
define("TOTPRICE_LEN", 20);
define("TID_LEN", 40);
//------------------------------------------------------
// IFD CMD
//------------------------------------------------------
define("CMD_REQ_PAY", "0200");
define("CMD_RES_PAY", "0210");
define("CMD_REQ_CAP", "0300");
define("CMD_RES_CAP", "0310");
define("CMD_REQ_CAN", "0420");
define("CMD_RES_CAN", "0430");
define("CMD_REQ_NETC", "0520");
define("CMD_RES_NETC", "0530");
define("CMD_REQ_PRTC", "0620");
define("CMD_RES_PRTC", "0630");
define("CMD_REQ_ACK", "0800");
define("CMD_RES_ACK", "0810");
//<2F><>ü<EFBFBD><C3BC><EFBFBD><EFBFBD>ũ<EFBFBD><C5A9>
//added 2008.01.08
define("CMD_REQ_DLV", "3020"); //<2F><><EFBFBD>۵<EFBFBD><DBB5><EFBFBD>
define("CMD_REQ_CNF", "3030"); //<2F><><EFBFBD><EFBFBD>Ȯ<EFBFBD><C8AE>
define("CMD_REQ_DNY", "3040"); //<2F><><EFBFBD>Ű<EFBFBD><C5B0><EFBFBD>
define("CMD_REQ_DNY_CNF", "3080"); //<2F><><EFBFBD><EFBFBD>Ȯ<EFBFBD><C8AE>
define("CMD_REQ_DLV_NETC", "3520"); //<2F><><EFBFBD>۵<EFBFBD><DBB5>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
define("CMD_REQ_CNF_NETC", "3530"); //<2F><><EFBFBD><EFBFBD>Ȯ<EFBFBD>θ<EFBFBD><CEB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
define("CMD_REQ_DNY_NETC", "3540"); //<2F><><EFBFBD>Ű<EFBFBD><C5B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȯ<EFBFBD><C8AF>(09.08.05)
define("CMD_REQ_RFD", "0421");
define("CMD_RES_RFD", "0431");
//<2F>ŷ<EFBFBD><C5B7><EFBFBD>ȸ(12.04.20)
define("CMS_REQ_INQR", "0900");
define("CMS_RES_INQR", "0910");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(14.03.06)
define("CMS_REQ_OPEN_SUB", "1040");
define("CMS_RES_OPEN_SUB", "1041");
//------------------------------------------------------
// HEADER FLAGS
//------------------------------------------------------
define("FLAG_TEST", "T");
define("FLAG_REAL", "R");
define("FLAG_CRYPTO_NONE", "N");
define("FLAG_CRYPTO_SEED", "S");
define("FLAG_CRYPTO_RC4", "R");
define("FLAG_CRYPTO_3DES", "D");
define("FLAG_SIGN_SHA", "SHA");
define("FLAG_SIGN_SHA1", "SHA1");
define("FLAG_SIGN_MD5", "MD5");
//------------------------------------------------------
//TYPE(<28><><EFBFBD>񽺺<EFBFBD>)
//------------------------------------------------------
define("TYPE_SECUREPAY", "securepay");
define("TYPE_CANCEL", "cancel");
define("TYPE_FORMPAY", "formpay");
define("TYPE_RECEIPT", "receipt");
define("TYPE_REPAY", "repay");
define("TYPE_ESCROW", "escrow"); //<2F><>ü<EFBFBD><C3BC><EFBFBD><EFBFBD>ũ<EFBFBD><C5A9>!
define("TYPE_CONFIRM", "confirm");
define("TYPE_OCBQUERY", "ocbquery");
define("TYPE_OCBSAVE", "ocbsave");
define("TYPE_OCBPOINT", "OCBPoint");
define("TYPE_AUTH", "auth");
define("TYPE_AUTHBILL", "auth_bill");
define("TYPE_CAPTURE", "capture");
define("TYPE_CMS", "CMS");
define("TYPE_VBANK", "VBank");
define("TYPE_REQREALBILL", "reqrealbill");
define("TYPE_FORMAUTH", "formauth");
define("TYPE_CHKFAKE", "chkfake");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȯ<EFBFBD><C8AF>(09.08.05)
define("TYPE_REFUND", "refund");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ºκ<C2BA>ȯ<EFBFBD><C8AF>(12.06.05)
define("TYPE_VACCTREPAY", "vacctrepay");
//<2F>ŷ<EFBFBD><C5B7><EFBFBD>ȸ(12.04.20)
define("TYPE_INQUIRY", "inquiry");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(14.03.06)
define("TYPE_OPENSUB", "opensub");
//------------------------------------------------------
//EscrowType(<28><>ü<EFBFBD><C3BC><EFBFBD><EFBFBD>ũ<EFBFBD><C5A9> Ÿ<><C5B8>)
//added 2008.01.08
//------------------------------------------------------
define("TYPE_ESCROW_DLV", "dlv");
define("TYPE_ESCROW_CNF", "confirm"); //<2F><><EFBFBD><EFBFBD>Ȯ<EFBFBD><C8AE>/<2F><><EFBFBD><EFBFBD>(<28>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD>)
define("TYPE_ESCROW_DNY", "deny"); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ó<><C3B3><EFBFBD><EFBFBD>,<2C>ǹ̾<C7B9><CCBE><EFBFBD>
define("TYPE_ESCROW_DNY_CNF", "dcnf");
//------------------------------------------------------
//PayMethod(<28><><EFBFBD>񽺺<EFBFBD>, TX)
//------------------------------------------------------
define("NM_TX_ISP", "VCard");
define("NM_TX_CARD", "Card");
define("NM_TX_HPP", "HPP");
define("NM_TX_ACCT", "DirectBank");
define("NM_TX_VACT", "VBank");
define("NM_TX_OCB", "OCBPoint");
define("NM_TX_CSHR", "CASH");
define("NM_TX_ARSB", "Ars1588Bill");
define("NM_TX_PHNB", "PhoneBill");
define("NM_TX_CULT", "Culture");
define("NM_TX_GAMG", "DGCL");
define("NM_TX_EDUG", "EDCL");
define("NM_TX_TEEN", "TEEN");
define("NM_TX_ESCR", "Escrow");
//------------------------------------------------------
//PayMethod(<28><><EFBFBD>񽺺<EFBFBD>, PG)
//------------------------------------------------------
define("NM_ISP", "ISP");
define("NM_CARD", "CARD");
define("NM_HPP", "HPP");
define("NM_ACCT", "ACCT");
define("NM_VACT", "VACT");
define("NM_OCB", "OCB");
define("NM_CSHR", "CASH");
define("NM_ARSB", "ARSB");
define("NM_PHNB", "PHNB");
define("NM_CULT", "CULT");
define("NM_GAMG", "DGCL");
define("NM_EDUG", "EDCL");
define("NM_TEEN", "TEEN");
define("NM_ESCR", "Escrow");
//------------------------------------------------------
//Charset
//------------------------------------------------------
define("EUCKR", "EUC-KR");
define("UTF8", "UTF-8");
//------------------------------------------------------
//URL Encoding/Decoding Name
//------------------------------------------------------
define("URLENCODE", "urlencode");
define("URLDECODE", "urldecode");
//------------------------------------------------------
//<2F><>û<EFBFBD><C3BB><EFBFBD><EFBFBD>
//------------------------------------------------------
define("TX_GOOSCNT", "GoodsCnt");
define("TX_MOID", "MOID");
define("TX_CURRENCY", "Currency");
define("TX_SMID", "SMID");
define("TX_GOODSCNTS", "GoodsCnts");
define("TX_GOODSNAME", "GoodsName");
define("TX_GOODSPRICE", "GoodsPrice");
define("TX_BUYERNAME", "BuyerName");
define("TX_BUYEREMAIL", "BuyerEmail");
define("TX_BUYERTEL", "BuyerTel");
define("TX_PARENTEMAIL", "ParentEmail");
define("TX_RECVNAME", "RecvName");
define("TX_RECVTEL", "RecvTel");
define("TX_RECVMSG", "RecvMsg");
define("TX_RECVADDR", "RecvAddr");
define("TX_RECVPOSTNUM", "RecvPostNum");
define("TX_TAXFREE", "TaxFree");
define("TX_TAX", "Tax");
//PaymentInfo
define("TX_PAYMETHOD", "PayMethod");
define("TX_JOINCARD", "JoinCard");
define("TX_JOINEXPIRE", "JoinExpire");
define("TX_MAILORDER", "MailOrder");
define("TX_SESSIONKEY", "SessionKey");
define("TX_ENCRYPTED", "Encrypted");
//ReservedInfo
define("TX_MRESERVED1", "MReserved1");
define("TX_MRESERVED2", "MReserved2");
define("TX_MRESERVED3", "MReserved3");
//ManageInfo
define("TX_LANGUAGE", "Language");
define("TX_URL", "URL");
define("TX_TXVERSION", "TXVersion");
define("TX_TXUSERIP", "TXUserIP");
define("TX_TXUSERID", "TXUserID");
define("TX_TXREGNUM", "TXRegNum");
define("TX_ACK", "Ack");
define("TX_RN", "TXRN");
//CancelInfo
define("TX_CANCELTID", "CancelTID");
define("TX_CANCELMSG", "CancelMsg");
define("TX_CANCELREASON", "CancelReason"); //2012-10-19 <20><><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ڵ<EFBFBD> <20>߰<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȯ<EFBFBD><C8AF>(09.08.05)
define("TX_REFUNDACCTNUM", "RefundAcctNum");
define("TX_REFUNDBANKCODE", "RefundBankCode");
define("TX_REFUNDACCTNAME", "RefundAcctName");
//PartCancelInfo
define("TX_PRTC_TID", "PRTC_TID");
define("TX_PRTC_PRICE", "PRTC_Price");
define("TX_PRTC_REMAINS", "PRTC_Remains");
define("TX_PRTC_QUOTA", "PRTC_Quota");
define("TX_PRTC_INTEREST", "PRTC_Interest");
define("TX_PRTC_TAX", "Tax");
define("TX_PRTC_TAXFREE", "TaxFree");
define("TX_PRTC_CURRENCY", "Currency");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> I<><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü <20>κ<EFBFBD><CEBA><EFBFBD><EFBFBD>ҽ<EFBFBD> <20><><EFBFBD>¹<EFBFBD>ȣ/<2F><><EFBFBD><EFBFBD><EFBFBD>ּ<EFBFBD><D6BC><EFBFBD><EFBFBD>߰<EFBFBD> 2011-10-06
define("TX_PRTC_NOACCT", "PRTC_NoAcctFNBC");
define("TX_PRTC_NMACCT", "PRTC_NmAcctFNBC");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>κ<EFBFBD>ȯ<EFBFBD><C8AF> <20><><EFBFBD><EFBFBD> <20>߰<EFBFBD>
define("TX_PRTC_REFUNDFLGREMIT", "PRTC_RefundFlgRemit");
define("TX_PRTC_REFUNDBANKCODE", "PRTC_RefundBankCode");
//CaptureInfo
define("TX_CAPTURETID", "CaptureTID");
//<2F><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD>
define("TX_CSHR_APPLPRICE", "CSHR_ApplPrice");
define("TX_CSHR_SUPPLYPRICE", "CSHR_SupplyPrice");
define("TX_CSHR_TAX", "CSHR_Tax");
define("TX_CSHR_SERVICEPRICE", "CSHR_ServicePrice");
define("TX_CSHR_REGNUM", "CSHR_RegNum");
define("TX_CSHR_TYPE", "CSHR_Type");
define("TX_CSHR_COMPANYNUM", "CSHR_CompanyNum");
define("TX_CSHR_OPENMARKET", "CSHR_OpenMarket");
define("TX_CSHR_SUBCNT", "CSHR_SubCnt");
define("TX_CSHR_SUBCOMPANYNAME1", "CSHR_SubCompanyName1");
define("TX_CSHR_SUBCOMPANYNUM1", "CSHR_SubCompanyNum1");
define("TX_CSHR_SUBREGNUM1", "CSHR_SubRegNum1");
define("TX_CSHR_SUBMID1", "CSHR_SubMID1");
define("TX_CSHR_SUBAPPLPRICE1", "CSHR_SubApplPrice1");
define("TX_CSHR_SUBSERVICEPRICE1", "CSHR_SubServicePrice1");
//<2F>ŷ<EFBFBD><C5B7><EFBFBD>ȸ(12.04.20)
define("TX_INQR_TID", "INQR_TID");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(14.03.06)
define("TX_OPENREG_TID", "OrgTID");
define("TX_OPENREG_MID", "MID");
define("TX_OPENREG_SUBCNT", "SubCnt");
define("TX_OPENREG_SUBGOODS", "SubGoods");
define("TX_OPENREG_SUBCOMPNO", "SubCompNo");
define("TX_OPENREG_SUBCOMPNM", "SubCompNm");
define("TX_OPENREG_SUBPRSUPPLY", "SubPrSupply");
define("TX_OPENREG_SUBPRFREE", "SubPrFree");
define("TX_OPENREG_SUBPRTAX", "SubPrTax");
define("TX_OPENREG_SUBPRSERVICE", "SubPrService");
define("TX_OPENREG_SUBPRICE", "SubPrice");
//------------------------------------------------------
//
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//
//------------------------------------------------------
//HEAD
define("NM_MID", "MID");
define("NM_TID", "TID");
define("NM_TOTPRICE", "TotPrice");
//BODY
define("NM_GOODSCNT", "GoodsCnt");
define("NM_MOID", "MOID");
define("NM_CURRENCY", "Currency");
define("NM_SMID", "SMID");
define("NM_GOODSNAME", "GoodsName");
define("NM_GOODSPRICE", "GoodsPrice");
define("NM_PAYMETHOD", "PayMethod");
define("NM_RESULTCODE", "ResultCode");
define("NM_RESULTERRORCODE", "ResultErrorCode");
define("NM_RESULTMSG", "ResultMsg");
define("NM_SESSIONKEY", "SessionKey");
define("NM_ENCRYPTED", "Encrypted");
define("NM_CANCELDATE", "CancelDate");
define("NM_CANCELTIME", "CancelTime");
define("NM_EVENTCODE", "EventCode");
define("NM_ORGCURRENCY", "OrgCurrency");
define("NM_ORGPRICE", "OrgPrice");
define("NM_EXCHANGERATE", "ExchangeRate");
define("NM_RESERVEDINFO", "ReservedInfo");
define("NM_MRESERVED1", "MReserved1");
define("NM_MRESERVED2", "MReserved2");
define("NM_MRESERVED3", "MReserved3");
define("PRTC_TID", "PRTC_TID");
define("PRTC_PRICE", "PRTC_Price");
define("PRTC_REMAINS", "PRTC_Remains");
define("PRTC_QUOTA", "PRTC_Quota");
define("PRTC_INTEREST", "PRTC_Interest");
define("PRTC_TYPE", "PRTC_Type");
define("PRTC_CNT", "PRTC_Cnt");
define("NM_CAPTUREDATE", "CaptureDate");
define("NM_CAPTURETIME", "CaptureTime");
define("NM_PGPUBKEY", "PGcertKey");
//RECV DATA XPATH
//XML XPATH
define("ROOTINFO", "INIpay");
define("GOODSINFO", "GoodsInfo");
define("GOODS", "Goods");
define("BUYERINFO", "BuyerInfo");
define("PAYMENTINFO", "PaymentInfo");
define("PAYMENT", "Payment");
define("MANAGEINFO", "ManageInfo");
define("RESERVEDINFO", "ReservedInfo");
//Cancel(NetCancel)
define("CANCELINFO", "CancelInfo");
//PartCancel Encrypt
define("PARTCANCELINFO", "PartCancelInfo");
//Capture
define("CAPTUREINFO", "CaptureInfo");
//<2F>ŷ<EFBFBD><C5B7><EFBFBD>ȸ(12.04.20)
define("INQUIRYINFO", "InquiryInfo");
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(14.03.06)
define("OPENSUBINFO", "OpenSubInfo");
//Escrow
//added 2008.01.09
define("ESCROWINFO", "EscrowInfo");
define("ESCROW_DELIVERY", "Delivery");
define("ESCROW_CONFIRM", "Confirm");
define("ESCROW_DENY", "Deny");
define("ESCROW_DENYCONFIRM", "DenyConfirm");
//------------------------------------------------------
//Auth Encrypt XPATH
//------------------------------------------------------
//CARD COMMON
define("APPLDATE", "ApplDate");
define("APPLTIME", "ApplTime");
define("APPLNUM", "ApplNum");
//CARD
define("CARD_NUM", "CARD_Num");
define("CARD_EXPIRE", "CARD_Expire");
define("CARD_CODE", "CARD_Code");
define("CARD_APPLPRICE", "CARD_ApplPrice");
define("CARD_BANKCODE", "CARD_BankCode");
define("CARD_QUOTA", "CARD_Quota");
define("CARD_INTEREST", "CARD_Interest");
define("CARD_POINT", "CARD_Point");
define("CARD_AUTHTYPE", "CARD_AuthType");
define("CARD_REGNUM", "CARD_RegNum");
define("CARD_APPLDATE", "CARD_ApplDate");
define("CARD_APPLTIME", "CARD_ApplTime");
define("CARD_APPLNUM", "CARD_ApplNum");
define("CARD_RESULTCODE", "CARD_ResultCode");
define("CARD_RESULTMSG", "CARD_ResultMsg");
define("CARD_TERMINALNUM", "CARD_TerminalNum");
define("CARD_MEMBERNUM", "CARD_MemberNum");
define("CARD_PURCHASECODE", "CARD_PurchaseCode");
//ISP
define("ISP_BANKCODE", "ISP_BankCode");
define("ISP_QUOTA", "ISP_Quota");
define("ISP_INTEREST", "ISP_Interest");
define("ISP_APPLPRICE", "ISP_ApplPrice");
define("ISP_CARDCODE", "ISP_CardCode");
define("ISP_CARDNUM", "ISP_CardNum");
define("ISP_POINT", "ISP_Point");
define("ISP_APPLDATE", "ISP_ApplDate");
define("ISP_APPLTIME", "ISP_ApplTime");
define("ISP_APPLNUM", "ISP_ApplNum");
define("ISP_RESULTCODE", "ISP_ResultCode");
define("ISP_RESULTMSG", "ISP_ResultMsg");
define("ISP_TERMINALNUM", "ISP_TerminalNum");
define("ISP_MEMBERNUM", "ISP_MemberNum");
define("ISP_PURCHASECODE", "ISP_PurchaseCode");
//ACCT
define("ACCT_APPLDATE", "ACCT_ApplDate");
define("ACCT_APPLTIME", "ACCT_ApplTime");
define("ACCT_APPLNUM", "ACCT_ApplNum");
//HPP
define("HPP_APPLDATE", "HPP_ApplDate");
define("HPP_APPLTIME", "HPP_ApplTime");
define("HPP_APPLNUM", "HPP_ApplNum");
//VACT
define("VACT_APPLDATE", "VACT_ApplDate");
define("VACT_APPLTIME", "VACT_ApplTime");
//CASH
define("CSHR_APPLDATE", "CSHR_ApplDate");
define("CSHR_APPLTIME", "CSHR_ApplTime");
define("CSHR_APPLNUM", "CSHR_ApplNum");
//ARSB
define("ARSB_APPLDATE", "ARSB_ApplDate");
define("ARSB_APPLTIME", "ARSB_ApplTime");
define("ARSB_APPLNUM", "ARSB_ApplNum");
//PHNB
define("PHNB_APPLDATE", "PHNB_ApplDate");
define("PHNB_APPLTIME", "PHNB_ApplTime");
define("PHNB_APPLNUM", "PHNB_ApplNum");
//CULT
define("CULT_APPLDATE", "CULT_ApplDate");
define("CULT_APPLTIME", "CULT_ApplTime");
define("CULT_APPLNUM", "CULT_ApplNum");
//DGCL
define("GAMG_CNT", "GAMG_Cnt");
define("GAMG_APPLDATE", "GAMG_ApplDate");
define("GAMG_APPLTIME", "GAMG_ApplTime");
define("GAMG_APPLNUM", "GAMG_ApplNum");
function MakePathGAMG($cnt) {
for ($i = 1; $i <= $cnt; $i++) {
define("GAMG_NUM$i", "GAMG_Num$i");
define("GAMG_REMAINS$i", "GAMG_Remains$i");
define("GAMG_ERRMSG$i", "GAMG_ErrMsg$i");
}
}
//EDUG
define("EDUG_APPLDATE", "EDUG_ApplDate");
define("EDUG_APPLTIME", "EDUG_ApplTime");
define("EDUG_APPLNUM", "EDUG_ApplNum");
//TEEN
define("TEEN_APPLDATE", "TEEN_ApplDate");
define("TEEN_APPLTIME", "TEEN_ApplTime");
define("TEEN_APPLNUM", "TEEN_ApplNum");
//----------------------------------
//ERROR CODE
//----------------------------------
//!!<21><>TX<54><58> <20>߰<EFBFBD><DFB0><EFBFBD> <20><><EFBFBD><EFBFBD>!!!
define("NULL_DIR_ERR", "TX9001");
define("NULL_TYPE_ERR", "TX9002");
define("NULL_NOINTEREST_ERR", "TX9003");
define("NULL_QUOTABASE_ERR", "TX9004");
define("DNS_LOOKUP_ERR", "TX9005");
define("MERCHANT_DB_ERR", "TX9006");
define("DNS_LOOKUP_TIMEOUT_ERR", "TX9007");
define("PGPUB_UPDATE_ERR", "TX9612");
//<2F>Ϻ<EFBFBD>ȣȭ <20><><EFBFBD><EFBFBD>
define("B64DECODE_UPDATE_ERR", "TX9101");
define("B64DECODE_FINAL_ERR", "TX9102");
define("B64DECODE_LENGTH_ERR", "TX9103");
define("GET_KEYPW_EVP_B2K_ERR", "TX9104");
define("GET_KEYPW_FILE_OPEN_ERR", "TX9105");
define("GET_KEYPW_FILE_READ_ERR", "TX9106");
define("GET_KEYPW_DECRYPT_INIT_ERR", "TX9107");
define("GET_KEYPW_DECRYPT_UPDATE_ERR", "TX9108");
define("GET_KEYPW_DECRYPT_FINAL_ERR", "TX9109");
define("ENC_RAND_BYTES_ERR", "TX9110");
define("ENC_INIT_ERR", "TX9111");
define("ENC_UPDATE_ERR", "TX9112");
define("ENC_FINAL_ERR", "TX9113");
define("ENC_RSA_ERR", "TX9114");
define("DEC_RSA_ERR", "TX9115");
define("DEC_CIPHER_ERR", "TX9116");
define("DEC_INIT_ERR", "TX9117");
define("DEC_UPDATE_ERR", "TX9118");
define("DEC_FINAL_ERR", "TX9119");
define("SIGN_FINAL_ERR", "TX9120");
define("SIGN_CHECK_ERR", "TX9121");
define("ENC_NULL_F_ERR", "TX9122");
define("ENC_INIT_RAND_ERR", "TX9123");
define("ENC_PUTENV_ERR", "TX9124");
//<2F>ʵ<EFBFBD>üũ
define("NULL_KEYPW_ERR", "TX9201");
define("NULL_MID_ERR", "TX9202");
define("NULL_PGID_ERR", "TX9203");
define("NULL_TID_ERR", "TX9204");
define("NULL_UIP_ERR", "TX9205");
define("NULL_URL_ERR", "TX9206");
define("NULL_PRICE_ERR", "TX9207");
define("NULL_PRICE1_ERR", "TX9208");
define("NULL_PRICE2_ERR", "TX9209");
define("NULL_CARDNUMBER_ERR", "TX9210");
define("NULL_CARDEXPIRE_ERR", "TX9211");
define("NULL_ENCRYPTED_ERR", "TX9212");
define("NULL_CARDQUOTA_ERR", "TX9213");
define("NULL_QUOTAINTEREST_ERR", "TX9214");
define("NULL_AUTHENTIFICATION_ERR", "TX9215");
define("NULL_AUTHFIELD1_ERR", "TX9216");
define("NULL_AUTHFIELD2_ERR", "TX9217");
define("NULL_BANKCODE_ERR", "TX9218");
define("NULL_BANKACCOUNT_ERR", "TX9219");
define("NULL_REGNUMBER_ERR", "TX9220");
define("NULL_OCBCARDNUM_ERR", "TX9221");
define("NULL_OCBPASSWD_ERR", "TX9222");
define("NULL_PASSWD_ERR", "TX9223");
define("NULL_CURRENCY_ERR", "TX9224");
define("NULL_PAYMETHOD_ERR", "TX9225");
define("NULL_GOODNAME_ERR", "TX9226");
define("NULL_BUYERNAME_ERR", "TX9227");
define("NULL_BUYERTEL_ERR", "TX9228");
define("NULL_BUYEREMAIL_ERR", "TX9229");
define("NULL_SESSIONKEY_ERR", "TX9230");
//pg<70><67><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_PGCERT_FP_ERR", "TX9231");
define("NULL_X509_ERR", "TX9232");
define("NULL_PGCERT_ERR", "TX9233");
define("RESULT_MSG_FORMAT_ERR", "TX9234");
// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><>ü <20><><EFBFBD><EFBFBD>
define("NULL_PERNO_ERR", "TX9235"); // <20>ֹι<D6B9>ȣ <20><><EFBFBD><EFBFBD>
define("NULL_OID_ERR", "TX9236"); // <20>ֹ<EFBFBD><D6B9><EFBFBD>ȣ <20><><EFBFBD><EFBFBD>
define("NULL_VCDBANK_ERR", "TX9237"); // <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_DTINPUT_ERR", "TX9238"); // <20>Ա<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_NMINPUT_ERR", "TX9239"); // <20>۱<EFBFBD><DBB1><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
//<2F>ǽð<C7BD> <20><><EFBFBD><EFBFBD>
define("NULL_BILLKEY_ERR", "TX9240"); // <20><>Ű <20><><EFBFBD><EFBFBD>
define("NULL_CARDPASS_ERR", "TX9241"); // ī<><C4AB> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_BILLTYPE_ERR", "TX9242"); // <20><>Ÿ<EFBFBD><C5B8> <20><><EFBFBD><EFBFBD>
// CMS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ü
define("NULL_PRICE_ORG_ERR", "TX9250"); // CMS <20><><EFBFBD><EFBFBD><EFBFBD>ѱݾ<D1B1> <20><><EFBFBD><EFBFBD>
define("NULL_CMSDAY_ERR", "TX9251"); // CMS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_CMSDATEFROM_ERR", "TX9252"); // CMS <20><><EFBFBD>ݽ<EFBFBD><DDBD>ۿ<EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_CMSDATETO_ERR", "TX9253"); // CMS <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// <20>κ<EFBFBD><CEBA><EFBFBD><EFBFBD><EFBFBD>
define("NULL_CONFIRM_PRICE_ERR", "TX9260"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>û<EFBFBD>ݾ<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
// <20><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_CR_PRICE_ERR", "TX9270"); // <20><><EFBFBD>ݰ<EFBFBD><DDB0><EFBFBD> <20>ݾ<EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_SUP_PRICE_ERR", "TX9271"); // <20><><EFBFBD>ް<EFBFBD><DEB0><EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_TAX_ERR", "TX9272"); // <20>ΰ<EFBFBD><CEB0><EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_SRVC_PRICE_ERR", "TX9273"); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
define("NULL_REG_NUM_ERR", "TX9274"); // <20>ֹι<D6B9>ȣ(<28><><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD>ȣ)
define("NULL_USEOPT_ERR", "TX9275"); // <20><><EFBFBD>ݿ<EFBFBD><DDBF><EFBFBD><EFBFBD><EFBFBD> <20><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
define("PRIVKEY_FILE_OPEN_ERR", "TX9301");
define("INVALID_KEYPASS_ERR", "TX9302");
define("MAKE_TID_ERR", "TX9401");
define("ACK_CHECKSUM_ERR", "TX9402");
define("NETCANCEL_SOCK_CREATE_ERR", "TX9403");
define("NETCANCEL_SOCK_SEND_ERR", "TX9404");
define("NETCANCEL_SOCK_RECV_ERR", "TX9405");
define("LOG_OPEN_ERR", "TX9406");
define("LOG_WRITE_ERR", "TX9407");
define("SOCK_MAKE_EP_ERR", "TX9501");
define("SOCK_CONN_ERR", "TX9502");
define("SOCK_SEND1_ERR", "TX9503");
define("SOCK_SEND2_ERR", "TX9504");
define("SOCK_CLOSED_BY_PEER_ERR", "TX9505");
define("SOCK_RECV1_ERR", "TX9506");
define("SOCK_RECV2_ERR", "TX9507");
define("SOCK_RECV_LEN_ERR", "TX9508");
define("SOCK_TIMEO_ERR", "TX9509");
define("SOCK_ETC1_ERR", "TX9510");
define("SOCK_ETC2_ERR", "TX9511");
define("NULL_ESCROWTYPE_ERR", "TX6000");
define("NULL_ESCROWMSG_ERR", "TX6001");
define("NULL_FIELD_REFUNDACCTNUM", "TX9245");
define("NULL_FIELD_REFUNDBANKCODE", "TX9243");
define("NULL_FIELD_REFUNDACCTNAME", "TX9244");
?>

795
shop/inicis/libs/INILib.php Normal file
View File

@ -0,0 +1,795 @@
<?php
/**
* Copyright (C) 2007 INICIS Inc.
*
* <20>ش<EFBFBD> <20><><EFBFBD>̺귯<CCBA><EAB7AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<C7BE><EEBCAD> <20>ȵ˴ϴ<CBB4>.
* <20><><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ忡 <20><><EFBFBD><EFBFBD> å<><C3A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˷<EFBFBD><CBB7><EFBFBD>ϴ<EFBFBD>.
*
*/
require_once('INICls.php');
require_once('INISoc.php');
class INIpay50
{
var $m_type; // <20>ŷ<EFBFBD> <20><><EFBFBD><EFBFBD>
var $m_resulterrcode; // <20><><EFBFBD><EFBFBD><EFBFBD>޼<EFBFBD><DEBC><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD>
var $m_connIP;
var $m_cancelRC = 0;
var $m_Data;
var $m_Log;
var $m_Socket;
var $m_Crypto;
var $m_REQUEST = array();
var $m_REQUEST2 = array();
var $m_RESULT = array();
function INIpay()
{
$this->UnsetField();
}
function UnsetField()
{
unset($this->m_REQUEST);
unset($this->m_RESULT);
}
/*--------------------------------------------------*/
/* */
/* <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><>û<EFBFBD><C3BB> Set or Add */
/* */
/*--------------------------------------------------*/
function SetField( $key, $val ) //Default Entity
{
$this->m_REQUEST[$key] = $val;
}
function SetXPath( $xpath, $val ) //User Defined Entity
{
$this->m_REQUEST2[$xpath] = $val;
}
/*--------------------------------------------------*/
/* */
/* <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> fetch */
/* */
/*--------------------------------------------------*/
function GetResult( $name ) //Default Entity
{
$result = $this->m_RESULT[$name];
if( $result == "" )
$result = $this->m_Data->GetXMLData( $name );
if( $result == "" )
$result = $this->m_Data->m_RESULT[$name];
return $result;
}
/*--------------------------------------------------*/
/* */
/* <20><><EFBFBD><EFBFBD>/<2F><><EFBFBD><EFBFBD> ó<><C3B3> <20><><EFBFBD><EFBFBD> */
/* */
/*--------------------------------------------------*/
function startAction()
{
/*--------------------------------------------------*/
/* Overhead Operation */
/*--------------------------------------------------*/
$this->m_Data = new INIData( $this->m_REQUEST, $this->m_REQUEST2 );
/*--------------------------------------------------*/
/* Log Start */
/*--------------------------------------------------*/
$this->m_Log = new INILog( $this->m_REQUEST );
if(!$this->m_Log->StartLog())
{
$this->MakeTXErrMsg( LOG_OPEN_ERR, "<EFBFBD>α<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.[".$this->m_REQUEST["inipayhome"]."]");
return;
}
/*--------------------------------------------------*/
/* Logging Request Parameter */
/*--------------------------------------------------*/
$this->m_Log->WriteLog( DEBUG, $this->m_REQUEST );
/*--------------------------------------------------*/
/* Set Type */
/*--------------------------------------------------*/
$this->m_type = $this->m_REQUEST["type"];
/*--------------------------------------------------*/
/* Check Field */
/*--------------------------------------------------*/
if( !$this->m_Data->CheckField() )
{
$err_msg = "<EFBFBD>ʼ<EFBFBD><EFBFBD>׸<EFBFBD>(".$this->m_Data->m_ErrMsg.")<29><> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD>ϴ<EFBFBD>.";
$this->MakeTXErrMsg( $this->m_Data->m_ErrCode, $err_msg );
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
return;
}
$this->m_Log->WriteLog( INFO, "Check Field OK" );
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> Ű<><C5B0><EFBFBD><EFBFBD>. <20><><EFBFBD><20><>!!
/*--------------------------------------------------*/
if( $this->m_type == TYPE_CHKFAKE )
{
return $this->MakeChkFake();
}
/*--------------------------------------------------*/
//Generate TID
/*--------------------------------------------------*/
if( $this->m_type == TYPE_SECUREPAY || $this->m_type == TYPE_FORMPAY || $this->m_type == TYPE_OCBSAVE ||
$this->m_type == TYPE_AUTHBILL || $this->m_type == TYPE_FORMAUTH || $this->m_type == TYPE_REQREALBILL ||
$this->m_type == TYPE_REPAY || $this->m_type == TYPE_VACCTREPAY || $this->m_type == TYPE_RECEIPT || $this->m_type == TYPE_AUTH
)
{
if(!$this->m_Data->MakeTID())
{
$err_msg = "TID<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>߽<EFBFBD><DFBD>ϴ<EFBFBD>.::".$this->m_Data->m_sTID;
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( MAKE_TID_ERR, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
return;
}
$this->m_Log->WriteLog( INFO, 'Make TID OK '.$this->m_Data->m_sTID );
}
$this->m_Crypto = new INICrypto( $this->m_REQUEST );
/*--------------------------------------------------*/
//PI<50><49><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD>
/*--------------------------------------------------*/
$this->m_Data->ParsePIEncrypted();
$this->m_Log->WriteLog( INFO, "PI PUB KEY LOAD OK [".$this->m_Data->m_PIPGPubSN."]" );
/*--------------------------------------------------*/
//PG<50><47><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD>
/*--------------------------------------------------*/
if( ($rtv = $this->m_Crypto->LoadPGPubKey( $pg_cert_SN )) != OK)
{
$err_msg = "PG<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
return;
}
$this->m_Data->m_TXPGPubSN = $pg_cert_SN;
$this->m_Log->WriteLog( INFO, "PG PUB KEY LOAD OK [".$this->m_Data->m_TXPGPubSN."]" );
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD>
/*--------------------------------------------------*/
if( ($rtv = $this->m_Crypto->LoadMPrivKey()) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreePubKey();
return;
}
$this->m_Log->WriteLog( INFO, "MERCHANT PRIV KEY LOAD OK" );
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD>(SN <20><> <20>˱<EFBFBD><CBB1><EFBFBD><EFBFBD><EFBFBD>!!)
/*--------------------------------------------------*/
if( ($rtv = $this->m_Crypto->LoadMPubKey( $m_cert_SN )) != OK)
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
return;
}
$this->m_Data->m_MPubSN = $m_cert_SN;
$this->m_Log->WriteLog( INFO, "MERCHANT PUB KEY LOAD OK [".$this->m_Data->m_MPubSN."]" );
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣȭ( formpay, cancel, repay, recept, inquiry, opensub)
/*--------------------------------------------------*/
if( $this->m_type == TYPE_CANCEL || $this->m_type == TYPE_REPAY || $this->m_type == TYPE_VACCTREPAY ||
$this->m_type == TYPE_FORMPAY || $this->m_type == TYPE_RECEIPT ||
$this->m_type == TYPE_CAPTURE || $this->m_type == TYPE_INQUIRY || $this->m_type == TYPE_OPENSUB ||
($this->m_type == TYPE_ESCROW && $this->m_Data->m_EscrowType == TYPE_ESCROW_DLV ) ||
($this->m_type == TYPE_ESCROW && $this->m_Data->m_EscrowType == TYPE_ESCROW_DNY_CNF ) ||
$this->m_type == TYPE_REFUND
)
{
if( ($rtv = $this->m_Data->MakeEncrypt( $this->m_Crypto )) != OK )
{
$err_msg = "<EFBFBD><EFBFBD>ȣȭ <20><><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
return;
}
//$this->m_Log->WriteLog( DEBUG, "MAKE ENCRYPT OK" );
$this->m_Log->WriteLog( DEBUG, "MAKE ENCRYPT OK[".$this->m_Data->m_EncBody."]" );
}
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Body)
/*--------------------------------------------------*/
$this->m_Data->MakeBody();
$this->m_Log->WriteLog( INFO, "MAKE BODY OK" );
//$this->m_Log->WriteLog( INFO, "MAKE BODY OK[".$this->m_Data->m_sBody."]" );
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD>(sign)
/*--------------------------------------------------*/
if( ($rtv = $this->m_Crypto->Sign( $this->m_Data->m_sBody, $sign )) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreeAllKey();
return;
}
$this->m_Data->m_sTail = $sign;
$this->m_Log->WriteLog( INFO, "SIGN OK" );
//$this->m_Log->WriteLog( INFO, "SIGN OK[".$sign."]" );
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Head)
/*--------------------------------------------------*/
$this->m_Data->MakeHead();
$this->m_Log->WriteLog( INFO, "MAKE HEAD OK" );
//$this->m_Log->WriteLog( INFO, "MAKE HEAD OK[".$head."]" );
$this->m_Log->WriteLog( INFO, "MSG_TO_PG:[".$this->m_Data->m_sMsg."]" );
/*--------------------------------------------------*/
//<2F><><EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD>
/*--------------------------------------------------*/
//DRPG <20><><EFBFBD><EFBFBD>, added 07.11.15
//<2F><><EFBFBD>ҽ<EFBFBD>-PG<50><47><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>->IP), edited 10.09.09
if( $this->m_type == TYPE_SECUREPAY )
{
if( $this->m_REQUEST["pgn"] == "" )
$host = $this->m_Data->m_PG1;
else
$host = $this->m_REQUEST["pgn"];
}
else
{
if( $this->m_REQUEST["pgn"] == "" )
{
if( $this->m_cancelRC == 1 )
$host = DRPG_IP;
else
$host = PG_IP;
}
else
$host = $this->m_REQUEST["pgn"];
}
$this->m_Socket = new INISocket($host);
if( ($rtv = $this->m_Socket->DNSLookup()) != OK )
{
$err_msg = "[".$host."]DNS LOOKUP <20><><EFBFBD><EFBFBD>(MAIN)".$this->m_Socket->getErr();
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
if( $this->m_type == TYPE_SECUREPAY ) //PI<50>ϰ<EFBFBD><CFB0><EFBFBD>, PI<50><49> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> pg1ip<69><70>!
{
$this->m_Socket->ip = $this->m_Data->m_PG1IP;
}
else
{
if( $this->m_cancelRC == 1 )
$this->m_Socket->ip = DRPG_IP;
else
$this->m_Socket->ip = PG_IP;
}
}
$this->m_Log->WriteLog( INFO, "DNS LOOKUP OK(".$this->m_Socket->host.":".$this->m_Socket->ip.":".$this->m_Socket->port.") laptime:".$this->m_Socket->dns_laptime );
if( ($rtv = $this->m_Socket->open()) != OK )
{
$this->m_Socket->close();
//PG2<47><32> <20><>ȯ
$err_msg = "[".$host."<EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(MAIN)::PG2<47><32> <20><>ȯ";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
if( $this->m_type == TYPE_SECUREPAY )
{
$host = $this->m_Data->m_PG2;
}
else
{
$host = DRPG_HOST;
}
$this->m_Socket = new INISocket($host);
if( ($rtv = $this->m_Socket->DNSLookup()) != OK )
{
$err_msg = "[".$host."]DNS LOOKUP <20><><EFBFBD><EFBFBD>(MAIN)".$this->m_Socket->getErr();
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
if( $this->m_type == TYPE_SECUREPAY ) //PI<50>ϰ<EFBFBD><CFB0><EFBFBD>, PI<50><49> <20><><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD> pg2ip<69><70>!
{
$this->m_Socket->ip = $this->m_Data->m_PG2IP;
}
else
{
$this->m_Socket->ip = DRPG_IP;
}
}
$this->m_Log->WriteLog( INFO, "DNS LOOKUP OK(".$this->m_Socket->host.":".$this->m_Socket->ip.":".$this->m_Socket->port.") laptime:".$this->m_Socket->dns_laptime );
if( ($rtv = $this->m_Socket->open()) != OK )
{
$err_msg = "[".$host."<EFBFBD><EFBFBD><EFBFBD>Ͽ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(MAIN)::".$this->m_Socket->getErr();
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Socket->close();
$this->m_Crypto->FreeAllKey();
return;
}
}
$this->m_connIP = $this->m_Socket->ip;
$this->m_Log->WriteLog( INFO, "SOCKET CONNECT OK" );
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD><EFBFBD>۽<EFBFBD>
/*--------------------------------------------------*/
if( ($rtv = $this->m_Socket->send($this->m_Data->m_sMsg)) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD>ϼ۽ſ<EFBFBD><EFBFBD><EFBFBD>(MAIN)::".$this->m_Socket->getErr();
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreeAllKey();
$this->m_Socket->close();
return;
}
$this->m_Log->WriteLog( INFO, "SEND OK" );
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/*--------------------------------------------------*/
if( ($rtv = $this->m_Socket->recv($head, $body, $tail)) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD>ſ<EFBFBD><EFBFBD><EFBFBD>(MAIN)::".$this->m_Socket->getErr();
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
$this->NetCancel();
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreeAllKey();
return;
}
$this->m_Log->WriteLog( INFO, "RECV OK" );
$this->m_Log->WriteLog( INFO, "MSG_FROM_PG:[".$head.$body.$tail."]" );
$this->m_Data->m_Body = $body;
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD>Ȯ<EFBFBD><C8AE>
/*--------------------------------------------------*/
if( ($rtv = $this->m_Crypto->Verify( $body, $tail )) != OK )
{
$err_msg = "VERIFY FAIL";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
$this->NetCancel();
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreeAllKey();
return;
}
$this->m_Log->WriteLog( INFO, "VERIFY OK" );
/*--------------------------------------------------*/
//Head <20>Ľ<EFBFBD>
/*--------------------------------------------------*/
if( ($rtv = $this->m_Data->ParseHead( $head )) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(HEAD) <20>Ľ<EFBFBD> <20><><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
$this->NetCancel();
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreeAllKey();
return;
}
$this->m_Log->WriteLog( INFO, "PARSE HEAD OK" );
/*--------------------------------------------------*/
//Body <20>Ľ<EFBFBD>
/*--------------------------------------------------*/
if( ($rtv = $this->m_Data->ParseBody( $body, $encrypted, $sessionkey )) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Body) <20>Ľ<EFBFBD> <20><><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
$this->NetCancel();
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreeAllKey();
return;
}
$this->m_Log->WriteLog( INFO, "PARSE BODY OK" );
/*--------------------------------------------------*/
//<2F><>ȣȭ
/*--------------------------------------------------*/
if( $this->m_type == TYPE_SECUREPAY || $this->m_type == TYPE_FORMPAY || $this->m_type == TYPE_OCBSAVE ||
$this->m_type == TYPE_CANCEL || $this->m_type == TYPE_AUTHBILL || $this->m_type == TYPE_FORMAUTH ||
$this->m_type == TYPE_REQREALBILL || $this->m_type == TYPE_REPAY || $this->m_type == TYPE_VACCTREPAY || $this->m_type == TYPE_RECEIPT ||
$this->m_type == TYPE_AUTH || $this->m_type == TYPE_CAPTURE || $this->m_type == TYPE_ESCROW ||
$this->m_type == TYPE_REFUND || $this->m_type == TYPE_INQUIRY || $this->m_type == TYPE_OPENSUB
)
{
if( ($rtv = $this->m_Crypto->Decrypt( $sessionkey, $encrypted, $decrypted )) != OK )
{
$err_msg = "<EFBFBD><EFBFBD>ȣȭ <20><><EFBFBD><EFBFBD>[".$this->GetResult(NM_RESULTMSG)."]";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
$this->NetCancel();
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreeAllKey();
return;
}
$this->m_Log->WriteLog( INFO, "DECRYPT OK" );
$this->m_Log->WriteLog( DEBUG, "DECRYPT MSG:[".$decrypted."]" );
//Parse Decrypt
$this->m_Data->ParseDecrypt( $decrypted );
$this->m_Log->WriteLog( INFO, "DECRYPT PARSE OK" );
}
/*--------------------------------------------------*/
//Assign Interface Variables
/*--------------------------------------------------*/
$this->m_RESULT = $this->m_Data->m_RESULT;
/*--------------------------------------------------*/
//ACK
/*--------------------------------------------------*/
//if( $this->GetResult(NM_RESULTCODE) == "00" &&
if( (strcmp($this->GetResult(NM_RESULTCODE),"00") == 0) &&
( $this->m_type == TYPE_SECUREPAY || $this->m_type == TYPE_OCBSAVE ||
$this->m_type == TYPE_FORMPAY || $this->m_type == TYPE_RECEIPT
)
)
{
$this->m_Log->WriteLog( INFO, "WAIT ACK INVOKING" );
if( ($rtv = $this->Ack()) != OK )
{
//ERROR
$err_msg = "ACK <20><><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
$this->NetCancel();
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreeAllKey();
return;
}
$this->m_Log->WriteLog( INFO, "SUCCESS ACK INVOKING" );
}
/*--------------------------------------------------*/
//PG <20><><EFBFBD><EFBFBD>Ű<EFBFBD><C5B0> <20>ٲ<EFBFBD><D9B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ű UPDATE
/*--------------------------------------------------*/
$pgpubkey = $this->m_Data->GetXMLData( NM_PGPUBKEY );
if( $pgpubkey != "" )
{
if( ($rtv = $this->m_Crypto->UpdatePGPubKey( $pgpubkey )) != OK )
{
$err_msg = "PG<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʈ <20><><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->m_Data->GTHR( $rtv, $err_msg );
}
else
$this->m_Log->WriteLog( INFO, "PGPubKey UPDATED!!" );
}
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreeAllKey();
$this->m_Socket->close();
/*--------------------------------------------------*/
//<2F><><EFBFBD>ҽ<EFBFBD><D2BD><EFBFBD>-<2D><><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD> DRPG<50><47> <20><><EFBFBD>õ<EFBFBD>
//2008.04.01
/*--------------------------------------------------*/
if( $this->GetResult(NM_RESULTCODE) == "01" && ($this->m_type == TYPE_CANCEL || $this->m_type == TYPE_INQUIRY) && $this->m_cancelRC == 0 )
{
if( intval($this->GetResult(NM_ERRORCODE)) > 400000 && substr( $this->GetResult(NM_ERRORCODE), 3, 3 ) == "623" )
{
$this->m_cancelRC = 1;
$this->startAction();
}
}
return;
} // End of StartAction
/*--------------------------------------------------*/
/* */
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ÿ <20><><EFBFBD><EFBFBD> */
/* */
/*--------------------------------------------------*/
function MakeChkFake()
{
$this->m_Crypto = new INICrypto( $this->m_REQUEST );
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD>
/*--------------------------------------------------*/
if( ($rtv = $this->m_Crypto->LoadMPrivKey()) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreePubKey();
return;
}
$this->m_Log->WriteLog( INFO, "MERCHANT PRIV KEY LOAD OK" );
/*--------------------------------------------------*/
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD>(SN <20><> <20>˱<EFBFBD><CBB1><EFBFBD><EFBFBD><EFBFBD>!!)
/*--------------------------------------------------*/
if( ($rtv = $this->m_Crypto->LoadMPubKey( $m_cert_SN )) != OK)
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ű <20>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
return;
}
$this->m_Log->WriteLog( INFO, "MERCHANT PUB KEY LOAD OK [".$this->m_Data->m_MPubSN."]" );
foreach ($this->m_REQUEST as $key => $val)
{
if( $key == "inipayhome" || $key == "type" || $key == "debug" ||
$key == "admin" || $key == "checkopt" || $key == "enctype" )
continue;
if( $key == "mid" )
$temp1 .= $key."=".$val."&"; //msg
else
$temp2 .= $key."=".$val."&"; //hashmsg
}
//Make RN
$this->m_RESULT["rn"] = $this->m_Data->MakeRN();
$temp1 .= "rn=".$this->m_RESULT["rn"]."&";
$checkMsg = $temp1;
$checkHashMsg = $temp2;
$retHashStr = Base64Encode(sha1( $checkHashMsg, TRUE ));
$checkMsg .= "data=".$retHashStr;
$HashMid = Base64Encode(sha1( $this->m_REQUEST["mid"], TRUE ));
$this->m_Crypto->RSAMPrivEncrypt( $checkMsg, $RSATemp );
$this->m_RESULT["encfield"] = "enc=".$RSATemp."&src=".Base64Encode($checkHashMsg);
$this->m_RESULT["certid"] = $HashMid.$m_cert_SN;
$this->m_Log->WriteLog( INFO, "CHKFAKE KEY MAKE OK:".$this->m_RESULT["rn"] );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Crypto->FreeAllKey();
$this->m_RESULT[NM_RESULTCODE] = "00";
return;
}
/*--------------------------------------------------*/
/* */
/* <20><><EFBFBD><EFBFBD>ó<EFBFBD><C3B3> Ȯ<><C8AE> <20>޼<EFBFBD><DEBC><EFBFBD> <20><><EFBFBD><EFBFBD> */
/* */
/*--------------------------------------------------*/
function Ack()
{
//ACK<43><4B> Data
$this->m_Data->m_sBody = "";
$this->m_Data->m_sTail = "";
$this->m_Data->m_sCmd = CMD_REQ_ACK;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Head)
$this->m_Data->MakeHead();
$this->m_Log->WriteLog( DEBUG, "MAKE HEAD OK" );
//$this->m_Log->WriteLog( DEBUG, "MSG_TO_PG:[".$this->m_Data->m_sMsg."]" );
//Send
if( ($rtv = $this->m_Socket->send($this->m_Data->m_sMsg)) != OK )
{
$err_msg = "ACK <20><><EFBFBD>ۿ<EFBFBD><DBBF><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
return ACK_CHECKSUM_ERR;
}
//$this->m_Log->WriteLog( DEBUG, "SEND OK" );
if( ($rtv = $this->m_Socket->recv($head, $body, $tail)) != OK )
{
$err_msg = "ACK <20><><EFBFBD>ſ<EFBFBD><C5BF><EFBFBD>(ACK)";
$this->m_Log->WriteLog( ERROR, $err_msg );
return ACK_CHECKSUM_ERR;
}
//$this->m_Log->WriteLog( DEBUG, "RECV OK" );
//$this->m_Log->WriteLog( INFO, "MSG_FROM_PG:[".$recv."]" );
return OK;
}
/*--------------------------------------------------*/
/* */
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>޼<EFBFBD><DEBC><EFBFBD> <20><><EFBFBD><EFBFBD> */
/* */
/*--------------------------------------------------*/
function NetCancel()
{
$this->m_Log->WriteLog( INFO, "WAIT NETCANCEL INVOKING" );
if ( $this->m_type == TYPE_CANCEL || $this->m_type == TYPE_REPAY || $this->m_type == TYPE_VACCTREPAY || $this->m_type == TYPE_RECEIPT ||
$this->m_type == TYPE_CONFIRM || $this->m_type == TYPE_OCBQUERY || $this->m_type == TYPE_ESCROW ||
$this->m_type == TYPE_CAPTURE || $this->m_type == TYPE_AUTH || $this->m_type == TYPE_AUTHBILL ||
($this->m_type == TYPE_ESCROW && $this->m_Data->m_EscrowType == TYPE_ESCROW_DNY_CNF ) ||
$this->m_type == TYPE_NETCANCEL
)
{
$this->m_Log->WriteLog( INFO, "DON'T NEED NETCANCEL" );
return true;
}
//NetCancel<65><6C> Data
$this->m_Data->m_REQUEST["cancelmsg"] = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>";
$body = "";
$sign = "";
$this->m_Data->m_Type = TYPE_CANCEL; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>.<2E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD><EFBFBD>..<2E><>~
//added escrow netcancel, 08.03.11
if( $this->m_type == TYPE_ESCROW && $this->m_Data->m_EscrowType == TYPE_ESCROW_DLV )
$this->m_Data->m_sCmd = CMD_REQ_DLV_NETC;
else if($this->m_type == TYPE_ESCROW && $this->m_Data->m_EscrowType == TYPE_ESCROW_CNF )
$this->m_Data->m_sCmd = CMD_REQ_CNF_NETC;
else if($this->m_type == TYPE_ESCROW && $this->m_Data->m_EscrowType == TYPE_ESCROW_DNY )
$this->m_Data->m_sCmd = CMD_REQ_DNY_NETC;
else
$this->m_Data->m_sCmd = CMD_REQ_NETC;
$this->m_Data->m_sCrypto = FLAG_CRYPTO_3DES;
//<2F><>ȣȭ
if( ($rtv = $this->m_Data->MakeEncrypt( $this->m_Crypto )) != OK )
{
$err_msg = "<EFBFBD><EFBFBD>ȣȭ <20><><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
//$this->MakeTXErrMsg( $rtv, $err_msg );
return;
}
$this->m_Log->WriteLog( DEBUG, "MAKE ENCRYPT OK[".$this->m_Data->m_EncBody."]" );
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Body)
$this->m_Data->MakeBody();
$this->m_Log->WriteLog( INFO, "MAKE BODY OK" );
//<2F><><EFBFBD><EFBFBD>(sign)
if( ($rtv = $this->m_Crypto->Sign( $this->m_Data->m_sBody, $sign )) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD>ν<EFBFBD><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
//$this->MakeTXErrMsg( $rtv, $err_msg );
return false;
}
$this->m_Data->m_sTail = $sign;
$this->m_Log->WriteLog( INFO, "SIGN OK" );
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Head)
$this->m_Data->MakeHead();
$this->m_Log->WriteLog( INFO, "MAKE HEAD OK" );
$this->m_Log->WriteLog( DEBUG, "MSG_TO_PG:[".$this->m_Data->m_sMsg."]" );
//<2F><><EFBFBD>ϻ<EFBFBD><CFBB><EFBFBD>
$this->m_Socket = new INISocket("");
$this->m_Socket->ip = $this->m_connIP; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> IP <20><><EFBFBD><EFBFBD>, 08.03.12
if( ($rtv = $this->m_Socket->open()) != OK )
{
$err_msg = "[".$this->m_Socket->ip."]<5D><><EFBFBD>Ͽ<EFBFBD><CFBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(NETC)::".$this->m_Socket->getErr();
$this->m_Log->WriteLog( ERROR, $err_msg );
//$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Log->CloseLog( $this->GetResult(NM_RESULTMSG) );
$this->m_Socket->close();
$this->m_Crypto->FreeAllKey();
return;
}
$this->m_Log->WriteLog( INFO, "SOCKET CONNECT OK::".$this->m_Socket->ip );
//<2F><><EFBFBD><EFBFBD><EFBFBD>۽<EFBFBD>
if( ($rtv = $this->m_Socket->send($this->m_Data->m_sMsg)) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD>ϼ۽ſ<EFBFBD><EFBFBD><EFBFBD>(NETC)".$this->m_Socket->getErr();
$this->m_Log->WriteLog( ERROR, $err_msg );
//$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
return false;
}
$this->m_Log->WriteLog( INFO, "SEND OK" );
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if( ($rtv = $this->m_Socket->recv($head, $body, $tail)) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD>ϼ<EFBFBD><EFBFBD>ſ<EFBFBD><EFBFBD><EFBFBD>(NETC)";
$this->m_Log->WriteLog( ERROR, $err_msg );
//$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
return false;
}
$this->m_Log->WriteLog( INFO, "RECV OK" );
$this->m_Log->WriteLog( DEBUG, "MSG_FROM_PG:[".$head.$body.$tail."]" );
//<2F><><EFBFBD><EFBFBD>Ȯ<EFBFBD><C8AE>
if( ($rtv = $this->m_Crypto->Verify( $body, $tail )) != OK )
{
$err_msg = "VERIFY FAIL";
$this->m_Log->WriteLog( ERROR, $err_msg );
//$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
return false;
}
$this->m_Log->WriteLog( INFO, "VERIFY OK" );
//<2F><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>Ľ<EFBFBD><C4BD><EFBFBD><EFBFBD><EFBFBD> <20>ʴ´<CAB4>!!!!
//<2F>׳<EFBFBD> <20><><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ǰ<EFBFBD><C7B0>ϴ<EFBFBD>.-_-;;
//Head <20>Ľ<EFBFBD>
if( ($rtv = $this->m_Data->ParseHead( $head )) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(HEAD) <20>Ľ<EFBFBD> <20><><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
//$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
return;
}
//Body <20>Ľ<EFBFBD>
if( ($rtv = $this->m_Data->ParseBody( $body, $encrypted, $sessionkey )) != OK )
{
$err_msg = "<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(Body) <20>Ľ<EFBFBD> <20><><EFBFBD><EFBFBD>";
$this->m_Log->WriteLog( ERROR, $err_msg );
//$this->MakeTXErrMsg( $rtv, $err_msg );
$this->m_Socket->close();
return;
}
//if( $this->GetResult(NM_RESULTCODE) == "00" )
if(strcmp($this->GetResult(NM_RESULTCODE),"00") == 0)
$this->m_Log->WriteLog( INFO, "SUCCESS NETCANCEL" );
else
$this->m_Log->WriteLog( ERROR, "ERROR NETCANCEL[".$this->GetResult(NM_RESULTMSG)."]" );
return true;
}
function MakeIMStr($s, $t)
{
$this->m_Crypto = new INICrypto( $this->m_REQUEST );
if( $t == "H" )
return $this->m_Crypto->MakeIMStr($s, base64_decode(IMHK));
else if( $t == "J" )
return $this->m_Crypto->MakeIMStr($s, base64_decode(IMJK));
}
/*--------------------------------------------------*/
/* */
/* <20><><EFBFBD><EFBFBD><EFBFBD>޼<EFBFBD><DEBC><EFBFBD> Make */
/* */
/*--------------------------------------------------*/
function MakeTXErrMsg($err_code, $err_msg)
{
$this->m_RESULT[NM_RESULTCODE] = "01";
$this->m_RESULT[NM_RESULTERRORCODE] = $err_code;
$this->m_RESULT[NM_RESULTMSG] = "[".$err_code."|".$err_msg."]";
$this->m_Data->GTHR( $err_code, $err_msg );
return;
}
}
?>

251
shop/inicis/libs/INISoc.php Normal file
View File

@ -0,0 +1,251 @@
<?php
/**
* Copyright (C) 2007 INICIS Inc.
*
* <20>ش<EFBFBD> <20><><EFBFBD>̺귯<CCBA><EAB7AF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ǿ<C7BE><EEBCAD> <20>ȵ˴ϴ<CBB4>.
* <20><><EFBFBD>Ƿ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ڵ忡 <20><><EFBFBD><EFBFBD> å<><C3A5><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ڿ<EFBFBD><DABF><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>˷<EFBFBD><CBB7><EFBFBD>ϴ<EFBFBD>.
*
*/
class INISocket{
var $hnd;
var $host;
var $ip;
var $port;
var $type;
var $family;
var $protocol;
var $bConnected;
var $sBuffer;
var $sSocErr;
var $dns_laptime;
function error($msg=null)
{
$errCode = socket_last_error($this->hnd);
if($errCode!=0)
{
//Connection reset by peer
if($errCode==104)
$this->bConnected = false;
$errMsg = socket_strerror($errCode);
$this->sSocErr = "(".$errCode.")(".$errMsg.")";
socket_clear_error($this->hnd);
}
elseif (strlen($msg))
{
$this->sSocErr = $errMsg;
}
return false;
}
function INISocket($host)
{
$this->family = AF_INET;
$this->type = SOCK_STREAM;
$this->protocol = SOL_TCP;
$this->hnd = @socket_create($this->family,$this->type,$this->protocol);
$this->error();
$this->sBuffer = false;
$this->ip = null;
$this->host = $host;
$this->port = PG_PORT;
}
function DNSLookUP()
{
$starttime=GetMicroTime();
$ip = @gethostbyname($this->host);
if($ip)
{
$this->ip = $ip;
}
else
{
$this->error("Hostname ".$this->host." could not be resolved");
return DNS_LOOKUP_ERR;
}
$this->dns_laptime=round(GetMicroTime()-$starttime, 3);
if( $this->dns_laptime > DNS_LOOKUP_TIMEOUT )
return DNS_LOOKUP_TIMEOUT_ERR;
return OK;
}
function open()
{
//Connect timeout Trickkkkkkkkk ##2. NONBLOCKING NEED , less CPU clocking!!^^
//modified by ddaemiri, 2007.08.30
socket_set_nonblock($this->hnd);
if (!@socket_connect($this->hnd, $this->ip, $this->port))
{
$err = socket_last_error($this->hnd);
$err_str = socket_strerror($err);
if ($err == 106) //EISCONN
{
$this->bConnected = true;
socket_set_block($this->hnd);
return OK;
}
//EINPROGRESS( Linux:115, Window Socket:10035, FreeBSD4.10:36, <20><><EFBFBD><EFBFBD> OS üũ <20>Ұ<EFBFBD><D2B0><EFBFBD><EFBFBD>ؼ<EFBFBD> str<74><72><EFBFBD>ε<EFBFBD> <20>˻<EFBFBD> )
if ($err != ERRCODE_INPROGRESS_LINUX && $err != ERRCODE_INPROGRESS_WIN &&
$err != ERRCODE_INPROGRESS_FREEBSD && $err_str != ERRSTR_INPROGRESS )
{
$this->error();
socket_close($this->hnd);
return SOCK_CONN_ERR;
}
}
$read = array($this->hnd);
$write = array($this->hnd);
$rtv = @socket_select($read,$write,$except=NULL,TIMEOUT_CONNECT);
if( $rtv == 0 ) //TIMEOUT
{
$this->error();
socket_close($this->hnd);
return SOCK_TIMEO_ERR;
}
else if ( $rtv === FALSE )
{
$this->error();
socket_close($this->hnd);
return SOCK_ETC1_ERR;
}
if( in_array($this->hnd,$read) || in_array($this->hnd,$write))
{
if(@socket_get_option($this->hnd, SOL_SOCKET, SO_ERROR) === FALSE)
{
$this->error();
socket_close($this->hnd);
return SOCK_ETC2_ERR;
}
}
$this->bConnected = true;
socket_set_block($this->hnd);
return OK;
}
function close()
{
//if(!$this->bConnected) return;
@socket_shutdown($this->hnd,2);
@socket_close($this->hnd);
}
function send($sBuf)
{
if(!$this->bConnected)
{
$this->error("Socket error. Cannot send data on a closed socket.");
return SOCK_SEND1_ERR;
}
$vWrite = array($this->hnd);
while(($rtv = @socket_select($vRead = null,$vWrite ,$vExcept = null, TIMEOUT_WRITE)) === FALSE);
if( $rtv == 0 )
{
$this->error();
//return SOCK_TIMEO_ERR;
return SOCK_CONN_ERR; //modify 2008.04.01
}
if( $rtv === FALSE )
{
$this->error();
return SOCK_SEND2_ERR;
}
$tmpBuf = strlen($sBuf) ? $sBuf : $this->sBuffer;
$iBufLen = strlen($tmpBuf);
$res = @socket_send($this->hnd,$tmpBuf,$iBufLen,0);
if($res === FALSE)
{
$this->error();
return SOCK_SEND2_ERR;
}
elseif ($res < $iBufLen)
{
$tmpBuf = substr($tmpBuf,$res);
$this->send($tmpBuf);
}
return OK;
}
function WaitRecv( &$recv_buf, $nleft )
{
$recv_buf = null;
$read = array($this->hnd);
$buf = null;
while( $nleft > 0 )
{
$rtv = @socket_select($read,$write=NULL,$except=NULL,TIMEOUT_READ);
if( $rtv == 0 )
{
$this->error();
return SOCK_TIMEO_ERR;
}
else if ( $rtv === FALSE )
{
$this->error();
return SOCK_ETC1_ERR;
}
if(!in_array($this->hnd,$read))
{
$this->error();
return SOCK_RECV1_ERR;
}
if($buf = @socket_read($this->hnd, $nleft))
{
$recv_buf .= $buf;
}
else
{
$this->error();
return SOCK_RECV1_ERR;
}
$nleft -= strlen( $buf );
}
return OK;
}
function recv(&$head, &$body, &$tail)
{
if(!$this->bConnected)
{
$this->error("Socket error. Cannot read any data on a closed socket.");
return SOCK_RECV1_ERR;
}
//------------------------------------------------------
//head
//------------------------------------------------------
if( ($rtv = $this->WaitRecv( $head, MSGHEADER_LEN)) != OK ) return $rtv;
if( $head == "" ) return SOCK_RECV2_ERR;
$body_len = intval(substr( $head, 0, BODY_LEN ));
$tail_len = intval(substr( $head, BODY_LEN, TAIL_LEN ));
//------------------------------------------------------
//body
//------------------------------------------------------
if( ($rtv = $this->WaitRecv( $body, $body_len)) != OK ) return $rtv;
//------------------------------------------------------
//tail
//------------------------------------------------------
if( ($rtv = $this->WaitRecv( $tail, $tail_len)) != OK ) return $rtv;
return OK;
}
function getErr()
{
return $this->sSocErr;
}
}
?>

3495
shop/inicis/libs/INIXml.php Normal file

File diff suppressed because it is too large Load Diff