您好,登錄后才能下訂單哦!
在進(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鏈接及作者
免責(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)容。