视频直播软件开发:Android客户端接入谷歌支付的实现流程

在进行视频直播软件开发时,开发人员常会应客户要求为直播软件增加一些功能,比如开发幸运礼物功能、增加微博登录功能或接入国内不常用的谷歌支付功能等,那么具体我们应该怎么做呢?本篇文章就来讲讲直播软件的Android客户端接入谷歌支付的实现流程。
一、首先在gradle中添加相关依赖,如下所示:

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

1、初始化相关变量

private Context mContext;//上下文对象
private CoinBean mBean;//所购商品信息类
private googlePayCallback mGooglePayCallback;//支付回调
private BillingClient mBillingClient;
public GooglePayTask(Context context , CoinBean bean, googlePayCallback callback) {
    mContext = context;
    mBean = bean;
    mGooglePayCallback = callback; mBillingClient=BillingClient.newBuilder(mContext).setListener(this).build();
}

2、连接到谷歌市场,代码如下

mBillingClient.startConnection(new BillingClientStateListener() {
    @Override
    public void onBillingSetupFinished(int responseCode) {
        L.e("googlePay","连接到谷歌市场");
    }
    @Override
    public void onBillingServiceDisconnected() {
    //无法连接到Google Play  
        ToastUtil.show(WordUtil.getString(R.string.cannot_conn_google));
        if (mGooglePayCallback!=null){
            mGooglePayCallback.onServiceDissconnected();
        }
    }
});

3、当视频直播软件连接到谷歌市场成功后,此时需要查询app内商品信息是否存在,具体代码如下

List<String> skuList = new ArrayList<>();
        L.e("googlePlay",mBean.getId());
        skuList.add(mBean.getId());//要查询的商品id
        SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
        params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
        mBillingClient.querySkuDetailsAsync(params.build(),
                new SkuDetailsResponseListener() {
            @Override
            public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) {
                //L.e("googlePay","查询商品信息错误,code = "+responseCode+skuDetailsList);
                if (responseCode== BillingClient.BillingResponse.OK
                        && skuDetailsList != null){
                    L.e("googlePay","存在商品信息");
                    ToastUtil.show("存在商品信息");
                }else {
                    L.e("googlePay","查询商品信息错误,code = "+responseCode);
                    if (mGooglePayCallback!=null){
                        mGooglePayCallback.onFailed();
                        release();
                    }
                }
            }
        });

4、查询到商品信息存在,此时根据上一步查询到的商品的id调起支付。

BillingFlowParams flowParams = BillingFlowParams.newBuilder()
        .setSku(mBean.getId())//商品id
        .setType(BillingClient.SkuType.INAPP)
        .build();
int responseCode = mBillingClient.launchBillingFlow(((MyCoinActivity)mContext),flowParams);

监听到支付成功的回调后,请求相关接口,走服务端支付成功的回调,增加购买到的相应商品,此时还需要通过BillingClient的consumeAsync方法把购买的商品消耗掉,此时整个谷歌支付购买商品流程才真正结束。
以上便是谷歌支付接入到视频直播软件android客户端的相关流程,其他配置参考官方文档即可。更多与视频直播软件开发相关的干货文章会在以后逐渐放出,敬请期待,需要的朋友请关注我。
声明:文章为原创内容,转载请注明CSDN链接及作者

猜你喜欢

转载自blog.51cto.com/14302750/2383425