Google pay 支付接入(结算库版本 3及之上 )
接入前准备:
1.谷歌开发者账号,登陆Google Play 管理中心(创建你的应用)
2.一台支持谷歌服务的手机,有谷歌全家桶,嗯,翻墙.
3.一个谷歌测试账号,建议加入谷歌测试白名单(这样就不用测试银行卡测试了).
4.在谷歌开发者后台配置好商品.
谷歌接入文档参考:
Google Play 结算库
想了解细节的可以参考一下,和旧版AIDL解算差别还是很大的,反正我看晕了…(订阅什么的)
准备工作做好就可以开始接入了
一、将依赖项添加到应用的 build.gradle 文件中
dependencies {
implementation "com.android.billingclient:billing:4.0.0"
}
二、初始化google pay
billingClient.startConnection(object : BillingClientStateListener {
override fun onBillingSetupFinished(billingResult: BillingResult) {
if (billingResult.responseCode == BillingResponseCode.OK) {
// The BillingClient is ready. You can query purchases here.
}
}
override fun onBillingServiceDisconnected() {
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
}
})
三,拉起支付
List<String> skuList = new ArrayList<>();
skuList.add(productId);//传入商品ID
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
billingClient.querySkuDetailsAsync(params.build(),
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult billingResult, List<SkuDetails> skuDetailsList) {
if (billingResult.getResponseCode() != BillingClient.BillingResponseCode.OK) {
Log.e("Google pay", "Unsuccessful query .Error code:" + billingResult.getResponseCode());
} else if (skuDetailsList != null && skuDetailsList.size() > 0) {
//成功地获得了sku详细
for (SkuDetails details : skuDetailsList) {
Log.e(TAG, "google pay skuDetailsList: " + details.toString());
if (productId.equals(details.getSku())) {
//启动购买
BillingFlowParams purchaseParams =
BillingFlowParams.newBuilder()
.setSkuDetails(details)
.build();
billingClient.launchBillingFlow(_activity, purchaseParams);
}
}
}
}
});
四、查询订单
/**
* 查询购买交易,以确保所有购买交易都得到成功处理,如购买未发货,或者未消耗
*/
public void queryPur