Commit 363bdc07 authored by 王雪伟's avatar 王雪伟

[提交人]:王雪伟

[提交简述] :加入googlePay工具类
[实现方案] :
parent ec8ac22f
...@@ -6,6 +6,12 @@ import com.android.billingclient.api.* ...@@ -6,6 +6,12 @@ import com.android.billingclient.api.*
import com.android.billingclient.api.BillingClient.BillingResponseCode import com.android.billingclient.api.BillingClient.BillingResponseCode
import com.android.billingclient.api.BillingClient.SkuType import com.android.billingclient.api.BillingClient.SkuType
import com.zxhl.cms.AppContext import com.zxhl.cms.AppContext
import com.zxhl.cms.net.ApiClient
import com.zxhl.cms.net.RxSchedulers
import com.zxhl.cms.net.callback.BaseObserver
import com.zxhl.cms.net.model.uc.AliPayEntity
import com.zxhl.cms.pay.alipay.AlipayServer
import com.zxhl.cms.utils.EventUtils
/** /**
...@@ -16,11 +22,11 @@ import com.zxhl.cms.AppContext ...@@ -16,11 +22,11 @@ import com.zxhl.cms.AppContext
class GooglePayHelper { class GooglePayHelper {
private val TAG = "GooglePayHelper" private val TAG = "GooglePayHelper"
private var mActivity: Activity; private var mActivity: Activity;
private var mSku: String = "" private var mSku: String = "box0001"
constructor(mActivity: Activity, mSku: String) { constructor(mActivity: Activity, mSku: String) {
this.mActivity = mActivity this.mActivity = mActivity
this.mSku = mSku // this.mSku = mSku
} }
/** /**
...@@ -29,6 +35,53 @@ class GooglePayHelper { ...@@ -29,6 +35,53 @@ class GooglePayHelper {
private val purchasesUpdatedListener = private val purchasesUpdatedListener =
PurchasesUpdatedListener { billingResult, purchases -> PurchasesUpdatedListener { billingResult, purchases ->
// To be implemented in a later section. // To be implemented in a later section.
Log.d(TAG, "购买监听 code ${billingResult.responseCode}")
Log.d(TAG, "购买监听 size ${purchases?.size}")
if (billingResult.responseCode == BillingResponseCode.OK) {
//支付成功 同步后台
if (!purchases.isNullOrEmpty()) {
for (i in 0 until purchases.size) {
updateToService()
}
}
} else if (billingResult.responseCode == BillingResponseCode.ITEM_ALREADY_OWNED) {
//未消耗掉
//mConsume = "1"
queryPurchases()
} else {
when (billingResult.responseCode) {
BillingResponseCode.SERVICE_TIMEOUT -> {
//服务连接超时
}
BillingResponseCode.FEATURE_NOT_SUPPORTED -> {
}
BillingResponseCode.SERVICE_DISCONNECTED -> {
//服务未连接
}
BillingResponseCode.USER_CANCELED -> {
//取消
}
BillingResponseCode.SERVICE_UNAVAILABLE -> {
//服务不可用
}
BillingResponseCode.BILLING_UNAVAILABLE -> {
//购买不可用
}
BillingResponseCode.ITEM_UNAVAILABLE -> {
//商品不存在
}
BillingResponseCode.DEVELOPER_ERROR -> {
//提供给 API 的无效参数
}
BillingResponseCode.ERROR -> {
//错误
}
BillingResponseCode.ITEM_NOT_OWNED -> {
//不可购买
}
}
}
} }
private var billingClient = BillingClient.newBuilder(AppContext.get()) private var billingClient = BillingClient.newBuilder(AppContext.get())
...@@ -40,18 +93,17 @@ class GooglePayHelper { ...@@ -40,18 +93,17 @@ class GooglePayHelper {
//已经连接查询订单 //已经连接查询订单
if (billingClient.isReady) { if (billingClient.isReady) {
Log.d(TAG, "init 已连接") Log.d(TAG, "init 已连接")
purchase() getOrderId()
} else { } else {
//开始连接 //开始连接
Log.d(TAG, "init 开始连接") Log.d(TAG, "init 开始连接")
billingClient.startConnection(object : BillingClientStateListener { billingClient.startConnection(object : BillingClientStateListener {
override fun onBillingSetupFinished(billingResult: BillingResult) { override fun onBillingSetupFinished(billingResult: BillingResult) {
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK) { if (billingResult.responseCode == BillingResponseCode.OK) {
//BillingClient准备好了。你可以在这里查询购买情况。 //BillingClient准备好了。你可以在这里查询购买情况。
Log.d(TAG, "init 连接成功") Log.d(TAG, "init 连接成功")
//查询商品购买 getOrderId()
purchase() } else {
}else{
Log.d(TAG, "init 连接失败 code:" + billingResult.responseCode) Log.d(TAG, "init 连接失败 code:" + billingResult.responseCode)
} }
} }
...@@ -66,52 +118,185 @@ class GooglePayHelper { ...@@ -66,52 +118,185 @@ class GooglePayHelper {
} }
/**
* 购买商品
*/
private fun purchase() { private fun purchase() {
if (billingClient.isReady) {
val skuList: MutableList<String> = ArrayList() val skuList: MutableList<String> = ArrayList()
skuList.add("premium_upgrade") skuList.add(mSku)
skuList.add("gas")
val params = SkuDetailsParams.newBuilder() val params = SkuDetailsParams.newBuilder()
params.setSkusList(skuList).setType(SkuType.INAPP) params.setSkusList(skuList).setType(SkuType.INAPP)
billingClient.querySkuDetailsAsync( billingClient.querySkuDetailsAsync(
params.build() params.build()
) { billingResult, skuDetailsList -> ) { billingResult, skuDetailsList ->
// Process the result. // Process the result.
Log.d(TAG, "purchase billingResult " + billingResult.responseCode) if (billingResult.responseCode == BillingResponseCode.OK) {
if (!skuDetailsList.isNullOrEmpty()) {
if (billingResult.responseCode == BillingClient.BillingResponseCode.OK && !skuDetailsList.isNullOrEmpty()) { for (i in 0 until skuDetailsList.size) {
val skuDetails = skuDetailsList[0] val skuDetails = skuDetailsList[i]
Log.d(TAG, "purchase skuDetails $skuDetails")
if (mSku == skuDetails.sku) {
val flowParams = BillingFlowParams.newBuilder() val flowParams = BillingFlowParams.newBuilder()
.setSkuDetails(skuDetails) .setSkuDetails(skuDetails)
// .setObfuscatedProfileId()
// .setObfuscatedAccountId()
.build() .build()
//吊起支付
val responseCode = val responseCode =
billingClient.launchBillingFlow(mActivity, flowParams).responseCode billingClient.launchBillingFlow(
mActivity,
flowParams
).responseCode
Log.d(TAG, "purchase 去支付 code $responseCode") Log.d(TAG, "purchase 去支付 code $responseCode")
}
}
} else {
Log.d(TAG, "purchase 未查询到商品")
}
} else { } else {
Log.d(TAG, "purchase 查询失败") Log.d(TAG, "purchase 查询连接失败 cede" + billingResult.responseCode)
}
}
} }
} }
/**
* 消耗商品
*
* @param purchaseToken 商品token
*/
private fun consume(purchaseToken: String) {
if (billingClient.isReady) {
val consumeParams =
ConsumeParams.newBuilder()
.setPurchaseToken(purchaseToken)
.build()
billingClient.consumeAsync(
consumeParams
) { billingResult, s ->
if (billingResult.responseCode == BillingResponseCode.OK) {
// Handle the success of the consume operation.
Log.d(TAG, "consume 消耗成功$purchaseToken")
} else {
Log.d(TAG, "consume 消耗失败 code:" + billingResult.responseCode)
}
}
} else {
billingClient.startConnection(object : BillingClientStateListener {
override fun onBillingSetupFinished(billingResult: BillingResult) {
if (billingResult.responseCode == BillingResponseCode.OK) {
//重连后 消耗掉
val consumeParams =
ConsumeParams.newBuilder()
.setPurchaseToken(purchaseToken)
.build()
billingClient.consumeAsync(
consumeParams
) { billingResult, s ->
if (billingResult.responseCode == BillingResponseCode.OK) {
// Handle the success of the consume operation.
Log.d(TAG, "consume 消耗成功$purchaseToken")
} else {
Log.d(TAG, "consume 消耗失败 code:" + billingResult.responseCode)
}
}
} else {
Log.d(TAG, "consume init 连接失败 code:" + billingResult.responseCode)
}
} }
fun handlePurchase(purchase: Purchase) { override fun onBillingServiceDisconnected() {
// Purchase retrieved from BillingClient#queryPurchasesAsync or your PurchasesUpdatedListener. // Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
Log.d(TAG, "consume init onBillingServiceDisconnected")
}
})
}
}
// Verify the purchase. /**
// Ensure entitlement was not already granted for this purchaseToken. * 补单操作 查询购买交易,以确保所有购买交易都得到成功处理,如购买未发货,或者未消耗
// Grant entitlement to the user. */
private fun queryPurchases() {
if (billingClient.isReady) {
billingClient.queryPurchasesAsync(
SkuType.INAPP
) { billingResult, mutableList ->
if (billingResult.responseCode == BillingResponseCode.OK) {
if (mutableList.isNullOrEmpty()) {
Log.d(TAG, "queryPurchases null")
} else {
for (i in 0 until mutableList.size) {
Log.d(TAG, "queryPurchases init " + mutableList[i].purchaseState)
if (mutableList[i].isAcknowledged) {
//已确认/已验证,消耗即可
consume(mutableList[i].purchaseToken)
if (mutableList[i].purchaseState == Purchase.PurchaseState.PURCHASED) {
val consumeParams = ConsumeParams.newBuilder() }
.setPurchaseToken(purchase.purchaseToken)
.build()
val listener = } else {
ConsumeResponseListener { billingResult, purchaseToken -> //后端同步
//支付成功后 google回调没有收到 再次检查 后端同步
}
}
}
} else {
Log.d(TAG, "queryPurchases null")
}
}
} else {
billingClient.startConnection(object : BillingClientStateListener {
override fun onBillingSetupFinished(billingResult: BillingResult) {
if (billingResult.responseCode == BillingResponseCode.OK) { if (billingResult.responseCode == BillingResponseCode.OK) {
// Handle the success of the consume operation. //BillingClient准备好了。你可以在这里查询购买情况。
Log.d(TAG, "queryPurchases init 连接成功")
} else {
Log.d(TAG, "queryPurchases init 连接失败 code:" + billingResult.responseCode)
}
}
override fun onBillingServiceDisconnected() {
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
Log.d(TAG, "queryPurchases init onBillingServiceDisconnected")
}
})
}
}
fun getOrderId() {
//向服务端获取订单ID
ApiClient.userInfoAPi.aliPay("39", "4", "", "", "6")
.compose(RxSchedulers.observableIO2Main())
.subscribe(object : BaseObserver<AliPayEntity>() {
override fun onSuccess(result: AliPayEntity?) {
} }
override fun onFailure(e: Throwable?, code: String?, errorMsg: String?) {
EventUtils.onEvent("member_page_pay_get_order_fail")
} }
})
purchase()
}
fun updateToService() {
//支付成功 向后端同步 网络问题再次重试
billingClient.consumeAsync(consumeParams, listener) //同步成功 消耗掉
consume("")
} }
fun release() {
if (billingClient.isReady) {
billingClient.endConnection();
}
}
} }
\ No newline at end of file
package com.zxhl.cms.googlepay;
import android.app.Activity;
import android.text.TextUtils;
import com.android.billingclient.api.BillingClient;
import com.android.billingclient.api.BillingClientStateListener;
import com.android.billingclient.api.BillingFlowParams;
import com.android.billingclient.api.BillingResult;
import com.android.billingclient.api.ConsumeParams;
import com.android.billingclient.api.ConsumeResponseListener;
import com.android.billingclient.api.Purchase;
import com.android.billingclient.api.PurchasesUpdatedListener;
import com.android.billingclient.api.SkuDetails;
import com.android.billingclient.api.SkuDetailsParams;
import com.android.billingclient.api.SkuDetailsResponseListener;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
/**
* @author (wangXuewei)
* @datetime 2022-03-09 15:25 GMT+8
* @detail :
*/
public class GooglePlayHelper {
private static final String TAG = GooglePlayHelper.class.getSimpleName();
private static final int GAME_ORDER_ID=0x01;
// //订单号
// private String mOrderID;
// //用户信息
// private String mUserID;
// //商品集合
// private WeakReference<Activity> mActivityRef;
// //回调
// private OnRechargeStateListener mListener;
// //商品
// private String mSku;
// private String goods_number;// 商品ID,游戏提供
// private BillingClient mBillingClient;
// private int mPayTest;
// private String mConsume = "0";
//
// GooglePlayHelper(Activity activity,
// String goods_number, int mPayTest,
// String sku, OnRechargeStateListener mListener) {
// this.mActivityRef = new WeakReference<>(activity);
// this.goods_number = goods_number;
// this.mSku = sku;
// this.mPayTest = mPayTest;
// this.mListener = mListener;
// }
//
// public GooglePlayHelper(Activity activity, int mPayTest) {
// this.mActivityRef = new WeakReference<>(activity);
// this.mPayTest = mPayTest;
// }
//
//
//
//
// /**
// * 初始化
// */
// void init() {
// mBillingClient = BillingClient.newBuilder(mActivityRef.get())
// .setListener(mPurchasesUpdatedListener)
// .enablePendingPurchases()
// .build();
// if (!mBillingClient.isReady()) {
// mBillingClient.startConnection(new BillingClientStateListener() {
// @Override
// public void onBillingSetupFinished(BillingResult billingResult) {
// if (billingResult != null) {
// if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
// if (!TextUtils.isEmpty(PreferencesUtils.getString(mActivityRef.get(),
// Constants.USER_LT_UID_KEY))) {
// getLTOrderID();
// } else {
// mListener.onState(mActivityRef.get(), RechargeResult.failOf(LTGameError.make(
// LTResultCode.STATE_GP_CREATE_ORDER_FAILED,
// "order create failed:user key is empty"
// )));
// mActivityRef.get().finish();
// }
// }
// }
//
// }
//
// @Override
// public void onBillingServiceDisconnected() {
// }
// });
// } else {
// if (!TextUtils.isEmpty(PreferencesUtils.getString(mActivityRef.get(),
// Constants.USER_LT_UID_KEY))) {
// getLTOrderID();
// } else {
// mListener.onState(mActivityRef.get(), RechargeResult.failOf(LTGameError.make(
// LTResultCode.STATE_GP_CREATE_ORDER_FAILED,
// "order create failed:user key is empty"
// )));
// mActivityRef.get().finish();
// }
// }
// }
//
//
// /**
// * 购买回调
// */
// private PurchasesUpdatedListener mPurchasesUpdatedListener = new PurchasesUpdatedListener() {
// @Override
// public void onPurchasesUpdated(BillingResult billingResult, List<Purchase> list) {
// String debugMessage = billingResult.getDebugMessage();
// Log.e(TAG, debugMessage);
// if (list != null && list.size() > 0) {
// if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
// for (Purchase purchase : list) {
// mConsume = "2";
// uploadToServer(purchase.getPurchaseToken(), purchase.getOrderId(),mOrderID, mPayTest);
// }
//
// }
// } else {
// switch (billingResult.getResponseCode()) {
// case BillingClient.BillingResponseCode.SERVICE_TIMEOUT: {//服务连接超时
// mListener.onState(mActivityRef.get(), RechargeResult.failOf("-3"));
// mActivityRef.get().finish();
// break;
// }
// case BillingClient.BillingResponseCode.FEATURE_NOT_SUPPORTED: {
// mListener.onState(mActivityRef.get(), RechargeResult.failOf("-2"));
// mActivityRef.get().finish();
// break;
// }
// case BillingClient.BillingResponseCode.SERVICE_DISCONNECTED: {//服务未连接
// mListener.onState(mActivityRef.get(), RechargeResult.failOf("-1"));
// mActivityRef.get().finish();
// break;
// }
// case BillingClient.BillingResponseCode.USER_CANCELED: {//取消
// mListener.onState(mActivityRef.get(), RechargeResult.failOf("1"));
// mActivityRef.get().finish();
// break;
// }
// case BillingClient.BillingResponseCode.SERVICE_UNAVAILABLE: {//服务不可用
// mListener.onState(mActivityRef.get(), RechargeResult.failOf("2"));
// mActivityRef.get().finish();
// break;
// }
// case BillingClient.BillingResponseCode.BILLING_UNAVAILABLE: {//购买不可用
// mListener.onState(mActivityRef.get(), RechargeResult.failOf("3"));
// mActivityRef.get().finish();
// break;
// }
// case BillingClient.BillingResponseCode.ITEM_UNAVAILABLE: {//商品不存在
// mListener.onState(mActivityRef.get(), RechargeResult.failOf("4"));
// mActivityRef.get().finish();
// break;
// }
// case BillingClient.BillingResponseCode.DEVELOPER_ERROR: {//提供给 API 的无效参数
// mListener.onState(mActivityRef.get(), RechargeResult.failOf("5"));
// mActivityRef.get().finish();
// break;
// }
// case BillingClient.BillingResponseCode.ERROR: {//错误
// mListener.onState(mActivityRef.get(), RechargeResult.failOf("6"));
// mActivityRef.get().finish();
// break;
// }
// case BillingClient.BillingResponseCode.ITEM_ALREADY_OWNED: {//未消耗掉
// mConsume = "1";
// queryHistory();
// break;
// }
// case BillingClient.BillingResponseCode.ITEM_NOT_OWNED: {//不可购买
// mListener.onState(mActivityRef.get(), RechargeResult.failOf("8"));
// mActivityRef.get().finish();
// break;
// }
// }
// }
// }
// };
//
// /**
// * 购买
// */
// private void recharge() {
// if (mBillingClient.isReady()) {
// List<String> skuList = new ArrayList<>();
// skuList.add(mSku);
// SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
// params.setSkusList(skuList).setType(BillingClient.SkuType.INAPP);
// mBillingClient.querySkuDetailsAsync(params.build(),
// new SkuDetailsResponseListener() {
// @Override
// public void onSkuDetailsResponse(BillingResult billingResult,
// List<SkuDetails> skuDetailsList) {
// if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK
// && skuDetailsList != null) {
// for (SkuDetails skuDetails : skuDetailsList) {
// String sku = skuDetails.getSku();
// if (mSku.equals(sku)) {
// BillingFlowParams purchaseParams =
// BillingFlowParams.newBuilder()
// .setSkuDetails(skuDetails)
// .setObfuscatedAccountId(mUserID)
// .setObfuscatedProfileId(mOrderID)
// .build();
// mBillingClient.launchBillingFlow(mActivityRef.get(), purchaseParams);
// }
// }
// }
//
// }
// });
//
// }
//
//
// }
//
//
// /**
// * 消耗
// */
// private void consume(String purchaseToken) {
// if (mBillingClient.isReady()) {
// ConsumeParams consumeParams = ConsumeParams.newBuilder()
// .setPurchaseToken(purchaseToken)
// .build();
// mBillingClient.consumeAsync(consumeParams, new ConsumeResponseListener() {
// @Override
// public void onConsumeResponse(BillingResult billingResult, String s) {
//
// }
// });
// } else {
// mBillingClient.startConnection(new BillingClientStateListener() {
// @Override
// public void onBillingSetupFinished(BillingResult billingResult) {
// if (billingResult != null) {
// if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
// ConsumeParams consumeParams = ConsumeParams.newBuilder()
// .setPurchaseToken(purchaseToken)
// .build();
// mBillingClient.consumeAsync(consumeParams, new ConsumeResponseListener() {
// @Override
// public void onConsumeResponse(BillingResult billingResult, String s) {
//
// }
// });
// }
// }
//
// }
//
// @Override
// public void onBillingServiceDisconnected() {
// }
// });
// }
//
// }
//
// /**
// * 消耗
// */
// private void consume2(String purchaseToken) {
// if (mBillingClient.isReady()) {
// ConsumeParams consumeParams = ConsumeParams.newBuilder()
// .setPurchaseToken(purchaseToken)
// .build();
// mBillingClient.consumeAsync(consumeParams, new ConsumeResponseListener() {
// @Override
// public void onConsumeResponse(BillingResult billingResult, String s) {
//
// }
// });
// recharge();
// } else {
// mBillingClient.startConnection(new BillingClientStateListener() {
// @Override
// public void onBillingSetupFinished(BillingResult billingResult) {
// if (billingResult != null) {
// if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
// ConsumeParams consumeParams = ConsumeParams.newBuilder()
// .setPurchaseToken(purchaseToken)
// .build();
// mBillingClient.consumeAsync(consumeParams, new ConsumeResponseListener() {
// @Override
// public void onConsumeResponse(BillingResult billingResult, String s) {
//
// }
// });
// }
// }
//
// }
//
// @Override
// public void onBillingServiceDisconnected() {
// }
// });
// recharge();
// }
//
// }
//
// /**
// * 补单操作
// */
// private void queryHistory() {
// Purchase.PurchasesResult mResult = mBillingClient.queryPurchases(BillingClient.SkuType.INAPP);
// for (int i = 0; i < mResult.getPurchasesList().size(); i++) {
// if (mResult.getPurchasesList().get(i).isAcknowledged()) {
// consume2(mResult.getPurchasesList().get(i).getPurchaseToken());
// } else {
// uploadToServer2(mResult.getPurchasesList().get(i).getPurchaseToken(),
// mResult.getPurchasesList().get(i).getOrderId(),
// mResult.getPurchasesList().get(i).getAccountIdentifiers().getObfuscatedProfileId(),
// mPayTest);
// }
// }
//
// }
//
// /**
// * 获取订单ID
// */
// private void getLTOrderID() {
// //自己获取订单ID的接口(和你们自己的服务器进行商量)
// LoginRealizeManager.createOrder(mActivityRef.get(), xx, xx, xx,
// new OnRechargeStateListener() {
//
// @Override
// public void onState(Activity activity, RechargeResult result) {
// if (result != null) {
// if (result.getResultModel() != null) {
// if (result.getResultModel().getData() != null) {
// if (result.getResultModel().getCode() == 0) {
// if (result.getResultModel().getData().getOrder_number() != null) {
// mOrderID = result.getResultModel().getData().getOrder_number();
// PreferencesUtils.init(mActivityRef.get());
// PreferencesUtils.putString(mActivityRef.get(), GAME_ORDER_ID, mOrderID);
// recharge();
// }
// } else {
// mListener.onState(mActivityRef.get(),
// RechargeResult.failOf(result.getResultModel().getMsg()));
// mActivityRef.get().finish();
// activity.finish();
// }
//
// }
//
// }
// }
// }
//
// });
//
// }
//
// /**
// * 上传到服务器验证接口(具体传值和你们的服务器进行沟通确认)
// */
// private void uploadToServer(final String purchaseToken,String mGoogleOrder, String mOrderID, int mPayTest) {
// LoginRealizeManager.googlePlay(mActivityRef.get(),
// purchaseToken, mOrderID, mPayTest, new OnRechargeStateListener() {
// @Override
// public void onState(Activity activity, RechargeResult result) {
// if (result != null) {
// if (result.getResultModel() != null) {
// if (result.getResultModel().getCode() == 0) {
// mListener.onState(mActivityRef.get(), RechargeResult
// .successOf(result.getResultModel()));
// consume(purchaseToken);
// } else if (result.getResultModel().getCode() == 10500) {//网络中断再次重新上传验证上传
// uploadToServer(purchaseToken,mGoogleOrder, mOrderID, mPayTest);
// } else {//上传订单验证错误日志信息到服务器
// LoginRealizeManager.sendGooglePlayFailed(mActivityRef.get(), mOrderID, purchaseToken,
// mGoogleOrder,
// mPayTest, result.getResultModel().getMsg(), mListener);
// }
// }
//
// }
//
// }
//
// });
//
// }
//
// /**
// * 上传到服务器验证接口(具体传值和你们的服务器进行沟通确认)
// */
// private void uploadToServer2(final String purchaseToken,String mGoogleOrder, String mOrderID, int mPayTest) {
// LoginRealizeManager.googlePlay(mActivityRef.get(),
// purchaseToken, mOrderID, mPayTest, new OnRechargeStateListener() {
// @Override
// public void onState(Activity activity, RechargeResult result) {
// if (result != null) {
// if (result.getResultModel() != null) {
// if (result.getResultModel().getCode() == 0) {
// consume2(purchaseToken);
// if (mConsume.equals("1")) {
// recharge();
// }
// } else if (result.getResultModel().getCode() == 10500) {
// uploadToServer2(purchaseToken,mGoogleOrder, mOrderID, mPayTest);
// } else {
// LoginRealizeManager.sendGooglePlayFailed(mActivityRef.get(), mOrderID, purchaseToken,
// mGoogleOrder,
// mPayTest, result.getResultModel().getMsg(), mListener);
// }
// }
//
// }
//
// }
//
// });
//
// }
//
// /**
// * 上传到服务器验证
// */
// private void uploadToServer3(final String purchaseToken, String mGoogleOrder,String mOrderID, int mPayTest) {
// LoginRealizeManager.googlePlay(mActivityRef.get(),
// purchaseToken, mOrderID, mPayTest, new OnRechargeStateListener() {
// @Override
// public void onState(Activity activity, RechargeResult result) {
// if (result != null) {
// if (result.getResultModel() != null) {
// if (result.getResultModel().getCode() == 0) {
// consume2(purchaseToken);
// } else if (result.getResultModel().getCode() == 10500) {
// uploadToServer3(purchaseToken,mGoogleOrder, mOrderID, mPayTest);
// } else {
// LoginRealizeManager.sendGooglePlayFailed(mActivityRef.get(), mOrderID, purchaseToken,
// mGoogleOrder,
// mPayTest, result.getResultModel().getMsg(), mListener);
// }
// }
//
// }
//
// }
//
// });
//
// }
//
//
// /**
// * 释放
// */
// void release() {
// if (mBillingClient.isReady()) {
// mBillingClient.endConnection();
// }
// }
//
// /**
// * 补单操作
// */
// public void addOrder() {
// mBillingClient = BillingClient.newBuilder(mActivityRef.get())
// .setListener(mPurchasesUpdatedListener)
// .enablePendingPurchases()
// .build();
// mBillingClient.startConnection(new BillingClientStateListener() {
// @Override
// public void onBillingSetupFinished(BillingResult billingResult) {
// if (billingResult != null) {
// if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
// Purchase.PurchasesResult mResult = mBillingClient.queryPurchases(BillingClient.SkuType.INAPP);
// for (int i = 0; i < mResult.getPurchasesList().size(); i++) {
// if (mResult.getPurchasesList().get(i).isAcknowledged()) {//服务器验证
// consume2(mResult.getPurchasesList().get(i).getPurchaseToken());
// } else {//服务器未验证走验证流程
// uploadToServer3(mResult.getPurchasesList().get(i).getPurchaseToken(),
// mResult.getPurchasesList().get(i).getOrderId(),
// mResult.getPurchasesList().get(i).getAccountIdentifiers().getObfuscatedProfileId(),
// mPayTest);
// }
// }
// }
// }
//
// }
//
// @Override
// public void onBillingServiceDisconnected() {
// }
// });
// }
//
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment