温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2020-07-09 21:14:28 来源:网络 阅读:411 作者:云豹短视频 栏目:移动开发

在进行视频直播软件开发时,开发人员常会应客户要求为直播软件增加一些功能,比如开发幸运礼物功能、增加微博登录功能或接入国内不常用的谷歌支付功能等,那么具体我们应该怎么做呢?本篇文章就来讲讲直播软件的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链接及作者

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI