ÆÁ¾ØÅ¥
2020.06.16 / 12:55

ÈÞ´ëÆù º»ÀÎÀÎÁõ ¿¬µ¿Çϱâ

Äڷγª
Ãßõ ¼ö 202

ÈÞ´ëÆù º»ÀÎÀÎÁõ ¿¬µ¿Çϱâ


https://docs.iamport.kr/tech/mobile-authentication#add-library

https://www.iamport.kr/getstarted



https://github.com/zladnrms/IamportAuthExample



[Android/¿¬µ¿¹æ¹ý] SMS º»ÀÎÀÎÁõ ¿¬µ¿ (with iamport, ¾ÆÀÓÆ÷Æ®) (1)
Android/¿¬µ¿ ¹æ¹ý 2019. 10. 14. 13:15


🤗 Android SMS º»ÀÎÀÎÁõ ±¸ÇöÇϱâ

Android¿¡¼­ SMS º»ÀÎÀÎÁõÀ» ±¸ÇöÇÏ´Â ¹æ¹ý¿¡´Â ¿©·¯°¡Áö ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù.
1) ¼­¹ö¿¡¼­ ¹®ÀÚ ÀÎÁõ ü°è¸¦ ±¸ÃàÇÏ¿© ÁøÇàÇÏ´Â ¹æ¹ý
2) PG»ç¿¡¼­ Á¦°øÇÏ´Â º»ÀÎ ÀÎÁõ API¸¦ ÀÌ¿ëÇÏ¿© ±¸ÃàÇÏ´Â ¹æ¹ý 
µî..

ÀÌ ±Û¿¡¼­´Â 2¹ø, ±× Áß ¾Æ·¡¿Í °°Àº È­¸é¿¡¼­ ÀÎÁõÀ» ÇÏ´Â ¹æ¹ýÀ» ±¸ÇöÇغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.

¸¹ÀÌµé º¸¼ÌÀ» È­¸é..

 

À§´Â ´Ù³¯(Danal) PG»ç¿¡¼­ Á¦°øÇÏ´Â API¸¦ ÀÌ¿ëÇÑ ÀÎÁõ½Ã½ºÅÛÀÇ ÇÑ È­¸éÀä,

À̸¦ ½±°í °£ÆíÇÏ°Ô ±¸ÇöÇϱâ À§ÇÑ API¸¦ ¾ÆÀÓÆ÷Æ®¿¡¼­ Á¦°øÇÕ´Ï´Ù.

µû¶ó¼­ ÀÌ ±Û¿¡¼­´Â ¾ÆÀÓÆ÷Æ® Ç÷§ÆûÀ» ÀÌ¿ëÇÏ¿© ÁøÇàÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù.

 

¾ÆÀÓÆ÷Æ® °ø½ÄȨÆäÀÌÁö

 

°³¹ßÀÚ¸¦ À§ÇÑ ¹«·á °áÁ¦¿¬µ¿ API, ¾ÆÀÓÆ÷Æ®

¾ÆÀÓÆ÷Æ®¸¦ importÇϼ¼¿ä. ¾ÆÀÓÆ÷Æ®ÀÇ Ç³ºÎÇÑ REST API ±â´ÉÀ» ÀÌ¿ëÇÏ¸é °áÁ¦¿¬µ¿ÀÌ ÈξÀ ½¬¿öÁý´Ï´Ù. Áö±Ý ½ÃÀÛÇϼ¼¿ä.

www.iamport.kr

 

Á¦°¡ ÀÛ¼ºÇÑ Full ¿¹Á¦´Â ¿©±â¼­ È®ÀÎÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.

https://github.com/zladnrms/IamportAuthExample

 

zladnrms/IamportAuthExample

IAMPORT SMS º»ÀÎÀÎÁõ ¿¹Á¦ÀÔ´Ï´Ù. Contribute to zladnrms/IamportAuthExample development by creating an account on GitHub.

github.com

 

📕 ½ÃÀÛÇϱâ Àü¿¡..

 

¾ÆÀÓÆ÷Æ® °ø½Ä °³¹ß°¡À̵忡¼­ ³ª¿ÍÀÖµíÀÌ, À¥ºä¸¦ ÅëÇÑ ÀÎÁõ ÈÄ °á°ú¸¦

Android Code (Java Or Kotlin)À¸·Î ¾ò¾î¿Í¼­ ó¸®ÇÏ´Â ¹æ¹ýÀ»ÃëÇØ¾ß ÇÕ´Ï´Ù.

 

±×·¯´Ï±î º»ÀÎÀÎÁõÀ» À§ÇÑ Ã³¸® ¼ø¼­¸¦ ´ëºÐ·ù·Î ³ª´²º¸ÀÚ¸é,

 

¾Èµå·ÎÀ̵忡¼­ º»ÀÎÀÎÁõ ½Ãµµ -> À¥ºä¸¦ ÅëÇÑ º»ÀÎÀÎÁõ -> °á°ú¸¦ ¾Èµå·ÎÀ̵å·Î °¡Á®¿È -> ó¸®

ÀÇ ¼ø¼­¸¦ ÃëÇÏ°Ô µË´Ï´Ù.

 

±Û ÀÛ¼ºÀº, ù¹ø°·Î´Â ¾ÆÀÓÆ÷Æ® °¡À̵å¶óÀÎÀ» Ãæ½ÇÈ÷ µû¸¥ ¼ø¼­·Î ÀÛ¼ºÇÒ °ÍÀ̸ç,

±× ÇÏ´Ü¿¡´Â Á¦°¡ ½Ç¹«¿¡ Àû¿ëÇÑ ¹æ¹ýÀ» ±×´ë·Î ±â¼úÇÏ°Ú½À´Ï´Ù.

 

📗 °³¹ß ¹æ¹ý

 

1. ÀÎÁõ À¥ºä·Î »ç¿ëÇÒ html ÆÄÀÏÀ» ÀÛ¼ºÇØÁÝ´Ï´Ù. ÀÌ ¿¹½Ã´Â ¾ÆÀÓÆ÷Æ® °ø½Ä ȨÆäÀÌÁö¿¡¼­ ¼Ò°³ÁßÀÔ´Ï´Ù.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js" ></script>
<script type="text/javascript" src="https://cdn.iamport.kr/js/iamport.payment-1.1.5.js" ></script>
</head>
<body>
<!-- ¾ÆÀÓÆ÷Æ® ÀÚ¹Ù½ºÅ©¸³Æ®´Â jQuery ±â¹ÝÀ¸·Î °³¹ßµÇ¾ú½À´Ï´Ù -->
 
<script type="text/javascript">
var IMP = window.IMP; // »ý·«°¡´É
IMP.init('iamport'); // 'iamport' ´ë½Å ºÎ¿©¹ÞÀº "°¡¸ÍÁ¡ ½Äº°ÄÚµå"¸¦ »ç¿ë
 
/* Áß·« */
IMP.certification({
    merchant_uid : 'merchant_' + new Date().getTime() //º»ÀÎÀÎÁõ°ú ¿¬°üµÈ °¡¸ÍÁ¡ ³»ºÎ ÁÖ¹®¹øÈ£°¡ Àִٸ頳ѰÜÁÖ¼¼¿ä
}, function(rsp) {
    if ( rsp.success ) {
         // ÀÎÁõ¼º°ø
        console.log(rsp.imp_uid);
        console.log(rsp.merchant_uid);
        
        $.ajax({
                type : 'POST',
                url : '/certifications/confirm',
                dataType : 'json',
                data : {
                    imp_uid : rsp.imp_uid
                }
         }).done(function(){
           takeResponseAndHandle(rsp)
         });
            
    } else {
         // ÀÎÁõÃë¼Ò ¶Ç´Â ÀÎÁõ½ÇÆÐ
        var msg = 'ÀÎÁõ¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.';
        msg += '¿¡·¯³»¿ë : ' + rsp.error_msg;
 
        alert(msg);
    }
});
 
function takeResponseAndHandle(rsp) {
    if ( rsp.success ) {
        // ÀÎÁõ¼º°ø
        console.log(rsp.imp_uid);
        console.log(rsp.merchant_uid);
    } else {
         // ÀÎÁõÃë¼Ò ¶Ç´Â ÀÎÁõ½ÇÆÐ
        var msg = 'ÀÎÁõ¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.';
        msg += '¿¡·¯³»¿ë : ' + rsp.error_msg;
 
        alert(msg);
    }
}
</script>
</body>
</html>

Hot Ez Ex) 

°¡¸ÍÁ¡ ½Äº°ÄÚµå : ¾ÆÀÓÆ÷Æ® °ü¸®ÀÚ ÆäÀÌÁöÀÇ '³» Á¤º¸'¿¡ ÀÖ´Â imp·Î ½ÃÀÛÇÏ´Â ¹®ÀÚ¿­À» ³Ö¾îÁÝ´Ï´Ù.

 

 

¾ÆÀÓÆ÷Æ® °ü¸®ÀÚÆäÀÌÁöÀÇ '³» Á¤º¸'

 

¿©±â±îÁö¸¸ ÁøÇàÇϼ̾ html¸¦ ºê¶ó¿ìÀú·Î ½ÇÇà½ÃÄѺ¸½Ã¸é ¾Æ·¡¿Í °°Àº ÀÎÁõ ÆäÀÌÁö°¡ ¶ß°Ô µÉ  °Í ÀÔ´Ï´Ù.

 

 

½ÇÇà °á°ú

 

±×·¸´Ù¸é À¥ºäÀÇ ÀÚ¹Ù½ºÅ©¸³Æ®ÂÊ ¼Ò½º¸¦ °£·«ÇÏ°Ô ¾Ë¾Æº¾½Ã´Ù.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script>
IMP.certification({
    merchant_uid : 'merchant_' + new Date().getTime() //º»ÀÎÀÎÁõ°ú ¿¬°üµÈ °¡¸ÍÁ¡ ³»ºÎ ÁÖ¹®¹øÈ£°¡ Àִٸ頳ѰÜÁÖ¼¼¿ä
}, function(rsp) {
    if ( rsp.success ) {  //(1) ÀÎÁõ¿¡ ¼º°ø ½Ã!!
        console.log(rsp.imp_uid);
        console.log(rsp.merchant_uid);
        
        $.ajax({  
                type : 'POST',
                url : '/certifications/confirm',
                dataType : 'json',
                data : {
                    imp_uid : rsp.imp_uid
                }
         }).done(function(){
           takeResponseAndHandle(rsp)
         });
            
    } else {   //(2) ÀÎÁõ Ãë¼Ò ¶Ç´Â ÀÎÁõ ½ÇÆР½Ã
        var msg = 'ÀÎÁõ¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.';
        msg += '¿¡·¯³»¿ë : ' + rsp.error_msg;
 
        alert(msg);
    }
});
</script>

 

 

º»ÀÎ ÀÎÁõÀÌ ¼º°øÇؾ߸¸ rsp ³»ÀÇ º¯¼ö¸¦ ó¸®ÇÒ ¼ö ÀÖÀ¸¸ç, ¾Æ´Ò ½Ã else ºí·Ï ³»ÀÇ Ã³¸®·Î ³Ñ¾î°¡°Ô µÇ´Â °Í Àä, ±×Áß¿¡

 

$.ajax({

 

}).done(function(){

 

});

 

ÀÌ Ã³¸®ÀÇ °æ¿ì, º»ÀÎÀÎÁõÀÌ ¼º°øÇÏ¿´À» ¶§, ÀÚ½ÅÀÇ ¼­¹ö¿¡¼­ 󸮸¦ ÇØÁÙ °ÍÀÌ ÀÖ´Ù¸é ÇØÁÖ´Â °ÍÀÌ°í, ¾Æ´Ï¶ó¸é ÇÊ¿ä¾ø´Â ºÎºÐÀÔ´Ï´Ù.

 

ÀÌ¿Í´Â º°°³·Î, º»ÀÎÀÎÁõ¿¡ ¼º°øÇÑ »ç¶÷ÀÇ Á¤º¸ (¼ºº°, À̸§ µî)À» È®ÀÎÇÏ°í½Í´Ù¸é, iamportÀÇ rest api¸¦ ÀÌ¿ëÇÏ¿© ¹Þ¾Æ¿Í¾ß ÇÕ´Ï´Ù.

 

ÀÌ´Â, ¿©±â¿¡¼­ ½±°Ô ã¾Æ º¼ ¼ö ÀÖ½À´Ï´Ù.

 

📘 WebView´Â ¿Ï¼º, ¿¬°áÀº?

 

ÀÎÁõ¿¡ ¼º°øÇ߰ųª ½ÇÆÐÇÏ¿´À» ¶§, ÇØ´ç ¿©ºÎ¸¦ ¾Èµå·ÎÀ̵å¿Í Åë½ÅÇÏ¿©¾ß ÇÕ´Ï´Ù.

ÀÌ°ÍÀº ¾Èµå·ÎÀ̵å¿Í ÀÚ¹Ù½ºÅ©¸³Æ®ÀÇ ¿¬µ¿À» ÅëÇÏ¿© ó¸®ÇÏ°Ô µË´Ï´Ù.

 

¿ì¼±, ¾Èµå·ÎÀ̵忡¼­ ÇØ´ç 󸮸¦ À§ÇÑ Class¸¦ ¸¸µé¾îÁÝ´Ï´Ù.

1
2
3
4
5
6
7
8
9
10
import android.webkit.JavascriptInterface
 
class SmsAuthFactory(activity: Activity) {
    private val TAG = "SmsAuthFactory¡Ú"
 
    @JavascriptInterface
    fun resultAuth(message: String) {
        //javascript·Î ºÎÅÍ ¿Â parameter (message)¸¦ Ã³¸®
    }

resultAuth ÇÔ¼ö°¡ ÀÖ°í, JavascriptInterface AnnotationÀÌ ºÙ¾îÀÖ½À´Ï´Ù.

ÀÚ¹Ù½ºÅ©¸³Æ®¿Í ¿¬µ¿µÇ´Â ÀÎÅÍÆäÀ̽º¸¦ ÀÌ¿ëÇÏ´Â ÇÔ¼öÀΰ¡? ¶ó´Â »ý°¢À» ÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

ÇÏÁö¸¸ ¿©±â±îÁö¸¸ º¸¸é ÀÌÇØ°¡ Àß µÇÁö ¾Ê½À´Ï´Ù.

±×·¯¹Ç·Î À̾ ÀÚ¹Ù½ºÅ©¸³Æ®¿¡¼­ ¾Èµå·ÎÀ̵å·Î °ªÀ» º¸³»´Â ¿ªÇÒÀ» Çϴ ó¸®¸¦ º¸µµ·Ï ÇսôÙ.

 

1
2
3
4
5
6
<script>
...Áß·«...
 
window.AndroidBridge.resultAuth('success');
 
</script>

 

window°´Ã¼ µÚÀÇ AndroidBridge´Â Á¶¸¸°£ µû·Î ¸¸µé¾îÁÙ namespace °°Àº °ªÀÔ´Ï´Ù.

 

±Ùµ¥ resultAuth('success'); ºÎºÐÀ» Àß º¸¸é, À§¿¡ JavascriptInterface AnnotationÀ» ºÙÀÎ ÇÔ¼ö¿Í À̸§ÀÌ °°´Ù´Â °ÍÀ»  ¾Ë ¼ö ÀÖ½À´Ï´Ù.

 

Áï window.AndroidBridge¸¦ ÅëÇÏ¿© À§¿¡ ¸¸µç SmsAuthFactoryÀÇ resultAuth ÇÔ¼ö·Î °ªÀ» Àü´ÞÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÌ°ÚÁö¿ä? 

 

ÀÌ·¯ÇÑ ¹æ½ÄÀ¸·Î ¾Èµå·ÎÀ̵å¿Í ÀÚ¹Ù½ºÅ©¸³´Â »óÈ£ÀÛ¿ëÇÏ°Ô µË´Ï´Ù.

 

ÀÌÁ¦ ¸¶Áö¸·À¸·Î, º»ÀÎÀÎÁõ À¥ºä¸¦ ¶ç¿ì´Â ¾Èµå·ÎÀ̵å Activity¿¡¼­ÀÇ Ã³¸®¸¦ º¾½Ã´Ù.

 

À¥ºä¿Í À§ÀÇ SmsAuthFactory¸¦ ¿¬°áÇÏ´Â ÇÑ ÁÙÀÇ ÄÚµå¸é ÇØ°áµË´Ï´Ù.

1
webView.addJavascriptInterface(SmsAuthFactory(), "AndroidBridge")

 

SmsAuthFactory Ŭ·¡½º¸¦ AndroidBridge¶ó´Â namespace·Î javascript window °´Ã¼¿¡ ¸¸µé¾îÁÖ´Â °ÍÀÔ´Ï´Ù.

 

±×·¯¸é ÀÚ¹Ù½ºÅ©¸³Æ®ÂÊ ¼Ò½º Äڵ带 Á¤¸®Çغ¸°Ú½À´Ï´Ù.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script>
IMP.certification({
    merchant_uid : 'merchant_' + new Date().getTime() //º»ÀÎÀÎÁõ°ú ¿¬°üµÈ °¡¸ÍÁ¡ ³»ºÎ ÁÖ¹®¹øÈ£°¡ Àִٸ頳ѰÜÁÖ¼¼¿ä
}, function(rsp) {
    if ( rsp.success ) {  //(1) ÀÎÁõ¿¡ ¼º°ø ½Ã!!
        console.log(rsp.imp_uid);
        console.log(rsp.merchant_uid);
        
        $.ajax({  
                type : 'POST',
                url : '/certifications/confirm',
                dataType : 'json',
                data : {
                    imp_uid : rsp.imp_uid
                }
         }).done(function(){
           takeResponseAndHandle(rsp)
         });
            
    } else {   //(2) ÀÎÁõ Ãë¼Ò ¶Ç´Â ÀÎÁõ ½ÇÆР½Ã
        var msg = 'ÀÎÁõ¿¡ ½ÇÆÐÇÏ¿´½À´Ï´Ù.';
        msg += '¿¡·¯³»¿ë : ' + rsp.error_msg;
 
        alert(msg);
    }
});
</script>

 

ÀÎÁõÀÇ °á°ú ¿©ºÎ¸¦ AndroidBridge¶ó ¸í¸íÇÑ SmsAuthFactory Ŭ·¡½º¸¦ ÅëÇÏ¿© ¾Èµå·ÎÀ̵å·Î Àü´ÞÇÏ´Â ÄÚµåÀÔ´Ï´Ù.

 

 

📚 °¨ Àâ±â ³¡.. ÇÕÄ¡ÀÚ!

 

¿©±â±îÁö´Â °¨Àâ±â ¹× ÀüüÀûÀΠƲÀ» ¾Ë°í ÀÚÀ¯ÀÚÀç·Î ó¸®Çϱâ À§ÇÑ ¹Ø¹ÞħÀ̾ú½À´Ï´Ù.

¾Æ·¡ºÎÅÍ´Â ½ÇÀü¿¡¼­ º»ÀÎÀÎÁõ ÈÄ, ÀÎÁõ ¼º°ø ½Ã ÇØ´ç ÀÎÁõÁ¤º¸±îÁö ¹Þ¾Æ¿À´Â 󸮸¦ Çغ¸µµ·Ï ÇÏ°Ú½À´Ï´Ù.

 

📙 ±¸¼º¿ä¼Ò

º»ÀÎ ÀÎÁõ È­¸éÀ¸·Î ³Ñ¾î°¡±â À§ÇÑ ¹öÆ° Á¸Àç ¾×ƼºñƼ

º»ÀÎ ÀÎÁõÀ» ÁøÇàÇÏ´Â WebView Activity

ÀÚ¹Ù½ºÅ©¸³Æ®¿Í ¾Èµå·ÎÀ̵åÀÇ Interface ¿ªÇÒÀ» ÇÏ´Â SmsAuthFactory Class 

WebView¸¦ ±¸¼ºÇÏ´Â html

 

ÀÌ·¸°Ô ÃÑ 4°¡Áö°¡ ÇÊ¿äÇÕ´Ï´Ù.

 

º»ÀÎ ÀÎÁõ È­¸éÀ¸·Î ³Ñ¾î°¡±â À§Çؼ­, ¹öÆ° Ŭ¸¯ À̺¥Æ®°¡ ¹ß»ýÇßÀ» ¶§

º»ÀÎÀÎÁõ WebView Activity¸¦ startActivityForResult¸¦ ÅëÇÏ¿© ½ÇÇà½ÃÅ°µµ·Ï ÇÕ´Ï´Ù.

1
startActivityForResult(..., SMS_AUTH_REQ_CODE)

 

±×¸®°í À§ÀÇ SmsAuthFactory Class¿¡¼­ Á¶±Ý Ãß°¡ÇØÁÙ »çÇ×ÀÌ ÀÖ½À´Ï´Ù.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import android.app.Activity
import android.app.Activity.RESULT_OK
import android.content.Intent
import android.webkit.JavascriptInterface
 
class SmsAuthFactory(activity: Activity) {
    private val TAG = "SmsAuthFactory¡Ú"
 
    private val activity = activity
 
    @JavascriptInterface
    fun resultAuth(message: String, impKey: String?) {
        val intent = Intent()
 
        if(message == "success" && impKey != null) {
            intent.putExtra("result","success")
            intent.putExtra("imp_key", impKey)
            activity.setResult(RESULT_OK,intent)
            activity.finish()
        }
        else {
            intent.putExtra("result","failure")
            activity.setResult(RESULT_OK,intent)
            activity.finish()
        }
    }
}

 

 

Hot Ez Ex) getString(R.string.imp_key)¿Í getString(R.string.imp_secret)Àº i'amport °ü¸®ÀÚ ÆäÀÌÁöÀÇ °¡¸ÍÁ¡ ½Äº°ÄÚµå ¾Æ·¡¿¡ ÀÖ´Â 2°¡Áö¸¦ ÀǹÌÇϸç, impKey´Â ÀÎÁõ¿¡ ¼º°øÇßÀ» ½Ã ¹ÞÀ» ¼ö ÀÖ´Â ÀÚ¹Ù½ºÅ©¸³Æ® »ó¿¡¼­ÀÇ imp_key¸¦ ÀǹÌÇÑ´Ù.

 

 

¹Ù·Î ÀÌ 2°¡Áö!

 

 

ÀÌÁ¦ ÀÚ¹Ù½ºÅ©¸³Æ®¸¦ ¾ÆÁÖ Á¶±Ý ¼Õº¸¸é µË´Ï´Ù.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
 
    if(requestCode == SMS_AUTH_REQ_CODE) {
        data?.let {
            it.getStringExtra("result")?.let { result ->
                Toast.makeText(this, result, Toast.LENGTH_SHORT).show()
            }
            it.getStringExtra("imp_key")?.let { impKey ->
                viewModel.smsAuthPostAccessToken(getString(R.string.imp_key), getString(R.string.imp_secret), impKey)
            } ?: Toast.makeText(this, "ÀÎÁõ °á°ú°¡ ´©¶ôµÇ¾ú½À´Ï´Ù.\nÀçÀÎÁõÀÌ ÇÊ¿äÇÕ´Ï´Ù.", Toast.LENGTH_SHORT).show()
        }
    }
}

 

À§¿¡¼­ º¯¼ö ÇÑ °³¸¦ ³Ñ±â´Â °ÍÀÌ Ãß°¡µÇ¾ú½À´Ï´Ù. (rsp.imp_uid)

À̸¦ ³Ñ±èÀ¸·Î½á ÇØ´ç À¯ÀúÀÇ Á¤º¸(À̸§, ÇÚµåÆù ¹øÈ£ µî)À» ÃßÀûÇÒ ¼ö ÀÖ½À´Ï´Ù.

 

ÀÌÁ¦ ÀÌ Á¤µµ¸é ÀÎÁõ °úÁ¤Àº ¸ðµÎ ³¡³µ½À´Ï´Ù.


´ÙÀ½Àº ¾ÆÀÓÆ÷Æ®¿¡¼­ Á¦°øÇÏ´Â rest api¸¦ ÅëÇÏ¿© ÇØ´ç À¯ÀúÀÇ Á¤º¸¸¦ ¹Þ¾Æ¿À´Â 󸮸¦ ÁøÇàÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù

 

https://zladnrms.tistory.com/61?category=861489

 

[Android/¿¬µ¿¹æ¹ý] SMS º»ÀÎÀÎÁõ ¿¬µ¿ (with iamport, ¾ÆÀÓÆ÷Æ®) (2)

Android SMS º»ÀÎÀÎÁõ À¯ÀúÀÇ Á¤º¸ ¾ò±â ´Ü¼ø º»ÀÎÀÎÁõ °á°ú¸¸ÀÌ ¾Æ´Ñ, º»ÀÎÀÎÁõÇÑ À¯ÀúÀÇ Á¤º¸¸¦ °¡Á®¿À°í ½Í´Ù¸é ¾ÆÀÓÆ÷Æ®¿¡¼­ Á¦°øÇÏ´Â rest api¸¦ ÅëÇÏ¿© ¹Þ¾Æ¿Í¾ß ÇÕ´Ï´Ù. ÀÌ´Â https://api.iamport.kr/users..

zladnrms.tistory.com

#¾Èµå·ÎÀ̵å iamport ¿¬µ¿ #¾Èµå·ÎÀÌµå ¹®ÀÚÀÎÁõ