아임포트로 Android 에서 세상 빠르게 결제 연동하기🌱

안녕하세요~ 아임포트 개발팀의 빙봉입니다~~ 🌱

아임포트에서는 Android / iOS 와 크로스 플랫폼을 비롯한 대부분의 환경에서 결제 연동을 지원하고 있는데요.

쉽고 빠르게 안드로이드 프로젝트에서 결제 연동하는 방법을 알려드리겠습니다.


아래의 짧은 포스팅을 하나하나 따라하면 누구나 결제 연동을 할 수 있습니다!

해당 프로젝트 완성본은 아래 링크에서 보실 수 있습니다.

기반이 되는 kotlin 버전은 이 링크에 있습니다.


프로젝트 만들기 🎨


우선 안드로이드 스튜디오에서 프로젝트를 하나 생성해보겠습니다.


Create New Project → Basic Activity → Next


Name 에 적당한 이름을 지어줍니다.

여기서는 My Iamport Implement 로 설정하겠습니다.

Finish 버튼을 눌러 프로젝트를 생성합니다.


기본적인 안드로이드 프로젝트가 생성 되었습니다~!!


생성된 프로젝트에 아임포트 Android SDK 를 연결하고,

버튼을 통해 결제 창을 열어보겠습니다.


SDK 연동하기 🔌

아임포트 안드로이드 SDK 는 github 오픈소스 프로젝트이며,

gradle 을 통해서 프로젝트와 연결할 수 있습니다.


안드로이드 스튜디오 좌측 드롭다운을 열면 프로젝트 구조를 볼 수 있습니다.

Gradle Scripts 아래 프로젝트단 build.gradle(Project:) 을 열어줍니다.


allprojects 의 repositories 에 maven jitpack 을 추가 합니다

allprojects {
    repositories {
	..
	// 추가
        maven {
            url 'https://jitpack.io'
        }
    }
}


모듈단 build.gradle(Module:) 을 열어서 아래 코드를 추가합니다.

android {
	..
	buildFeatures {
            viewBinding true
            dataBinding true
	}
}
dependencies {
	..
	implementation 'com.github.iamport:iamport-android:$SDK-VERSION'
}

$SDK-VERSION 최신 버전 정보는 아래 링크에서 찾을 수 있습니다.


상단의 Sync Now 버튼을 누르고,

망치 모양 Make Project 버튼을 클릭하여 정상적으로 컴파일 되는지 확인합니다.


여기까지 됐으면 프로젝트와 SDK 연동은 끝이 났습니다!

이제는 결제 연동을 진행해볼까요~~?


결제 연동하기 🔥


안드로이드 스튜디오 좌측 인스펙터 패키지에서

우클릭 New → Kotlin Class/File → BaseApplication 파일을 만듭니다.


BaseApplication 에 아래 코드를 작성합니다.

package com.iamport.myiamportimplement

import android.app.Application
import com.iamport.sdk.domain.core.Iamport

class BaseApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        Iamport.create(this)
    }
}


AndroidMafinest.xml 을 열어서 android:name=”.BaseApplication” 를 추가합니다.

<application
        android:name=".BaseApplication"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
...

참고 : 이미 Application 를 상속 받는 클래스가 있다면 위의 두 과정은 생략하고,

상속받은 클래스에서 Iamport.create(this) 만 추가합니다.


이제 MainActivity 에서 결제 요청 함수를 호출해보겠습니다.

onCreate 함수에 Iamport.init(this) 를 추가합니다

override fun onCreate(savedInstanceState: Bundle?) {
		..
    // binding.fab.setOnClickListener { view -> 코드는 제거
    // 아임포트 SDK 와 현재 Activity 를 연결해 초기화
    Iamport.init(this)
}


onStart 함수를 새로 추가하여 결제를 요청할 request 데이터와 Iamport.payment 결제 요청 함수를 작성합니다.

    override fun onStart() {
        super.onStart()
        
        val userCode = "iamport"  // 가맹점식별코드, "iamport" 는 테스트용 코드임

        // SDK 에 결제 요청할 데이터
        val request = IamPortRequest(
            pg = PG.html5_inicis.makePgRawName(""),         // PG사
            pay_method = PayMethod.card,                    // 결제수단
            name = "아임포트 진짜 쉬워요!",                      // 주문명
            merchant_uid = "sample_aos_${Date().time}",     // 주문번호
            amount = "1000",                                // 결제금액
            buyer_name = "김개발"
        )

        // 우측 하단 초록색 편지지 버튼 클릭
        binding.fab.setOnClickListener { view ->
            Snackbar.make(view, "아임포트에서 결제 해볼까요?", Snackbar.LENGTH_LONG)
                .setAction("결제") {
                    // 아임포트에 결제 요청하기
                    Iamport.payment("iamport", request, paymentResultCallback = {
                        // 결제 완료 후 결과 콜백을 토스트 메시지로 보여줌
                        Toast.makeText(this, "결제결과 => $it", Toast.LENGTH_LONG).show()
                    })
                }.show()
        }
    }

MainActivity 풀소스는 아래 링크를 참조해주세요.


이게 전부입니다!! 🙌


상단 초록색 Run 버튼을 통해 앱을 실행하여 결제가 되는지 확인합니다.

하드웨어 기기에서 앱 실행 https://developer.android.com/studio/run/device?hl=ko


아래 영상과 같이 실행된 앱에서 우하단 녹색 편지 버튼을 클릭하여 결제를 진행합니다.

결제 완료 후 앱으로 자동 복귀하며,

결제 결과 내역을 토스트 메시지로 확인할 수 있습니다.


테스트 결제 내역은 아래 아임포트 어드민 페이지에서

관리자 체험하기 버튼상단 결제 승인내역 탭하단 검색 버튼 을 통해 확인하실 수 있습니다.

테스트 모드는 24시간 내에 결제 환불 처리되며, 수동으로 결제 취소 또한 가능합니다.


이렇게 단 몇 줄의 코드로 아임포트를 이용하여 빠르게 결제 연동을 끝낼 수 있습니다!


아임포트 가입과 더 자세한 사항은 아래 링크를 참조 바랍니다!

  • 아임포트 안드로이드 SDK 의 또 다른 예제 앱
  • GitHub
  • 홈페이지
  • Docs

위 내용 관련해서 질문 있으시면 언제든지 편하게 아래 연락처로 연락주시길 바랍니다! 감사합니다! 🙂

Leave a Reply