美文网首页
Android 集成Google Pay

Android 集成Google Pay

作者: 鼻涕虫肉肉 | 来源:发表于2019-10-15 14:51 被阅读0次

Google支付官方文档

开始客户端的开发之前,需要以下准备工作:

1,在Google Play后台配置你的应用内商品:

图片里面的礼物1,礼物2后面马赛克的是商品的sku,类似于唯一的商品ID,需要记住,后面需要用到

2,将你的Google Play账号加入测试账号,这样才能充钱又不真扣你钱。

做好以上的准备工作,就可以开始客户端的开发了。

引入Google Billing

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

添加权限

<uses-permission android:name="com.android.vending.BILLING"/>

初始化Google Pay

BillingClient mBillingClient =BillingClient.newBuilder(mActivity)

            .enablePendingPurchases()

            .setListener(this)

            .build();

开始连接GooglePlay

mBillingClient.startConnection(new BillingClientStateListener() {

    @Override

    public void onBillingSetupFinished(BillingResult billingResult) {

    }

}

    @Override

    public void onBillingServiceDisconnected() {

    }

});

从Google Play拉取刚刚我们在后台配置的商品列表,这里需要我们配置的商品sku

ListskuList =new ArrayList<> ();

skuList.add(“你自定义商品的sku1”);

skuList.add(“你自定义商品的sku2”);

SkuDetailsParams.Builder params =SkuDetailsParams.newBuilder();

params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);

mBillingClient.querySkuDetailsAsync(params.build() ,new SkuDetailsResponseListener(){

    @Override

    public void onSkuDetailsResponse(BillingResult billingResult,ListskuDetailsList) {

                //这里会拿到一个SkuDetails的列表

    }

});

开始购买商品,执行到这一步,就会出现Google pay的弹窗,用户完成支付

BillingFlowParams params =BillingFlowParams.newBuilder()

.setSkuDetails(skuDetails)    //这里的 skuDetails是上面拉取到的

.build();

mBillingClient.launchBillingFlow(mActivity ,params);

用户完成支付后,Google Pay会回调onPurchasesUpdated方法

@Override

public void onPurchasesUpdated(BillingResult billingResult,@Nullable Listpurchases) {

    if(billingResult.getResponseCode() ==BillingClient.BillingResponseCode.OK){    //支付成功

    }else if(billingResult.getResponseCode() ==BillingClient.BillingResponseCode.USER_CANCELED){    //支付被用户取消

    }else {        //支付异常

    }

}

对于订阅类型的商品,到这一步就完成了,但是对于一次性的商品,用户购买成功后,我们还需要确认交易,否则Google会3个工作日内退款

ConsumeParams params =ConsumeParams.newBuilder()

.setPurchaseToken(token)    //这里的token,在 onPurchasesUpdated返回,是交易的唯一订单号

.build();

mBillingClient.consumeAsync(params,new ConsumeResponseListener() {

    @Override

    public void onConsumeResponse(BillingResult billingResult,String purchaseToken) {

    }

});

以上,Google Pay的Android 客户端开发就完成了,如果有问题欢迎骚扰

微信/电话:13129593727

相关文章

网友评论

      本文标题:Android 集成Google Pay

      本文链接:https://www.haomeiwen.com/subject/zixrmctx.html