전환 프로세스@OKCashBag
전환 플로우

적용 순서
시버튼 초기화(Initialize) 옵션 "setCashExchangeListener(listener: ICashExchangeListener)" 설정
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