결제위젯 Android SDK는 Android 환경에서 사용할 수 있는 결제위젯 메서드를 제공합니다. SDK를 추가하고 메서드를 사용하는 방법을 알아봅니다.
결제위젯 Android SDK를 설치하기 전에 최소 요구 사항을 확인하세요.
- minSdk 21 이상
프로젝트의 Gradle 설정을 아래와 같이 설정하면 결제위젯 Android SDK를 사용하실 수 있습니다.
allprojects {
repositories {
...
mavenCentral()
maven { url "https://jitpack.io" }
}
}
dependencies {
implementation 'com.github.tosspayments:payment-sdk-android:0.1.2'
}
res/layout
디렉토리에 결제 화면의 Layout XML 파일을 생성하세요. 파일 안에 PaymentMethodWidget
을 추가해주세요.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
...
<com.tosspayments.paymentsdk.view.PaymentMethodWidget
android:id="@+id/payment_widget"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp" />
...
</androidx.constraintlayout.widget.ConstraintLayout>
토스페이먼츠 위젯입니다. Android SDK는 결제위젯 이용약관 메서드를 제공하지 않습니다.
PaymentWidget(activity: AppCompatActivity, clientKey: String, customerKey: String, options: PaymentWidgetOptions?)
- activity
- clientKey
내 상점의 클라이언트 키입니다. API 키 페이지에서 확인할 수 있습니다.
- customerKey
고객 ID입니다. 충분히 무작위한 값을 직접 생성해서 사용하세요. 비회원 결제에는
PaymentWidget.ANONYMOUS
를 사용하세요. - options optional
결제위젯 Pro 플랜 기능을 설정하는
PaymentWidgetOptions
객체입니다.
위젯 라이브러리에 결제위젯을 설정하는 메서드입니다.
setMethodWidget(methodWidget: PaymentMethodWidget)
- methodWidget
위젯 라이브러리에 추가할
PaymentMethodWidget
입니다.
결제위젯을 렌더링하는 메서드입니다.
renderPaymentMethodWidget(amount: Number, orderId: String)
- amount
결제할 금액입니다.
- orderId
주문 ID입니다. 충분히 무작위한 값을 직접 생성해서 사용하세요. 영문 대소문자, 숫자, 특수문자
-
,_
로 이루어진 6자 이상 64자 이하의 문자열이어야 합니다.
고객이 선택한 결제수단의 결제창을 호출하는 메서드입니다.
requestPayment(paymentResultLauncher: ActivityResultLauncher<Intent>,
orderId: String,
orderName: String,
customerEmail: String?,
customerName: String?,
taxFreeAmount: Number?
)
- paymentResultLauncher
결제 결과로 활동(Activity)을 실행하는
ActivityResultLauncher
입니다. - orderId
주문 ID입니다. 충분히 무작위한 값을 직접 생성해서 사용하세요. 영문 대소문자, 숫자, 특수문자
-
,_
로 이루어진 6자 이상 64자 이하의 문자열이어야 합니다. - orderName
주문명입니다. 예를 들면
생수 외 1건
같은 형식입니다. 최대 길이는 100자입니다. - customerName optional
고객의 이름입니다. 최대 길이는 100자입니다.
- customerEmail optional
고객의 이메일 주소입니다. 최대 길이는 100자입니다.
- taxFreeAmount optional
결제 금액 중 면세 금액입니다.
결제위젯 Pro 플랜 기능을 설정하는 클래스입니다.
PaymentWidgetOptions
객체를 생성합니다.
build()
PaymentWidgetOptions
객체를 생성하는 Builder 클래스입니다.
Builder 객체를 생성합니다.
PaymentWidgetOptions.Builder()
결제위젯에 브랜드페이를 추가할 때 설정합니다.
brandPayOption(redirectUrl: String)
- redirectUrl
브랜드페이 Access Token 발급 과정에서 임시 인증 코드를 받을 URL입니다.
결제위젯 View입니다.
PaymentMethodWidget(context: Context, attrs: AttributeSet? = null): View
- context
Context
입니다. - attrs
AttributeSet
입니다.
결제 결과 정보를 담고 있는 Sealed 클래스입니다.
sealed class TossPaymentResult{
class Success(paymentKey: String, orderId: String, amount: Number, additionalParameters: Map<String, String>): TossPaymentResult()
class Fail(errorCode: String, errorMessage: String, orderId: String): TossPaymentResult()
}
- paymentKey
- orderId
주문 ID입니다. 결제 요청에 담아 보낸 값입니다.
- amount
결제할 금액입니다.
- additionalParmeters
브랜드페이를 추가하는 Pro 플랜 기능을 사용하고 있다면 필요한 파라미터입니다.
- paymentType
결제 유형입니다.
NORMAL
,BRANDPAY
중 하나입니다.NORMAL
: 일반 결제입니다. 코어 결제 승인 API를 호출해서 결제를 완료하세요.BRANDPAY
: 브랜드페이 결제입니다. 브랜드페이 결제 승인 API를 호출해서 결제를 완료하세요.
- errorCode
에러 코드입니다.
- errorMessage
에러 메시지입니다.
- orderId
주문 ID입니다. 결제 요청에 담아 보낸 값입니다.