개발 가이드
// 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 |
---|---|---|
application | Android Application | Android Application Context |
skProductType | SKProductType |
|
appId | String | 앱 고유 식별자 |
appSecret | String | 앱 고유 식별자 검증키 |
CashButtonSDK.Builder(options)
PARAMETER NAME | PARAMETER TYPE | DESCRIPTION |
---|---|---|
setUseDebug(use: Boolean) | 개발 모드를 설정합니다. |
|
setMarketType(marketType: MarketType) | 앱이 등록된 대표 마켓을 설정합니다. (플레이스토어 1순위) |
|
setPointName(pointName: String) | 포인트명을 설정합니다. |
|
setPointExchangeMessage(message: String) | 포인트 전환 목록 하단에 노출되는 안내문을 설정합니다.
| 노출 안내문(강조를 위한 Html 사용가능) 포인트 전환 목록 하단에 설정한 안내문이 아래와 같이 노출 됩니다. |
setCashExchangeListener(listener: ICashExchangeListener) | 포인트 전환시 필수로 연동되어야 합니다. 포인트 전환 요청시 전달되는 아이템 정보 |
|
→ ICashExchangeListener::onRequestExchange(transactionID: String, exchangeItemID: String) |
| |
setWithdrawListener(listener: IWithdrawListener) | 청약철회(탈퇴)시 전달되는 이벤트 |
|
→ IWithdrawListener::onCompleted(resultCode: Int) | resultCode
|
CashButtonSDK.Build
PARAMETER NAME | PARAMETER TYPE | DESCRIPTION |
---|---|---|
build(listener: CashButtonSDK.IResultListener) | CashButtonSDK 초기화를 진행 합니다. |
|
→ CashButtonSDK.IResultListener::onCompleted(resultCode: Int) | resultCode
|
LaunchChannelingBuilder.Builder
2.0.0.213 버전부터 광고 물량 확대와 효율 향상을 위한 타겟팅 정보가 추가 되었습니다.
birthday, gender(옵션) 버전
PARAMETER NAME | PARAMETER TYPE | DESCRIPTION |
---|---|---|
context | Android Context or Activity Context | 안드로이드 컨텍스트 |
userID | String | 채널링 유저 키 |
birthday | String | 채널링 유저 생년월일 필수 전달 형식)
|
gender | UserGenderType | 채널링 유저 성별 필수 전달 형식)
|
LaunchChannelingBuilder.Build
PARAMETER NAME | PARAMETER TYPE | DESCRIPTION |
---|---|---|
listener | LaunchChannelingBuilder.IBuilderListener |
|
→ IBuilderListener::onCompleted(builder: LaunchChannelingBuilder) |
LaunchChannelingBuilder.LaunchView
캐시버튼 화면에 진입 합니다.
PARAMETER NAME | PARAMETER TYPE | DESCRIPTION |
---|---|---|
context | Android Context | Android Context or Activity Context |
listener | LaunchChannelingBuilder. | resultCode
|
→ |
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 |
---|---|---|---|
balance | Int | 0 ~ (0이상의 값) | 성공 → 받을 수 있는 포인트 |
-201 | 접근이 제한된 유저(이용약관 미동의 유저) | ||
-202 | 탈퇴 유저 | ||
-999 | 통신 오류 또는 알수 없는 기타 오류 |
CashButtonSDK.requestWithdraw(context: Context, listener: IWithdrawListener)
IWithdrawListener::onCompleted(resultCode: Int)
NAME | TYPE | VALUE | DESCRIPTION |
---|---|---|---|
resultCode | Int | 1 | 성공 |
-999 | 실패(통신 오류 또는 알수 없는 기타 오류) |
전환 관련 유저 서비스 플로우
전환 가이드 메시지
참고 SDK API
CashButtonSDK.Builder → setPointExchangeMessage(message = "<font color=\"#ff0000\">※포인트 전환 후 취소 및 환불이 불가능합니다.</font>")
전환 프로세스 Syrup
|
전환 프로세스 OKCashBag(OCB)
|
|