전환 프로세스@OKCashBag

전환 플로우


적용 순서

  1. 시버튼 초기화(Initialize) 옵션 "setCashExchangeListener(listener: ICashExchangeListener)" 설정

  2. setCashExchangeListener::onRequestExchange(transactionID, exchangeItemID) → 이벤트 수신시 전환 성공 함수(CashButtonExchangeConfig.onCompleted())를 호출 한다.


포인트 전환

/** 
* 포인트전환
* 1. setCashExchangeListener API 를 이용하여 transactionID(요청ID)를 전달받는다.
* 2. transactionID 를 요청 파라미터에 담아 HostApp-Server로 전환요청을 한다.
* 3. 전환 성공/실패 여부를 CashButtonExchangeConfig.onCompleted() 함수를 사용하여 전달
*/

class AppContext : Application() {
    override fun onCreate() {
        super.onCreate()
        //cash-button
        CashButtonSDK(
            application = this, 
            skProductType = PRODUCT-TYPE, 
            appId = "AppId", 
            appSecret = "AppSecret"
        ).apply {
            // 포인트 전환 안내 문구 등록
            setPointExchangeMessage(
                message = "<font color=\"#ff0000\">※포인트 전환 후 취소 및 환불이 불가능합니다.</font>"
            )
        
            // 포인트 전환 이벤트 리스너 등록
            setCashExchangeListener(listener = object : ICashExchangeListener {
                override fun onRequestExchange(
                    transactionID: String, 
                    exchangeItemID: String
                ) {
                    /**
                    * transactionID 포인트 전환 TransactionID
                    * exchangeItemID 포인트 전환 아이템 코드
                    */
                    // OCB의 경우 서버에서 정상적으로 처리 되는 경우에만 이벤트가 발생하므로 아래 메서드만 호출 한다.
                    CashButtonSDK.requestCashExchangeEvent(
                        isSuccess = true 
                        customErrorMessage = ""
                    )
            })
        }.build(listener = object : CashButtonSDK.IResultListener {
            override fun onCompleted(resultCode: Int) {
                /**
                * 1: success
                * -500 : AppId or AppSecret is null or empty
                * -501 : Wrong Product Type
                */
                Toast.makeText(
                    this@AppContext, 
                    "CashButtonSDK.Init::onCompleted { resultCode: $resultCode }", 
                    Toast.LENGTH_SHORT
                ).show()
            }
        })
    }
}

서버 연동

검증(Verity Transaction)취소(Rollback)

Last updated