Google Play Store가 없는 중국 내에서 인앱 과금 처리를 위해 Hive에서 만든 모듈로써, 러비(Lebi)라는 단위의 가상화폐를 충전하여 아이템을 구매할 수 있습니다.
Android 단말기는 경우에 따라 Google Play Store과 Hive 러비 중 어떤 결제 수단을 사용할지 선택할 수 있습니다. Hive 러비를 선택한 경우 다음 안내에 따라 러비 결제를 구현하세요. iOS에서는 Hive 러비 상점을 지원하지 않습니다.
Hive 인증 v4 적용시 중국 유저가 러비를 이용하려면 Hive 멤버십 로그인이 필요합니다.
Hive 러비 상점 연동 플로우
상점 선택 화면 노출
만약 Google Play Store와 Hive 러비 상점을 동시에 이용할 수 있는 상황이라면, marketConnect()
메서드 호출 결과로 Google Play Store와 Hive 러비 마켓 코드를 모두 받은 후(Hive IAP v4 초기화)에, 유저가 상점을 선택할 수 있도록 showMarketSelection()
메서드를 호출하여 상점 선택을 위한 화면을 노출해야 합니다.
다음은 상점 선택 화면 노출을 요청하는 예제 코드입니다.
API Reference: hive.IAPV4.showMarketSelection
1 2 3 4 5 6 7 |
using hive; IAPV4.showMarketSelection((ResultAPI result, List<IAPV4Type> typeList) => { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: IAPV4::showMarketSelection
1 2 3 4 5 6 7 8 9 |
#include <HIVE_SDK_Plugin/HIVE_CPP.h> using namespace std; using namespace hive; IAPV4::showMarketSelection([=](ResultAPI const & result, vector<IAPV4Type> const & marketIDs) { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: IAPV4.showMarketSelection
1 2 3 4 5 6 7 8 9 10 |
import com.hive.IAPV4 import com.hive.ResultAPI IAPV4.showMarketSelection(object : IAPV4.IAPV4MarketInfoListener { override fun onIAPV4MarketInfo(result: ResultAPI, iapV4TypeList: ArrayList<IAPV4.IAPV4Type>?) { if (result.isSuccess) { // 호출 성공 } } }) |
API Reference: IAPV4.INSTANCE.showMarketSelection
1 2 3 4 5 6 7 8 |
import com.hive.IAPV4; import com.hive.ResultAPI; IAPV4.INSTANCE.showMarketSelection((result, iapV4TypeList) -> { if (result.isSuccess()) { // 호출 성공 } }); |
러비 잔액 조회 API
Hive 러비 상점이 선택되었다면 IAPV4 클래스의 getBalanceInfo()
메서드를 호출하여 러비 잔액 조회를 요청하고, 상점에 잔액을 노출해야 합니다.
러비 잔액은 getBalanceInfo()
메서드의 결과에 balance
변수로 전달받을 수 있습니다.
다음은 러비 잔액을 요청하는 예제 코드입니다.
API Reference: hive.IAPV4.getBalanceInfo
1 2 3 4 5 6 7 |
using hive; IAPV4.getBalanceInfo((ResultAPI result, int balance) => { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: IAPV4::getBalanceInfo
1 2 3 4 5 6 7 8 9 |
#include <HIVE_SDK_Plugin/HIVE_CPP.h> using namespace std; using namespace hive; IAPV4::getBalanceInfo([=](ResultAPI const & result, int balance) { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: IAPV4.getBalanceInfo
1 2 3 4 5 6 7 8 9 10 |
import com.hive.IAPV4 import com.hive.ResultAPI IAPV4.getBalanceInfo(object : IAPV4.IAPV4BalanceInfoListener { override fun onIAPV4Balance(result: ResultAPI, balance: Int) { if (result.isSuccess) { // 호출 성공 } } }) |
API Reference: IAPV4.INSTANCE.getBalanceInfo
1 2 3 4 5 6 7 8 |
import com.hive.IAPV4; import com.hive.ResultAPI; IAPV4.INSTANCE.getBalanceInfo((result, balance) -> { if (result.isSuccess()) { // 호출 성공 } }); |
러비 충전 화면 노출
러비 잔액이 부족한 경우 IAPV4 클래스의 showCharge()
메서드를 호출하여 러비 충전 화면을 노출합니다.
러비 충전을 완료한 후 잔액은 showCharge()
메서드의 결과 값 중 balance
변수로 확인할 수 있습니다.
다음은 러비 충전 페이지를 호출하는 예제 코드입니다.
API Reference: hive.IAPV4.showCharge
1 2 3 4 5 6 7 |
using hive; IAPV4.showCharge((ResultAPI result, int balance) => { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: IAPV4::showCharge
1 2 3 4 5 6 7 8 9 |
#include <HIVE_SDK_Plugin/HIVE_CPP.h> using namespace std; using namespace hive; IAPV4::showCharge([=](ResultAPI const & result, int balance) { if (result.isSuccess()) { // 호출 성공 } }); |
API Reference: IAPV4.showCharge
1 2 3 4 5 6 7 8 9 10 |
import com.hive.IAPV4 import com.hive.ResultAPI IAPV4.showCharge(object : IAPV4.IAPV4BalanceInfoListener { override fun onIAPV4Balance(result: ResultAPI, balance: Int) { if (result.isSuccess) { // 호출 성공 } } }) |
API Reference: IAPV4.INSTANCE.showCharge
1 2 3 4 5 6 7 8 |
import com.hive.IAPV4; import com.hive.ResultAPI; IAPV4.INSTANCE.showCharge((result, balance) -> { if (result.isSuccess()) { // 호출 성공 } }); |