Google支付接入

本文章仅作为个人笔记

官方文档
Google支付接入前提:
  • 开发者:
    • 拥有google开发者账号

    • 设置定价模板

      • 打开定价模板页面
        设置模板
      • 填写相应信息创建模板
        image.png
      • 如果出现此页面表示没有在应用内添加billing权限,在将应用AndroidManifest.xml文件内添加 权限,重新打包上传到googlePlay测试或者正式环境(一般此时测试环境就好)即可。
        image.png
      • 添加好权限后会出现创建受管理的商品,此时可以开始创建商品信息。
      • 依次填写好信息后点击保存即可(商品id一定要唯一切能表达商品意思,后面会用到)
        image.png
    • 等所有信息都创建好后,开始准备代码。

    • 添加必要jar包

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

为防止小白特贴上位置

  • 开始部分示例代码(在开始调用前先说明几点,1.代码先按照以下逻辑写好,只有当打包好并将应用上传至GooglePlay(测试或正式皆可)并通过后支付相关才可真正生效,如果需要测试支付需要将用户添加至测试用户。)

        //初始化支付实例
        BillingClient mBillingClient = BillingClient.newBuilder(context).setListener(new PurchasesUpdatedListener() {
            @Override
            public void onPurchasesUpdated(int responseCode, @Nullable List<Purchase> purchases) {
                //当支付状态改变时调用,ok为支付成功,否则为支付失败
                if (responseCode == BillingClient.BillingResponse.OK) {
                      
                } else {
                    
                }
          }
        }).build();
        //开始连接google服务并判断当前Google支付是否可用
        mBillingClient.startConnection(new BillingClientStateListener() {
            @Override
            public void onBillingSetupFinished(@BillingClient.BillingResponse int billingResponseCode) {
                //billingResponseCode == BillingClient.BillingResponse.OK说明可用,否则说明连接不上google
            }
    
            @Override
            public void onBillingServiceDisconnected() {
                  //断开连接,当收到此回调时可以重新连接google否则会出现服务无法使用问题
            }
        });
        //调用google支付时执行此代码,其中activity为页面activity。sdk为商品id(上面说到的要保证唯一的那个id)。BillingClient.SkuType.INAPP为一次性支付,如果是订阅改为BillingClient.SkuType.SUBS即可。当支付完成后调用初始化实例时传入的监听,在监听里做相应处理便可。
        mBillingClient.launchBillingFlow(activity, BillingFlowParams
            .newBuilder().setSku(sku).setType(BillingClient.SkuType.INAPP).build());
        //消耗商品代码(如果出售的商品为消耗型商品记得调用此代码,否则会出现无法重复购买的情况。)
        mBillingClient.consumeAsync(purchase.getPurchaseToken(), new ConsumeResponseListener() {
            @Override
            public void onConsumeResponse(int responseCode, String purchaseToken) {
                 if (responseCode == BillingClient.BillingResponse.OK) {
                        //消耗商品成功
                 } else {
                        //消耗商品失败
                 }
            }
        });
    
  • 最后记得添加混淆代码(proguard-rules.pro

       -keep class com.android.vending.billing.**
    
  • 客户端:

    • 客户端需要可以连接至google
    • 客户端需要安装googlePlay服务
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值