영카트 상품주문시 복수의 문자 발송에 문제가 있습니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
영카트 상품주문시 복수의 문자 발송에 문제가 있습니다.

QA

영카트 상품주문시 복수의 문자 발송에 문제가 있습니다.

본문

제 지식과 지혜가 부족해 sir의 고수님들께 도움을 요청드립니다!

shop/orderformupdate.php 778줄

// SMS 모듈 클래스 생성
if($port_setting !== false) {
    $SMS = new LMS;
    $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
    
    for($s=0; $s<count($sms_messages); $s++) {
        $strDest     = array();
        $strDest[]   = $sms_messages[$s]['recv'];
        $strCallBack = $sms_messages[$s]['send'];
        $strCaller   = iconv_euckr(trim($default['de_admin_company_name']));
        $strSubject  = '';
        $strURL      = '';
        $strData     = iconv_euckr($sms_messages[$s]['cont']);
        $strDate     = '';
        $nCount      = count($strDest);
        $res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
        $SMS->Send();
        $SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
    }
}


위의 코드에서 반복문 Send(); 함수가, 첫 문자 발송시에 단 한 번만 실행되는 문제가 있는 것 같습니다.


테스트 환경
호스팅 : 카페24

icode 연결 : 모두 정상
문자 발송 설정 :
 - 첫번째 - 주문시 감사
 - 두번째 - 주문시 관리자에게 알림
 - 세번째 - 무통장 주문시 계좌번호 안내
영카트 버전 : 5.4.2.8
SMS 관련 영카트 소스코드 수정 없음.

증상 
무통장입금으로 주문시에 아래의 문자가 모두 발송이 되어야합니다.

1번째 - 감사 문자
2번째 - 관리자에게 주문 알림
3번째 - 무통장입금 계좌안내 문자


- 반복문은 예상대로 반복 index 0 ~ 2까지 총 3회 정상 반복합니다.
- 반복문 각 회차에서 문자 발송에 필요한 모든 데이터를 화면에 찍으면 모든 데이터가 정상입니다.

- [1번째 - 감사 문자] 가 정상적으로 발송되고 그 이후 반복문 돌 때에는 문자 발송이 되지 않습니다.
- 1번째 반복문을 그냥 넘기도록 최상단에서 continue; 를 해놓으면 [2번째 - 관리자에게 주문 알림] 문자 하나만 정상 발송됩니다.

- 2번째 반복문 까지 그냥 넘기도록 최상단에서 continue; 를 해놓으면 [3번째 - 무통장입금 계좌안내 문자] 문자 하나만 정상 발송됩니다.


$SMS->Send(); 이 후의 라인에서 $SMS를 프린트해보면
정상 발송되는 회차에서 $SMS->Result; 에는 값이 있으나, 정상발송이 되지 않는 회차의 반복에서는 $SMS->Result; 에 값이 없습니다.


아마도
문자 발송될 때 첫 1번째 반복될 때 $SMS->Send(); 가 실행되어 문자 발송이 잘 되는 것 같습니다만, 첫 회차에서 $SMS->Init(); 으로 $SMS->Result 와 $SMS->Data 값이 비워진 이후의 회차 부터는 어떤 문제로 인해 $SMS->Send(); 함수가 정상적으로 작동되지 않는 것 같습니다.

그래서
아래의 소스코드 처럼, LMS 객체를 반복문에 넣어 매번 새로 객체를 생성하도록 new LMS; 코드를 반복문 내부로 넣었더니 모든 문자가 정상적으로 발송됩니다.



// SMS 모듈 클래스 생성
if($port_setting !== false) {
    for($s=0; $s<count($sms_messages); $s++) {
    $SMS = new LMS;
    $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
        $strDest     = array();
        $strDest[]   = $sms_messages[$s]['recv'];
        $strCallBack = $sms_messages[$s]['send'];
        $strCaller   = iconv_euckr(trim($default['de_admin_company_name']));
        $strSubject  = '';
        $strURL      = '';
        $strData     = iconv_euckr($sms_messages[$s]['cont']);
        $strDate     = '';
        $nCount      = count($strDest);
 
        $res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
 
        $SMS->Send();
        $SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
    }
}


왜 이런 문제가 발생한 건지 알 수 있을까요?
부탁드립니다! 감사합니다!
 

이 질문에 댓글 쓰기 :

답변 1

답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT