您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在进行视频直播软件开发时,开发人员常会应客户要求为直播软件增加一些功能,比如开发幸运礼物功能、增加微博登录功能或接入国内不常用的谷歌支付功能等,那么具体我们应该怎么做呢?本篇文章就来讲讲直播软件的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链接及作者
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。