포인트 전환

캐시버튼에 모인 포인트를 앱사에서 사용중인 포인트로 전환하는 기능입니다.

연동 순서

1. 영업 담당자와 포인트 전환에 사용에 대한 설정 요청

2. 포인트 전환에 사용될 단위/환율 협의

3. 포인트 전환에 사용될 아이템 코드 발급

4. 클라이언트 및 서버 연동


전환 관련 유저 서비스 플로우


전환 프로세스

요청ID == transactionID


Client

포인트 전환 이벤트 리시버 등록

전환 기능을 사용하기 위한 초기화 과정 (Application)


  1. 캐시버튼 초기화 옵션 "setCashExchangeListener" 설정

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

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

  4. 전환 성공/실패 여부를 ** CashButtonExchangeConfig.onCompleted()** 함수를 사용하여 전달해준다.

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

class App : Application() { 
  override fun onCreate() {
    super.onCreate()
    val initSDK = CashButtonSDK() or CashScreenSDK() or PublisherSDK()
    initSDK.setCashExchangeListener(object : ICashExchangeListener{
      override fun onRequestExchange(transactionID: String) {
        // 1.HostApp-Server로 전환요청
        // 2. 성공 시  CashButtonExchangeConfig.onCompleted(true)
        // 2. 실패 시	CashButtonExchangeConfig.onCompleted(false, failureEntity.responseDescription);
      }
    })
    
    initSDK.build(listener = object : CashButtonSDK.IResultListener {
      override fun onSuccess() {
        // Build Completed
      }
      
      override fun onFailure(reason: String) {
        // Build Failed
      }
    })
  }  
}

Server

검증(Verify Transaction)

캐시전환시 발급한 요청ID를 검증합니다.

PUT https://api.reward.avatye.com/shop/exchange/rollbackV2

검증 성공 시, 결과로 상품ID(exchangeItemID)를 반환합니다.

해당 상품 ID에 해당하는 금액을 해당 서비스의 재화로 적립 후, 캐시버튼 SDK에 성공여부를 응답합니다.

상품ID는 캐시버튼 담당자로부터 전달받을 수 있습니다

Headers

Name
Type
Description

Content-Type*

String

application/json

Authorization*

String

Basic Token (사전 전달 )

Request Body

Name
Type
Description

transactionID*

String

캐시버튼 SDK에서 전달받은 요청ID

기본적인 성공 및 실패 응답은 모두 200으로 반환되며, 반환 값 "resultCode"를 통해 결과 분기합니다.

검증이 성공("0000")한 경우에만 서비스의 재화를 지급해야 합니다. 이 후, 성공 및 실패 여부를 캐시버튼 SDK에 전달합니다.

//resultCode가 "0000"일 경우, exchangeItemID 값이 제공됩니다.
{  
    resultCode: “0000”,  
    exchangeItemID: “dae1027a7bbc4eeeb56163427d1447a3“,  
    extraData: {}  
}
Response(응답값:ResultCode)

  • 0000 : 성공

  • 9000 : 잘못된 요청ID(담당자 문의 필요)

  • 9001 : 이미 실패 처리된 요청

  • 9002 : 이미 검증된 요청(해당 요청ID로 이미 검증요청 및 확인완료)

  • 9003 : 상품이 이용할 수 없는 상태(ex:판매중지)인 경우

  • 9004 : 잔액부족등의 이유로 사용자의 캐시를 차감이 불가한 경우


취소(Rollback)

캐시전환을 취소합니다.

PUT https://api.reward.avatye.com/shop/exchange/rollbackV2

검증이 성공했지만, 서비스내의 재화에 적립을 할 수 없는 경우, 캐시전환 취소를 호출합니다. 사용자는 검증과정에서 캐시버튼의 캐시를 이미 사용 했기때문에, 캐시전환이 실패할 경우 해당 API를 호출함으로써, 사용자가 사용한 캐시를 복원합니다.

Headers

Name
Type
Description

Content-Type*

String

application/json

Authorization*

String

Basic Token (사전 전달 )

Request Body

Name
Type
Description

transactionID*

String

캐시버튼 SDK에서 전달받은 요청ID

응답 값의 resultCode 필드로 성공여부를 확인할 수 있습니다.

응답 값은 고객지원 시 참고용으로 사용되며 이 후, 추가 프로세스는 없습니다.

Last updated