Android Google Play 内购代码集成 implementation 'com.android.billingclient:billing:2.0.3'

1.引用资源

 implementation 'com.android.billingclient:billing:2.0.3'

2.初始化,购买后会回调onPurchasesUpdated 方法 并调用消耗 方法

    //init
    private BillingClient billingClient;
    private SkuDetails mSkuDetails;
    private void initGoogleBillingManager(){

        billingClient = BillingClient.newBuilder(MenuActivity.this).enablePendingPurchases().setListener(new PurchasesUpdatedListener() {
            @Override
            public void onPurchasesUpdated(BillingResult billingResult, @Nullable List<Purchase> purchases) {
                LogTools.i(TAG,"onPurchasesUpdated=getResponseCode=="+billingResult.getResponseCode());
                if(billingResult.getResponseCode()== BillingClient.BillingResponseCode.OK) {

                    //消耗品 开始消耗
                    ConsumeParams.Builder consumeParams = ConsumeParams.newBuilder();
                    consumeParams.setPurchaseToken(purchases.get(0).getPurchaseToken());
                    consumeParams.setDeveloperPayload(purchases.get(0).getDeveloperPayload());
                    billingClient.consumeAsync(consumeParams.build(), new ConsumeResponseListener() {
                        @Override
                        public void onConsumeResponse(BillingResult billingResult, String purchaseToken) {
                            LogTools.i(TAG,"onConsumeResponse=getResponseCode=="+billingResult.getResponseCode());

                            // Process the result.
                            if(billingResult.getResponseCode()== BillingClient.BillingResponseCode.OK){
                                LogTools.i(TAG,"onConsumeResponse=BillingClient.BillingResponseCode.OK==");

                            }else{
                                LogTools.i(TAG,"onConsumeResponse=getDebugMessage=="+billingResult.getDebugMessage());
                            }
                        }
                    });

                    //handle

                }else{
                    LogTools.i(TAG,"onPurchasesUpdated=getDebugMessage=="+billingResult.getDebugMessage());
                }
            }

        }).build();


        //connect google service
        startConnectionBillingService();

    }

3.连接服务 并 查询商品id

//connect
    private void startConnectionBillingService(){
        if(billingClient!=null) {
            billingClient.startConnection(new BillingClientStateListener() {
                @Override
                public void onBillingSetupFinished(BillingResult billingResult) {
                    LogTools.i(TAG,"onBillingSetupFinished=getResponseCode=="+billingResult.getResponseCode());
                    if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
                        // The BillingClient is ready. You can query purchases here.
                         
                        //根据商品id 查询
                        List<String> skuList = new ArrayList<> ();
                        skuList.add("remove_ads");
                        SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
                        params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);

                        billingClient.querySkuDetailsAsync(params.build(),
                                new SkuDetailsResponseListener() {
                                    @Override
                                    public void onSkuDetailsResponse(BillingResult billingResult,List<SkuDetails> skuDetailsList) {
                                        LogTools.i(TAG,"querySkuDetailsAsync=getResponseCode=="+billingResult.getResponseCode()+",skuDetailsList.size="+skuDetailsList.size());
                                        // Process the result.
                                        if(billingResult.getResponseCode()== BillingClient.BillingResponseCode.OK){
                                            mSkuDetails=skuDetailsList.get(0);
                                            LogTools.i(TAG,"querySkuDetailsAsync=mSkuDetails.toString=="+mSkuDetails.toString());

                                        }else{
                                            LogTools.i(TAG,"querySkuDetailsAsync=getDebugMessage=="+billingResult.getDebugMessage());
                                        }
                                    }
                                });
                    }else{

                        LogTools.i(TAG,"onBillingSetupFinished=getDebugMessage=="+billingResult.getDebugMessage());
                    }
                }

                @Override
                public void onBillingServiceDisconnected() {
                    // Try to restart the connection on the next request to
                    // Google Play by calling the startConnection() method.
                    LogTools.i(TAG,"onBillingServiceDisconnected=");

                }
            });
        }
    }

4.购买

    //buy
    public void googlePay(Activity activity,SkuDetails skuDetails) {
        if(billingClient!=null){

            BillingFlowParams flowParams = BillingFlowParams.newBuilder()
                    .setSkuDetails(skuDetails)
                    .build();
            billingClient.launchBillingFlow(activity,flowParams);

        }
    }

5.在混淆文件添加混淆配置

-keep class com.android.vending.billing.**

 

6.添加测试账号

  

7.发布这个测试版本,显示发布成功后(一般两个小时) 加入测试网址 

官方开发文档:https://developer.android.com/google/play/billing/billing_library_overview 

最后附上本人开发的一些,小游戏:https://play.google.com/store/apps/details?id=com.nooogfaaar.flowercolor

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值