Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
M
magicbox
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
王雪伟
magicbox
Commits
363bdc07
Commit
363bdc07
authored
Mar 14, 2022
by
王雪伟
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[提交人]:王雪伟
[提交简述] :加入googlePay工具类 [实现方案] :
parent
ec8ac22f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
226 additions
and
549 deletions
+226
-549
GooglePayHelper.kt
cms/src/main/java/com/zxhl/cms/googlepay/GooglePayHelper.kt
+226
-41
GooglePlayHelper.java
...rc/main/java/com/zxhl/cms/googlepay/GooglePlayHelper.java
+0
-508
No files found.
cms/src/main/java/com/zxhl/cms/googlepay/GooglePayHelper.kt
View file @
363bdc07
...
@@ -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
==
Billing
Client
.
Billing
ResponseCode
.
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
()
{
val
skuList
:
MutableList
<
String
>
=
ArrayList
()
if
(
billingClient
.
isReady
)
{
skuList
.
add
(
"premium_upgrade"
)
val
skuList
:
MutableList
<
String
>
=
ArrayList
()
skuList
.
add
(
"gas"
)
skuList
.
add
(
mSku
)
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
]
val
flowParams
=
BillingFlowParams
.
newBuilder
()
Log
.
d
(
TAG
,
"purchase skuDetails $skuDetails"
)
.
setSkuDetails
(
skuDetails
)
if
(
mSku
==
skuDetails
.
sku
)
{
val
flowParams
=
BillingFlowParams
.
newBuilder
()
.
setSkuDetails
(
skuDetails
)
// .setObfuscatedProfileId()
// .setObfuscatedAccountId()
.
build
()
//吊起支付
val
responseCode
=
billingClient
.
launchBillingFlow
(
mActivity
,
flowParams
).
responseCode
Log
.
d
(
TAG
,
"purchase 去支付 code $responseCode"
)
}
}
}
else
{
Log
.
d
(
TAG
,
"purchase 未查询到商品"
)
}
}
else
{
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
()
.
build
()
val
responseCode
=
billingClient
.
consumeAsync
(
billingClient
.
launchBillingFlow
(
mActivity
,
flowParams
).
responseCode
consumeParams
Log
.
d
(
TAG
,
"purchase 去支付 code $responseCode"
)
)
{
billingResult
,
s
->
}
else
{
if
(
billingResult
.
responseCode
==
BillingResponseCode
.
OK
)
{
Log
.
d
(
TAG
,
"purchase 查询失败"
)
// 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
)
}
}
override
fun
onBillingServiceDisconnected
()
{
// Try to restart the connection on the next request to
// Google Play by calling the startConnection() method.
Log
.
d
(
TAG
,
"consume init onBillingServiceDisconnected"
)
}
})
}
}
}
/**
* 补单操作 查询购买交易,以确保所有购买交易都得到成功处理,如购买未发货,或者未消耗
*/
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
)
{
}
}
else
{
//后端同步
//支付成功后 google回调没有收到 再次检查 后端同步
}
}
}
}
else
{
Log
.
d
(
TAG
,
"queryPurchases null"
)
}
}
}
else
{
billingClient
.
startConnection
(
object
:
BillingClientStateListener
{
override
fun
onBillingSetupFinished
(
billingResult
:
BillingResult
)
{
if
(
billingResult
.
responseCode
==
BillingResponseCode
.
OK
)
{
//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
handlePurchase
(
purchase
:
Purchase
)
{
// Purchase retrieved from BillingClient#queryPurchasesAsync or your PurchasesUpdatedListener.
// Verify the purchase.
fun
getOrderId
()
{
// Ensure entitlement was not already granted for this purchaseToken.
//向服务端获取订单ID
// Grant entitlement to the user.
ApiClient
.
userInfoAPi
.
aliPay
(
"39"
,
"4"
,
""
,
""
,
"6"
)
.
compose
(
RxSchedulers
.
observableIO2Main
())
.
subscribe
(
object
:
BaseObserver
<
AliPayEntity
>()
{
override
fun
onSuccess
(
result
:
AliPayEntity
?)
{
val
consumeParams
=
ConsumeParams
.
newBuilder
()
}
.
setPurchaseToken
(
purchase
.
purchaseToken
)
.
build
()
val
listener
=
override
fun
onFailure
(
e
:
Throwable
?,
code
:
String
?,
errorMsg
:
String
?)
{
ConsumeResponseListener
{
billingResult
,
purchaseToken
->
EventUtils
.
onEvent
(
"member_page_pay_get_order_fail"
)
if
(
billingResult
.
responseCode
==
BillingResponseCode
.
OK
)
{
// Handle the success of the consume operation.
}
}
}
})
purchase
()
}
fun
updateToService
()
{
//支付成功 向后端同步 网络问题再次重试
//同步成功 消耗掉
consume
(
""
)
}
billingClient
.
consumeAsync
(
consumeParams
,
listener
)
fun
release
()
{
if
(
billingClient
.
isReady
)
{
billingClient
.
endConnection
();
}
}
}
}
}
\ No newline at end of file
cms/src/main/java/com/zxhl/cms/googlepay/GooglePlayHelper.java
deleted
100644 → 0
View file @
ec8ac22f
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() {
// }
// });
// }
//
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment