개발 가이드


 

 


 

 


 

 

// build.gradle 사용시 allprojects { repositories { google() mavenCentral() maven { url "https://jitpack.io" } maven { url 'https://dl.buzzvil.com/public/maven' } maven { url 'https://artifact.bytedance.com/repository/pangle' } maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' } maven { url 'https://raw.githubusercontent.com/coupang-ads-sdk/android/main' } maven { url "https://dl.cloudsmith.io/public/avatye/Android-CashButton-SKP/maven/" } maven { url "s3://repo.cauly.net/releases" credentials(AwsCredentials) { accessKey "AKIAWRZUK5MFKYVSUOLB" secretKey "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" } } } } // settings.gradle 사용시 (Android Studio Bumblebee or AGP 7.1.0~) pluginManagement { repositories { gradlePluginPortal() google() mavenCentral() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() maven { url "https://jitpack.io" } maven { url 'https://dl.buzzvil.com/public/maven' } maven { url 'https://artifact.bytedance.com/repository/pangle' } maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' } maven { url 'https://raw.githubusercontent.com/coupang-ads-sdk/android/main' } maven { url "https://dl.cloudsmith.io/public/avatye/Android-CashButton-SKP/maven/" } maven { url "s3://repo.cauly.net/releases" credentials(AwsCredentials) { accessKey "AKIAWRZUK5MFKYVSUOLB" secretKey "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" } } } }

 

 

dependencies { // 캐시버튼 적용 implementation 'com.avatye.cashbutton.skp:product-button:2.0.0.210y' }

 

 


 

 

class AppContext : Application() { override fun onCreate() { super.onCreate() //cash-button CashButtonSDK( application = this, skProductType = SKProductType.OK_CASH_BAG, // or SKProductType.SYRUP appId = "AppId", appSecret = "AppSecret" ).apply { // debug-mode setUseDebug(use = true) // market setMarketType(marketType = MarketType.GooglePlayStore) // 포인트명 변경(OKCashBag("콕")) setPointName(pointName = "콕") // 포인트 전환 안내 문구 등록 setPointExchangeMessage(message = "<font color=\"#ff0000\">※포인트 전환 후 취소 및 환불이 불가능합니다.</font>") // 포인트 전환 이벤트 리스너 등록(전환 사용시 필수) setCashExchangeListener(listener = object : ICashExchangeListener { override fun onRequestExchange(transactionID: String, exchangeItemID: String) { /** * transactionID 포인트 전환 TransactionID * exchangeItemID 포인트 전환 아이템 코드 */ } }) // 탈퇴 이벤트 리스너 등록 setWithdrawListener(listener = object : IWithdrawListener { override fun onCompleted(resultCode: Int) { /** * 성공 -> resultCode == 1 * 실패 -> resultCode =- -999(일반적인 오류) */ } }) }.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() } }) } }

CashButtonSDK

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

application

Android Application

Android Application Context

skProductType

SKProductType

  • SYRUP : 시럽

  • OK_CASH_BAG: 캐시백

appId

String

앱 고유 식별자

appSecret

String

앱 고유 식별자 검증키

CashButtonSDK.Builder(options)

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

setUseDebug(use: Boolean)

개발 모드를 설정합니다.
(캐시버튼의 로그 기능 활성화)

  • true: 개발모드 ON

  • false(default): 개발모드 OFF

setMarketType(marketType: MarketType)

앱이 등록된 대표 마켓을 설정합니다. (플레이스토어 1순위)

  • GooglePlayStore

  • OneStore

setPointName(pointName: String)

포인트명을 설정합니다.

 

setPointExchangeMessage(message: String)

포인트 전환 목록 하단에 노출되는 안내문을 설정합니다.

 

노출 안내문(강조를 위한 Html 사용가능)

포인트 전환 목록 하단에 설정한 안내문이 아래와 같이 노출 됩니다.

setCashExchangeListener(listener: ICashExchangeListener)

포인트 전환시 필수로 연동되어야 합니다.

포인트 전환 요청시 전달되는 아이템 정보

 

→ ICashExchangeListener::onRequestExchange(transactionID: String, exchangeItemID: String)

 

setWithdrawListener(listener: IWithdrawListener)

청약철회(탈퇴)시 전달되는 이벤트

 

→ IWithdrawListener::onCompleted(resultCode: Int)

resultCode

  • 1: 성공

  • -999: 일반적인 오류(통신)

CashButtonSDK.Build

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

build(listener: CashButtonSDK.IResultListener)

CashButtonSDK 초기화를 진행 합니다.

 

→ CashButtonSDK.IResultListener::onCompleted(resultCode: Int)

resultCode

  • 1: success

  • -500: AppId 또는 AppSecret 설정 오류

  • -501: SKProductType 설정 오류


 

 

LaunchChannelingBuilder.Builder

2.0.0.213 버전부터 광고 물량 확대와 효율 향상을 위한 타겟팅 정보가 추가 되었습니다.

birthday, gender(옵션) 버전

 

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

context

Android Context or Activity Context

안드로이드 컨텍스트

userID

String

채널링 유저 키

birthday

String

채널링 유저 생년월일

필수 전달 형식)

  • 1993-01-09(YYYY-MM-DD)

gender

UserGenderType

채널링 유저 성별

필수 전달 형식)

  • UserGenderType.MALE: 남자

  • UserGenderType.FEMALE: 여자

LaunchChannelingBuilder.Build

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

listener

LaunchChannelingBuilder.IBuilderListener

 

→ IBuilderListener::onCompleted(builder: LaunchChannelingBuilder)

LaunchChannelingBuilder.LaunchView

캐시버튼 화면에 진입 합니다.

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

PARAMETER NAME

PARAMETER TYPE

DESCRIPTION

context

Android Context

Android Context or Activity Context

listener

LaunchChannelingBuilder.ILaunchViewListener

resultCode

  • 1: 성공

  • -100: 실패 - 이용약관 거절

  • -200: 유저타입 오류

  • -201: 접근이 제한된 유저

  • -202: 탈퇴한 유저

  • -500: 서버 점검

  • -800: SKProduct 설정 오류

  • -999: 서버 통신 오류(& 알수없는 오류)

ILaunchViewListener::onLaunched(resultCode: Int)


 

 

CashButtonSDK.getUserCondition(context: Context, userID: String? = null, listener: IUserConditionListener)

캐시버튼에 연동된 유저의 현재 상태값을 반환 합니다.

UserConditionType

UNAUTHORIZED

캐시버튼을 사용하지 않는 유저

AUTHORIZED

캐시버튼을 사용중인 유저

WITHDRAW

캐시버튼 서비스 청약철회(탈퇴) 유저

→ 유저를 식별하는 모든 값이 바로 삭제 → UNAUTHORIZED 상태로 전환


CashButtonSDK.getButtonBalance(context: Context, userID: String? = null, listener: IButtonBalanceListener)

캐시버튼 ‘터치’를 통해 받을수 있는 포인트 정보를 반환 합니다.

IButtonBalanceListener:onCompleted(balance: Int)

NAME

TYPE

VALUE

DESCRIPTION

NAME

TYPE

VALUE

DESCRIPTION

balance

Int

0 ~ (0이상의 값)

성공 → 받을 수 있는 포인트

-201

접근이 제한된 유저(이용약관 미동의 유저)

-202

탈퇴 유저

-999

통신 오류 또는 알수 없는 기타 오류


CashButtonSDK.requestWithdraw(context: Context, listener: IWithdrawListener)

IWithdrawListener::onCompleted(resultCode: Int)

NAME

TYPE

VALUE

DESCRIPTION

NAME

TYPE

VALUE

DESCRIPTION

resultCode

Int

1

성공

-999

실패(통신 오류 또는 알수 없는 기타 오류)


 

 

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

전환 가이드 메시지

참고 SDK API

CashButtonSDK.Builder → setPointExchangeMessage(message = "<font color=\"#ff0000\">※포인트 전환 후 취소 및 환불이 불가능합니다.</font>")

전환 프로세스 Syrup

 

전환 프로세스 OKCashBag(OCB)