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

적용 순서
캐시버튼 초기화(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() 함수를 사용하여 전달
*/
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