영카트 이니시스 모바일 결제시 리턴값 질문드립니다.
본문
안녕하세요.
몇일전 같은 질문을 올렸는데 아직 해결하지 못하여 다시 질문 올립니다....ㅠㅠ
이니시스 결제시 pc결제로는 신용카드번호(CARD_Num), 카드 할부기간(CARD_Quota), 카드사 코드(CARD_Code) 가 리턴이 되어 orderformupdate.php에서 제가 변수로 등록하여 사용 가능했습니다만
모바일 결제시에는 위 세가지를 리턴받지 않더라구요....
그래서 신용카드번호(P_CARD_NUM), 카드 할부기간(P_RMESG2), 카드사 코드(P_FN_CD1)를 추가해야되나
싶어 mobile/shop/inicis/settle_common.php에
$P_CARD_NUM; 를 추가했고 나머지 P_RMESG2, P_FN_CD1는 이미 있더라구요...
또 아래 $PAY 배열 생성하는 부분에
'P_CARD_NUM' => $P_CARD_NUM,
'P_RMESG2' => $P_RMESG2,
'P_FN_CD1' => $P_FN_CD1
이렇게 추가를 해주었습니다.
여기저기 의심되는 부분에는 다 추가를 해넣고 출력을 해봐도 위 세가지는 출력이 전혀 안되는데
어느 페이지에 어떻게 추가를 해야 mobile/shop/orderformupdate.php에서 출력을 시킬수 있을까요;;;
답변 2
이니시스 결제 같은경우 fsockopen 함수 즉 소켓을 사용하여 결과 값을 가지고 옵니다.
/inicis/libs/HttpClient.php 여기를 보시면 소켓함수를 사용한것을 확인해보실수있습니다.
소켓함수를 사용해서 리턴값은 json 포맷으로 결과값을 던저줍니다.
여기서 모바일기준으로 결과값을 안내드리자면
//최종결제요청 결과 성공 DB처리
$tno = $resultMap['tid'];
$amount = $resultMap['TotPrice'];
$app_time = $resultMap['applDate'].$resultMap['applTime'];
$pay_method = $resultMap['payMethod'];
$pay_type = $PAY_METHOD[$pay_method];
$depositor = isset($resultMap['VACT_InputName']) ? $resultMap['VACT_InputName'] : '';
$commid = '';
$mobile_no = isset($resultMap['HPP_Num']) ? $resultMap['HPP_Num'] : '';
$app_no = isset($resultMap['applNum']) ? $resultMap['applNum'] : '';
$card_name = isset($resultMap['CARD_Code']) ? $CARD_CODE[$resultMap['CARD_Code']] : '';
위에 코드는 리턴 결과값을 변수로 받는 코딩의 일부이오니 참고 하시면 도움이되실꺼 같습니다.
참고로 조금더 구체적인 모바일쪽에 결과나 연동 관련되 정보를 아내 링크값을 안내드리오니 참고 하시면 도움이 되실꺼 같습니다.
https://manual.inicis.com/pay/stdpay_m.html
해보시다 안되시면 쪽지주시면 도움 드리겠습니다.
!-->
orderformupdate.php에 POST로 넘겨받은것들을 출력해보면
Array ( [P_STATUS] => 00 [P_RMESG1] => ó Ǿ ϴ . [P_TID] => INIMX_AUTHSAshoplong20230728194052785554 [P_REQ_URL] => https://ksmobile.inicis.com/smart/payReq.ini [P_NOTI] => 202307281940393231 [P_AMT] => 3000 [od_price] => 3000 [org_od_price] => 3000 [od_send_cost] => 0 [od_send_cost2] => 0 [item_coupon] => 0 [od_coupon] => 0 [od_send_coupon] => 0 [it_id] => Array ( [0] => 10000035 ) [it_name] => Array ( [0] => 테스트5 ) [it_price] => Array ( [0] => 3000 ) [cp_id] => Array ( [0] => ) [cp_price] => Array ( [0] => 0 ) [od_name] => 마스터테스트 [od_tel] => [od_hp] => *** 개인정보보호를 위한 휴대폰번호 노출방지 *** [od_zip] => 01012 [od_addr1] => 서울 강북구 4.19로12길 5 [od_addr2] => 1223 [od_addr3] => [od_addr_jibeon] => R [od_email] => *** 개인정보보호를 위한 이메일주소 노출방지 *** [ad_sel_addr] => same [ad_subject] => [od_b_name] => 마스터테스트 [od_b_tel] => [od_b_hp] => *** 개인정보보호를 위한 휴대폰번호 노출방지 *** [od_b_zip] => 01012 [od_b_addr1] => 서울 강북구 4.19로12길 5 [od_b_addr2] => 1223 [od_b_addr3] => [od_b_addr_jibeon] => R [od_memo] => [od_settle_case] => 신용카드 [od_bank_account] => 국민은행 602401-04-068065 (주)테스트 [od_deposit_name] => [good_mny] => 3000 [P_UNAME] => 마스터테스트 [P_HPP_CORP] => [P_APPL_NUM] => [P_VACT_NUM] => [P_VACT_NAME] => [P_CARD_ISSUER] => 현대 [sw_direct] => 1 [od_test] => 0 [od_ip] => 106.101.193.110 [res_cd] => 00 [P_HASH] => 1873e920d32cac1c7078f29634a3cde1 [P_TYPE] => CARD [P_AUTH_DT] => 20230728194106 [P_AUTH_NO] => 30042107 [P_VACT_BANK] => )
이렇게 오는데 여기서 P_UNAME이나 P_CARD_ISSUER을 어디서 orderformupdate.php로 넘겨주는지만 알면 좋겠는데 그걸 모르겠네요;;;