<aside> ⚠️ appID 및 사용자 식별값(userID = userKey)이 변경되면, 사용자 정보가 유지되지 않습니다.

</aside>

사전 조건

준비과정

  1. 포인트홈 SDK를 설치합니다
  2. 연동가이드를 참고하여, 기존 캐시버튼을 연동했던 부분을 포인트홈 연동으로 변경합니다.

연동 상세

  1. Application (CashButtonSDKPointHomeSDK.initializer)

    1. 참고: ‣
    2. 제외: skProductType, setMarketType, setPointExchangeMessage (서비스내 기 적용 및 서버 설정으로 대체)
    3. 추가: setDevelopMode(단일 appID로 개발모드와 상용모드를 구분하기 위한 설정)
    4. 이동: setCashExchangeListner(PointHomeService.setCashExchangeListener 부분으로 이동)
    5. 미구현: setWithdrawListner (v1.2.1.55 버전 기준 구현되지 않음)
  2. Activity (LaunchChannelingBuilder.BuilderPointHomeService.pointHomeBuilder)

    1. 참고: ‣
    2. 필드명 변경: userID → userKey
    3. 추가: buttonUse(캐시버튼 자체 플로팅 버튼을 사용하지 않는 경우 false)
    4. 성공 이벤트 변경: IBuilderListener.onCompleted(builder: LaunchChannelingBuilder) → IBuilderCallback.onBuildCompleted(builder: PointHomeSlider)
    5. 실행함수 변경: builder.launchView() → builder.dashboardOpen()
    6. 서비스 종료 함수 추가 builder.dashboardClose()
    7. 서비스 실행에 대한 이벤트 변경: builder.launchView → builder.dashboardStateListner (참고: ‣)
  3. 추가기능 - 사용자 정보 조회 및 버튼 잔액 조회

    1. 통합 조회로 변경: PointHomeService.getUserProfile(resource, profileCallback) (참고: ‣)
    2. 버튼 잔액 조회 예시
    val userCallback = object : UserProfileCallback {
        override fun success(result: JSONObject) {
            // 성공적으로 데이터를 받았을 때
            /* result =>
    	        {
    		        "button": {
    			        "gettableCash": 70
    			      }
    			    }
            */
            println("Profile data successfully retrieved: $result")
        }
    
        override fun fail(reason: PointHomeError) {
            // 데이터를 받는 데 실패했을 때
            // reason.code: 4003(동의받지 않은 사용자), 5003(서비스 점검중) ...
            println("Failed to retrieve profile data: ${reason.message}")
        }
    }
    
    // 리소스 열거형 인스턴스 지정
    val requiredResources = arrayOf(Resource.Button)
    
    // getUserProfile 함수 호출
    getUserProfile(*requiredResources, profileCallback = userCallback)
    
  4. 추가기능 - 청약철회 (참고: (채널링) 청약철회 요청 API)

    1. 청약철회 요청하기 API를 통해 청약철회를 요청합니다.
    2. 일부 에러가 추가되었습니다.
    3. 캐시버튼 서비스내에서 청약철회가 발생하는 경우 아래의 시스템 이벤트 처리부분에서 이벤트가 발생하니 참고부탁드립니다. (update.drop_account)
  5. 추가기능 - 시스템 이벤트 처리 (참고: 시스템 이벤트 전달받기)

    1. 기존 캐시버튼은 SDK에서 제공되던 홈 이동 버튼(서비스 메인으로 이동)을 커스터마이징을 원활하게 하기 위하여 시스템 이벤트를 받아서 앱에서 처리하는 방식으로 변경하였습니다.
    2. 포인트홈 화면에서 홈버튼을 누르게 될 경우, 사전 정의된 Event 중에서 ‘click.home’ 이벤트가 발생합니다.
    3. 앱에서는 해당 이벤트가 발생되었을 때, 포인트홈 서비스를 닫고 홈으로 이동시켜줍니다.
  6. 포인트전환

    1. 성공 시, CashButtonSDK.requestCashExchangeEvent → pointHomeSlider?.onCompleted 호출 (참고: ‣)