溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

視頻直播軟件開(kāi)發(fā):Android客戶(hù)端接入谷歌支付的實(shí)現(xiàn)流程

發(fā)布時(shí)間:2020-07-09 21:14:28 來(lái)源:網(wǎng)絡(luò) 閱讀:401 作者:云豹短視頻 欄目:移動(dòng)開(kāi)發(fā)

在進(jìn)行視頻直播軟件開(kāi)發(fā)時(shí),開(kāi)發(fā)人員常會(huì)應(yīng)客戶(hù)要求為直播軟件增加一些功能,比如開(kāi)發(fā)幸運(yùn)禮物功能、增加微博登錄功能或接入國(guó)內(nèi)不常用的谷歌支付功能等,那么具體我們應(yīng)該怎么做呢?本篇文章就來(lái)講講直播軟件的Android客戶(hù)端接入谷歌支付的實(shí)現(xiàn)流程。
一、首先在gradle中添加相關(guān)依賴(lài),如下所示:

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

1、初始化相關(guān)變量

private Context mContext;//上下文對(duì)象
private CoinBean mBean;//所購(gòu)商品信息類(lèi)
private googlePayCallback mGooglePayCallback;//支付回調(diào)
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、連接到谷歌市場(chǎng),代碼如下

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

3、當(dāng)視頻直播軟件連接到谷歌市場(chǎng)成功后,此時(shí)需要查詢(xún)app內(nèi)商品信息是否存在,具體代碼如下

List<String> skuList = new ArrayList<>();
        L.e("googlePlay",mBean.getId());
        skuList.add(mBean.getId());//要查詢(xún)的商品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","查詢(xún)商品信息錯(cuò)誤,code = "+responseCode+skuDetailsList);
                if (responseCode== BillingClient.BillingResponse.OK
                        && skuDetailsList != null){
                    L.e("googlePay","存在商品信息");
                    ToastUtil.show("存在商品信息");
                }else {
                    L.e("googlePay","查詢(xún)商品信息錯(cuò)誤,code = "+responseCode);
                    if (mGooglePayCallback!=null){
                        mGooglePayCallback.onFailed();
                        release();
                    }
                }
            }
        });

4、查詢(xún)到商品信息存在,此時(shí)根據(jù)上一步查詢(xún)到的商品的id調(diào)起支付。

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

監(jiān)聽(tīng)到支付成功的回調(diào)后,請(qǐng)求相關(guān)接口,走服務(wù)端支付成功的回調(diào),增加購(gòu)買(mǎi)到的相應(yīng)商品,此時(shí)還需要通過(guò)BillingClient的consumeAsync方法把購(gòu)買(mǎi)的商品消耗掉,此時(shí)整個(gè)谷歌支付購(gòu)買(mǎi)商品流程才真正結(jié)束。
以上便是谷歌支付接入到視頻直播軟件android客戶(hù)端的相關(guān)流程,其他配置參考官方文檔即可。更多與視頻直播軟件開(kāi)發(fā)相關(guān)的干貨文章會(huì)在以后逐漸放出,敬請(qǐng)期待,需要的朋友請(qǐng)關(guān)注我。
聲明:文章為原創(chuàng)內(nèi)容,轉(zhuǎn)載請(qǐng)注明CSDN鏈接及作者

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI