반응형
오늘은 부트페이 API 를 사용하는 예제를 준비해봤습니다 .
하기전에 API를 사용하려면 해당 사이트의 동의를 받아야겠죠!
1.부트페이 접속(https://www.bootpay.co.kr/) --- 부트페이 회원가입 , 로그인
2.상단에 결제설치 메뉴에서 인증키 및 보안에 들어가서 자신의 안드로이드 어플리케이션을 id 확인
더 자세한 내용은부트페이 개발자메뉴얼 페이지가서 확인 , 에뮬레이터보다 핸드폰으로 확인해보세요
(https://docs.bootpay.co.kr/online/total?language=android )
XML을 아주아주 간단하게 만들어보겠습니다 .
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
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"
tools:context=".MainActivity">
<Button
android:id="@+id/test"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="결제"
android:textSize="30sp"/>
</LinearLayout>
버튼 한개로만 설정하겠습니다 .
다음은 메인 액티비티입니다 .
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import kr.co.bootpay.Bootpay;
import kr.co.bootpay.BootpayAnalytics;
import kr.co.bootpay.enums.Method;
import kr.co.bootpay.enums.PG;
import kr.co.bootpay.enums.UX;
import kr.co.bootpay.listener.CancelListener;
import kr.co.bootpay.listener.CloseListener;
import kr.co.bootpay.listener.ConfirmListener;
import kr.co.bootpay.listener.DoneListener;
import kr.co.bootpay.listener.ErrorListener;
import kr.co.bootpay.listener.ReadyListener;
import kr.co.bootpay.model.BootExtra;
import kr.co.bootpay.model.BootUser;
public class MainActivity extends AppCompatActivity {
Button button;
private int stuck = 10;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 초기설정 - 해당 프로젝트(안드로이드)의 application id 값을 설정합니다. 결제와 통계를 위해 꼭 필요합니다.
// 앱에서 확인하지 말고 꼭 웹 사이트에서 확인하자. 앱의 application id 갖다 쓰면 안됨!!!
BootpayAnalytics.init(this, "안드로이드 ID ");
button = findViewById(R.id.test);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
BootUser bootUser = new BootUser().setPhone("010-XXXX-XXXX"); //자기 전화번호
BootExtra bootExtra = new BootExtra().setQuotas(new int[]{0, 2, 3});
Bootpay.init(getFragmentManager())
.setApplicationId("안드로이드 ID") // 해당 프로젝트(안드로이드)의 application id값
.setPG(PG.KCP) // 결제할 PG 사
.setMethod(Method.KAKAO) // 결제수단
.setContext(MainActivity.this)
.setBootUser(bootUser)
.setBootExtra(bootExtra)
.setUX(UX.PG_DIALOG)
// .setUserPhone("010-1234-5678") // 구매자 전화번호
.setName("맥북프로's 임다") // 결제할 상품명
.setOrderId("1234") // 결제 고유번호expire_month
.setPrice(100) // 결제할 금액
//개발자 메뉴얼에 가면 더 추가할 수 있음 .
.addItem("마우's 스", 1, "ITEM_CODE_MOUSE", 100)
// 주문정보에 담길 상품정보, 통계를 위해 사용
.addItem("키보드", 1, "ITEM_CODE_KEYBOARD", 200, "패션", "여성상의", "블라우스")
// 주문정보에 담길 상품정보, 통계를 위해 사용
.onConfirm(new ConfirmListener() {
// 결제가 진행되기 바로 직전 호출되는 함수로, 주로 재고처리 등의 로직이 수행
@Override
public void onConfirm(@Nullable String message) {
if (0 < stuck) Bootpay.confirm(message);
// 재고가 있을 경우.
else Bootpay.removePaymentWindow();
// 재고가 없어 중간에 결제창을 닫고 싶을 경우
Log.d("confirm", message);
}
})
.onDone(new DoneListener() {
// 결제완료시 호출, 아이템 지급 등 데이터 동기화 로직을 수행합니다
@Override
public void onDone(@Nullable String message) {
Log.d("done", message);
}
})
.onReady(new ReadyListener() { // 가상계좌 입금 계좌번호가 발급되면 호출되는 함수입니다.
@Override
public void onReady(@Nullable String message) {
Log.d("ready", message);
}
})
.onCancel(new CancelListener() { // 결제 취소시 호출
@Override
public void onCancel(@Nullable String message) {
Log.d("cancel", message);
}
})
.onError(new ErrorListener() { // 에러가 났을때 호출되는 부분
@Override
public void onError(@Nullable String message) {
Log.d("error", message);
}
})
.onClose(
new CloseListener() { //결제창이 닫힐때 실행되는 부분
@Override
public void onClose(String message) {
Log.d("close", "close");
}
})
.request();
}
});
}
}
Build gradle (module) 설정입니다 .
defaultConfig {
minSdkVersion 21 /// 만약 21 이하라면 21이상으로 수정
targetSdkVersion 29 ///30 이상이면 30미만으로 수정
}
dependencies {
implementation 'com.github.bootpay:client_android_java:3.3.04'
}
Build gradle(project) 입니다 .
dependencies {
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' //추가
}
allprojects {
repositories {
maven { url 'https://jitpack.io' } //추가
}
}
마지막!! manifest
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
이게 제가 예전에 포스팅한 글이라서 버젼이 현재와는 차이가 있을 수 있습니다 .
버젼이나 추가적인게 있다면 댓글 달아주세요!!
반응형
'안드로이드' 카테고리의 다른 글
Room 사용법 . (Room) (0) | 2022.01.06 |
---|---|
[Android/ Java] ExoPlayer 로 동영상 재생하기 ! (0) | 2021.12.02 |
안드로이드 스튜디오 네이버 파파고 api 사용해보기! (Java) (0) | 2021.11.17 |
FCM 토큰 이용해서 상대방에게 메세지 날리기 (feat.Retrofit) 3편 (0) | 2021.11.11 |
FCM 토큰 이용해서 상대방에게 메세지 날리기 (feat.Retrofit) 2편 (0) | 2021.11.10 |