개발자 포럼

필독사항1 : 질문을 올릴 경우 답변자는 뛰어난 분석학자나 심리학자가 아님을 유의하세요. 
필독사항2 : 반드시 구체적인 설명과 코드 그리고 오류 메시지 및 캡처 이미지를 함께 올려주세요. 

닷넷으로 구현한 COOLSMS 인증코드입니다. PHP에선 간단한데 닷넷을 약간 번잡해요. COOL측 문서는 PHP 중심이므로 비교해가면서 설명드리죠.

 

세개의 문자열 상수입니다.

 

    const string coolsms_key = "....";
    const string coolsms_sec = "....";
    const string coolsms_url = "https://api.coolsms.co.kr/mo/1/list?";

 

이부분은 스스로 아셔야 하구요. 첫번째 TIMESTAMP를 만듭니다. PHP에선 그냥 TIME() 한줄인데 닷넷에선 노가다좀 해야해요.

 

            DateTime dt1 = new System.DateTime(1970, 1, 1, 0, 0, 0, 0);
            DateTime dt2 = DateTime.UtcNow;
            double timestamp = Math.Truncate((dt2 - dt1).TotalSeconds);

 

이렇게 세줄입니다. 다음에는 아무거나 무작위글자를 열자쯤 만드는 것입니다. 전 GUID() 클래스를 사용합니다. 도움말엔 PHP UNIQUE() 메소드에요.

 

            string salt = Guid.NewGuid().ToString().Substring(0, 13);
            string data1 = timestamp + salt;

 

이렇게 GUID() 클래스로 무작위문자를 생성하고 다음 작업 위해 위에 TIMESTAMP와 무작위글자를 합쳣습니다. 이제 만들어진 데이타로 암호화해시를 생성합니다.

 

            byte[] keyMaterial = UTF8Encoding.UTF8.GetBytes(coolsms_sec);
            byte[] data2 = UTF8Encoding.UTF8.GetBytes(data1);

            HMACMD5 algo = new HMACMD5(keyMaterial);
            byte[] sig = algo.ComputeHash(data2);
            string sig2 = Convert.ToBase64String(sig);

 

이렇게 MD5 클래스를 이용해 바이트로 된 해시를 생성하고 그것을 BASE64 문자열로 바꿧습니다. 인제 이걸 보내기만 하면 되요. URL을 이렇게 구성합니다.

 

            string url = coolsms_url;
            url += string.Format("api_key={0}&timestamp={1}&salt={2}&signature={3}"
                , coolsms_key, timestamp, salt, _context.Server.UrlEncode(sig2));
            url += "&encoding=base64&algorithm=md5";

 

이렇게 만들어진 URL을 그냥 브라우저 주소창에 쳐도 나옵니다. 물론 잘되면 말이죠. 도움말의 PHP 예제와 다른점은 여기서 문자열을 HEX가 아닌 BASE64로 생성하엿다는 점입니다. 그래서 URL을 만들때에도 반드시 ENCODING=BASE64 한마디 넣어줘야 합니다. 닷넷은 HEX와 별로 친하지 않아요.

 

행운을 빕니다. 예제를 보시고 궁금하신점은  카톡 HPH4444로 연락주세요. 참고로 저는 여기 직원은 아닙니다.


댓글 '1'

hosy


*.222.54.89

닷넷으로 coolsms rest api 를 사용하실 분들께 좋은 팁이 될 것 같네요!!

좋은 정보 감사합니다.^^b

List of Articles

오픈TIP NodeJS 에서 Promise 를 사용하여 MMS 문자 발송예제 file

오픈TIP NodeJs 에서 간단히 REST API 1.x버전 문자보내기

오픈TIP [Python] UTF-8 한글 자르기

오픈TIP 닷넷에서 coolSMS 인증코드 만들기 [1]

오픈TIP 구글독스 스프레드시트 문자발송 애드온 만들기 file

오픈TIP C# Sohot 연동 방법 공유 [2]

오픈TIP XE 새글, 댓글 알림 애드온 만들기 file

오픈TIP [JAVA] 톰캣 JSP에서 사용시 한글 깨지는 문제 해결하기

오픈TIP CTM-PHP v2.3 에서 미국, 일본, 중국 등 해외문자 보내기

오픈TIP VisualStudio 2008 에서 SoHot SMS 컴포넌트를 MFC프로젝트에 적용하기

오픈TIP 오라클 10g 에서 Open Agent 빌드할 때 stdc++라이브러리 버젼에 따른 링크오류 해결하기 file

오픈TIP 안드로이드폰에서 쿨에스엠에스 문자 보내기 file

오픈TIP [PHP] UTF-8 유니코드 한글 자르기