전환 프로세스@Syrup

전환 플로우

요청 ID == transactionID


적용 순서

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

  2. setCashExchangeListener::onRequestExchange(transactionID, exchangeItemID) → transactionID를 전달 받는다.

  3. transactionID 를 요청 파라미터에 담아 HostApp-Server로 전환요청을 한다.

  4. 전환 성공/실패 여부를 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 포인트 전환 아이템 코드
                    */
                    // TODO
                    // 시럽에서 포인트 전환 실행 후 완료시 "CashButtonSDK.requestCashExchangeEvent" 호출
                    CashButtonSDK.requestCashExchangeEvent(
                        isSuccess = 성공여부, 
                        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