-
bootpay flutter 결제 연동flutter 2025. 1. 3. 11:20반응형
순서
개발 진행 -> PG 심사 -> 카드사 심사(2주~3주소요)
참고로 개발을 하다 중단이 된 상태다
이유 : 기부 목적으로 기능을 만듬, 비영리 단체가 아닌이상 기부 서비스 심사가 거절됨 (기부영수증 발행이 가능해야함)
카드사에서 배네핏을 보고 심사를해줌 (실물 상품) - 멤버십도 어려울수 있음
그렇게 인앱 결제로 전환 하기로함
일단 개발까지 한것만 기록하려고 함
회원가입
PG사 선택
참고로 나이스 페이를 신청시 카카오가 안되기 때문에 카카로 따로 신청해야함
화면에서는 카카오페이가 지원되는것으로 보이지만 사실은 아닌듯 (상담사가 따로 신청하라고함)
void bootpayTest(BuildContext context) { Payload payload = getPayload(); if (kIsWeb) { payload.extra?.openType = "iframe"; } Bootpay().requestSubscription( context: context, payload: payload, showCloseButton: false, onCancel: (String data) { print('------- onCancel: $data'); }, onError: (String data) { print('------- onCancel: $data'); }, onClose: () { print('------- onClose'); Bootpay().dismiss(context); //명시적으로 부트페이 뷰 종료 호출 //TODO - 원하시는 라우터로 페이지 이동 }, onIssued: (String data) { print('------- onIssued: $data'); }, onConfirm: (String data) { /** 1. 바로 승인하고자 할 때 return true; **/ /*** 2. 비동기 승인 하고자 할 때 checkQtyFromServer(data); return false; ***/ /*** 3. 서버승인을 하고자 하실 때 (클라이언트 승인 X) return false; 후에 서버에서 결제승인 수행 */ // checkQtyFromServer(data); return true; }, onDone: (String data) { print('------- onDone: $data'); }, ); } Payload getPayload() { Payload payload = Payload(); Item item1 = Item(); item1.name = "후원"; // 주문정보에 담길 상품명 item1.qty = 1; // 해당 상품의 주문 수량 item1.id = "donation"; // 해당 상품의 고유 키 item1.price = 500; // 상품의 가격 Item item2 = Item(); item2.name = "키보드"; // 주문정보에 담길 상품명 item2.qty = 1; // 해당 상품의 주문 수량 item2.id = "ITEM_CODE_KEYBOARD"; // 해당 상품의 고유 키 item2.price = 500; // 상품의 가격 List<Item> itemList = [item1, item2]; payload.androidApplicationId = '67763....'; // android application id payload.iosApplicationId = '677....'; // ios application id payload.pg = 'nicepay'; payload.methods = ['card', 'phone', 'vbank', 'bank', 'kakao']; payload.orderName = "후원"; //결제할 상품명 payload.orderId = DateTime.now().millisecondsSinceEpoch.toString(); payload.metadata = { "callbackParam1": "value12", "callbackParam2": "value34", "callbackParam3": "value56", "callbackParam4": "value78", }; // 전달할 파라미터, 결제 후 되돌려 주는 값 payload.items = itemList; // 상품정보 배열 User user = User(); // 구매자 정보 user.username = "사용자 이름"; user.email = "user@gmail.com"; Extra extra = Extra(); // 결제 옵션 extra.appScheme = 'FlutterExample'; extra.cardQuota = '3'; // extra.openType = 'popup'; payload.user = user; payload.extra = extra; return payload; }
반응형'flutter' 카테고리의 다른 글
Flutter - ios 인앱 결제 (1) 2025.01.09 Flutter - 안드로이드 인앱 결제 (0) 2025.01.08 paypal 결제 시스템 연동 (1) (0) 2025.01.02 Stripe 결제 Flutter 와 연동하기 (2) 2025.01.02 flutter 네이버 로그인 구현 (2) 2024.12.05