간단한 Google Play Billing Library 유료 프로세스

개요


지금까지 비용을 인출한 적이 없기 때문에 기록이다.
기본적으로 BillingClient에 대해서만 다음 작업을 수행합니다.
  • 접속 구성
  • 비용 계산 항목에 대한 정보를 얻습니다.
  • 프로젝트 정보 전달을 통해서만 요금이 부과됩니다.

  • 나는 이 전선 실험실을 만들었다.
    https://codelabs.developers.google.com/codelabs/play-billing-codelab/
    (이 글의 코드 오류가 위험하다고 해도 장담할 수 없다)
    댓글이 있으면 주세요.

    잇닿다


    val billingClient: BillingClient = BillingClient
                .newBuilder(context)
                .setListener(this)
                .build()
    
        init {
            billingClient.startConnection(object : BillingClientStateListener {
                override fun onBillingSetupFinished(@BillingResponse billingResponse: Int) {
                    if (billingResponse == BillingResponse.OK) {
                        Log.i(TAG, "onBillingSetupFinished() response: $billingResponse")
                    } else {
                        Log.w(TAG, "onBillingSetupFinished() error code: $billingResponse")
                    }
                }
    
                override fun onBillingServiceDisconnected() {
                    Log.w(TAG, "onBillingServiceDisconnected()")
                }
            })
        }
    
    

    유료 항목(SKU)에 대한 정보 얻기



    SKU 이름은 구글플레이에 적힌 것 같습니다.
            val itemType = SkuType.INAPP
            val skuList = listOf("gas", "premium")
            val skuDetailsParams = SkuDetailsParams.newBuilder()
                    .setSkusList(skuList).setType(itemType).build()
            billingClient.querySkuDetailsAsync(skuDetailsParams,
                    { responseCode, skuDetailsList: MutableList<SkuDetails> -> 
                        // ここで取得完了。(RecyclerViewとかでSkuDetailsの情報を表示できる) 
                    })
    
    SkuDetailsの例
    {"productId":"gas","type":"inapp","price":"¥113","price_amount_micros":113088351,"price_currency_code":"JPY","title":"Gas (Play Billing Codelab)","description":"Buy gasoline to ride!"}
    

    요금을 받다



    얻은 정보 중의 SkuDetails의 실례만 교부하면 비용을 지불할 수 있다
            val billingFlowParams = BillingFlowParams.newBuilder()
                    .setSkuDetails(skuDetails).build()
            billingClient.launchBillingFlow(activity, billingFlowParams)
    
    연결 시 청중에게 맡기면 요금을 감지할 수 있다.
        override fun onPurchasesUpdated(responseCode: Int, purchases: MutableList<Purchase>?) {
            Log.d(TAG, "onPurchasesUpdated() response: $responseCode");
        }
    
    query Purchases(SkuType.IN APP) 등이라고 하면 현재 유료 상태를 받을 수 있을 것 같다.
    이동 https://developer.android.com/google/play/billing/billing_library_overview

    연결 재시도 모범 사례


    여기에 기록이 있으니 한번 보는 것이 좋겠다
    https://codelabs.developers.google.com/codelabs/play-billing-codelab/#7

    Next Step


    https://developer.android.com/google/play/billing/billing_library_overview
    여기에 기재된 내용은 여전하다. Next Step으로서 다음과 같은 것이 좋다.
    프로젝트 수수료 등 매번 수수료
    https://developer.android.com/google/play/billing/billing_onetime
    월정액
    https://developer.android.com/google/play/billing/billing_subscriptions

    좋은 웹페이지 즐겨찾기