캐시버튼 초기화(Initialize) 옵션 "setCashExchangeListener(listener: ICashExchangeListener)" 설정
setCashExchangeListener::onRequestExchange(transactionID, exchangeItemID) → transactionID를 전달 받는다.
transactionID 를 요청 파라미터에 담아 HostApp-Server로 전환요청을 한다.
전환 성공/실패 여부를 CashButtonExchangeConfig.onCompleted() 함수를 사용하여 전달해준다.
포인트 전환
/** * 포인트전환* 1. setCashExchangeListener API 를 이용하여 transactionID(요청ID)를 전달받는다.* 2. transactionID 를 요청 파라미터에 담아 HostApp-Server로 전환요청을 한다.* 3. 전환 성공/실패 여부를 CashButtonExchangeConfig.onCompleted() 함수를 사용하여 전달*/classAppContext : Application() {overridefunonCreate() {super.onCreate()//cash-buttonCashButtonSDK( application =this, skProductType = PRODUCT-TYPE, appId ="AppId", appSecret ="AppSecret" ).apply {// 포인트 전환 안내 문구 등록setPointExchangeMessage( message ="<font color=\"#ff0000\">※포인트 전환 후 취소 및 환불이 불가능합니다.</font>" )// 포인트 전환 이벤트 리스너 등록setCashExchangeListener(listener =object : ICashExchangeListener {overridefunonRequestExchange( transactionID: String, exchangeItemID: String ) {/** * transactionID 포인트 전환 TransactionID * exchangeItemID 포인트 전환 아이템 코드 */// TODO// 시럽에서 포인트 전환 실행 후 완료시 "CashButtonSDK.requestCashExchangeEvent" 호출 CashButtonSDK.requestCashExchangeEvent( isSuccess = 성공여부, customErrorMessage ="실패시 노출 메시지" ) } }) }.build(listener =object : CashButtonSDK.IResultListener {overridefunonCompleted(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() } }) }}