Merge remote-tracking branch 'origin/新潘多拉' into 新潘多拉
This commit is contained in:
commit
c4a24be6f7
@ -4,7 +4,7 @@
|
|||||||
>
|
>
|
||||||
|
|
||||||
<queries>
|
<queries>
|
||||||
<package android:name="com.pandora.sy"/>
|
<package android:name="com.newpandora.yo"/>
|
||||||
<package android:name="com.facebook.orca"/>
|
<package android:name="com.facebook.orca"/>
|
||||||
|
|
||||||
<package
|
<package
|
||||||
|
@ -297,8 +297,7 @@ android {
|
|||||||
|
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
// applicationId "myname.pdlive.shayu"
|
applicationId "com.newpandora.yo"
|
||||||
applicationId "com.pandora.sy"
|
|
||||||
minSdkVersion rootProject.ext.android.minSdkVersion
|
minSdkVersion rootProject.ext.android.minSdkVersion
|
||||||
//版本在这里修改
|
//版本在这里修改
|
||||||
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
targetSdkVersion rootProject.ext.android.targetSdkVersion
|
||||||
|
@ -1,57 +1,73 @@
|
|||||||
{
|
{
|
||||||
"project_info": {
|
"project_info": {
|
||||||
"project_number": "867032862719",
|
"project_number": "671943160079",
|
||||||
"project_id": "pdlnew",
|
"project_id": "pdlnews",
|
||||||
"storage_bucket": "pdlnew.appspot.com"
|
"storage_bucket": "pdlnews.appspot.com"
|
||||||
},
|
},
|
||||||
"client": [
|
"client": [
|
||||||
{
|
{
|
||||||
"client_info": {
|
"client_info": {
|
||||||
"mobilesdk_app_id": "1:867032862719:android:841a73fdfb6c37453ae1ca",
|
"mobilesdk_app_id": "1:671943160079:android:e3116655ea962750fb8e7a",
|
||||||
"android_client_info": {
|
"android_client_info": {
|
||||||
"package_name": "com.pandora.sy"
|
"package_name": "com.newpandora.yo"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"oauth_client": [
|
"oauth_client": [
|
||||||
{
|
{
|
||||||
"client_id": "867032862719-af2dnojobjd8s6ekdr1is1vev8nk36sv.apps.googleusercontent.com",
|
"client_id": "671943160079-9olh3lsv7mo2mrjr16u0cqtlmde8r4ps.apps.googleusercontent.com",
|
||||||
"client_type": 1,
|
"client_type": 1,
|
||||||
"android_info": {
|
"android_info": {
|
||||||
"package_name": "com.pandora.sy",
|
"package_name": "com.newpandora.yo",
|
||||||
"certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "867032862719-ohaa1f18e186qpasvgt7qkk1i1pivniq.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "com.pandora.sy",
|
|
||||||
"certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "867032862719-snpbqruvqcc9fsifjnmm1h3dcgtr8am4.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "com.pandora.sy",
|
|
||||||
"certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87"
|
"certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"client_id": "867032862719-ep4r92lpjmn7gs9tg0r7q0l75a4gm9mt.apps.googleusercontent.com",
|
"client_id": "671943160079-evu2q1gur12tb34cimc9g14t9vffb9sm.apps.googleusercontent.com",
|
||||||
|
"client_type": 1,
|
||||||
|
"android_info": {
|
||||||
|
"package_name": "com.newpandora.yo",
|
||||||
|
"certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_id": "671943160079-gd4v6mr8t330ik8a00po6psdsn6p7b9k.apps.googleusercontent.com",
|
||||||
|
"client_type": 1,
|
||||||
|
"android_info": {
|
||||||
|
"package_name": "com.newpandora.yo",
|
||||||
|
"certificate_hash": "89f318e9603ae92835b6dab299a45afc59485b9e"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_id": "671943160079-gs1mv4vpdjgofj541cuqkfhija98rna0.apps.googleusercontent.com",
|
||||||
|
"client_type": 1,
|
||||||
|
"android_info": {
|
||||||
|
"package_name": "com.newpandora.yo",
|
||||||
|
"certificate_hash": "b55235e71e9e1d2f8f7120ddc4224db85125e085"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_id": "671943160079-pdtdv5k1s4mamo7obssuo99rtghkd503.apps.googleusercontent.com",
|
||||||
|
"client_type": 1,
|
||||||
|
"android_info": {
|
||||||
|
"package_name": "com.newpandora.yo",
|
||||||
|
"certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"client_id": "671943160079-9259s527l99jlrfikv6hd4ljcieup34u.apps.googleusercontent.com",
|
||||||
"client_type": 3
|
"client_type": 3
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"api_key": [
|
"api_key": [
|
||||||
{
|
{
|
||||||
"current_key": "AIzaSyAnlY2aBEGyg7QpghHo7EaMRkM89dVNgq8"
|
"current_key": "AIzaSyCf7-JJ44TD09I34Yt4DVzcAO7VCDCa424"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"services": {
|
"services": {
|
||||||
"appinvite_service": {
|
"appinvite_service": {
|
||||||
"other_platform_oauth_client": [
|
"other_platform_oauth_client": [
|
||||||
{
|
{
|
||||||
"client_id": "867032862719-ep4r92lpjmn7gs9tg0r7q0l75a4gm9mt.apps.googleusercontent.com",
|
"client_id": "671943160079-9259s527l99jlrfikv6hd4ljcieup34u.apps.googleusercontent.com",
|
||||||
"client_type": 3
|
"client_type": 3
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
<provider
|
<provider
|
||||||
android:name="androidx.core.content.FileProvider"
|
android:name="androidx.core.content.FileProvider"
|
||||||
android:authorities="com.pandora.sy.fileprovider"
|
android:authorities="com.newpandora.yo.fileprovider"
|
||||||
android:exported="false"
|
android:exported="false"
|
||||||
android:grantUriPermissions="true">
|
android:grantUriPermissions="true">
|
||||||
<meta-data
|
<meta-data
|
||||||
|
@ -56,7 +56,7 @@ public class SudGameSearchDialogPopup extends AbsDialogPopupWindow {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dismiss() {
|
public void dismiss() {
|
||||||
Bus.getOff(this);
|
// Bus.getOff(this);
|
||||||
super.dismiss();
|
super.dismiss();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ public class SudGameSearchDialogPopup extends AbsDialogPopupWindow {
|
|||||||
@Override
|
@Override
|
||||||
protected void onCreate() {
|
protected void onCreate() {
|
||||||
super.onCreate();
|
super.onCreate();
|
||||||
Bus.getOn(this);
|
// Bus.getOn(this);
|
||||||
editSearch = findViewById(R.id.edit_search);
|
editSearch = findViewById(R.id.edit_search);
|
||||||
// listHistory = findViewById(R.id.list_history);
|
// listHistory = findViewById(R.id.list_history);
|
||||||
listRoom = findViewById(R.id.list_room);
|
listRoom = findViewById(R.id.list_room);
|
||||||
|
@ -20,7 +20,7 @@ public class CommonHttpConsts {
|
|||||||
public static final String DOWNLOAD_GIF = "downloadGif";
|
public static final String DOWNLOAD_GIF = "downloadGif";
|
||||||
public static final String GET_BALANCE = "getBalance";
|
public static final String GET_BALANCE = "getBalance";
|
||||||
public static final String CHECK_TOKEN_INVALID = "checkTokenInvalid";
|
public static final String CHECK_TOKEN_INVALID = "checkTokenInvalid";
|
||||||
public static final String NOTIFY_GOOGLE = "Charge.google_pay";
|
public static final String NOTIFY_GOOGLE = "Charge.goole_validate_panduola";
|
||||||
public static final String COMMUNITY_SETREPORT = "Community.setReport";
|
public static final String COMMUNITY_SETREPORT = "Community.setReport";
|
||||||
|
|
||||||
public static final String GET_USER_HOME = "getUserHome";
|
public static final String GET_USER_HOME = "getUserHome";
|
||||||
|
@ -417,18 +417,15 @@ public class CommonHttpUtil {
|
|||||||
.params("purchaseToken", purchaseToken)
|
.params("purchaseToken", purchaseToken)
|
||||||
.params("productId", productId)
|
.params("productId", productId)
|
||||||
.params("orderno", orderno)
|
.params("orderno", orderno)
|
||||||
.params("package_name", "com.pandora.sy")
|
.params("package_name", "com.newpandora.yo")
|
||||||
.execute(callback);
|
.execute(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void notifyGoogle(String purchaseToken, String orderNo, String tradeNo, String allData, String gps_adid, HttpCallback callback) {
|
public static void notifyGoogle(String purchaseToken, String productId, HttpCallback callback) {
|
||||||
HttpClient.getInstance().get(CommonHttpConsts.NOTIFY_GOOGLE, CommonHttpConsts.NOTIFY_GOOGLE)
|
HttpClient.getInstance().get(CommonHttpConsts.NOTIFY_GOOGLE, CommonHttpConsts.NOTIFY_GOOGLE)
|
||||||
.params("purchaseToken", purchaseToken)
|
.params("purchaseToken", purchaseToken)
|
||||||
.params("orderno", orderNo)
|
.params("productId", productId)
|
||||||
.params("trade_no", tradeNo)
|
.params("package_name", "com.newpandora.yo")
|
||||||
.params("allData", allData)
|
|
||||||
.params("gps_adid", gps_adid)
|
|
||||||
.params("package_name", "com.pandora.sy")
|
|
||||||
.execute(callback);
|
.execute(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -437,7 +434,7 @@ public class CommonHttpUtil {
|
|||||||
.params("purchaseToken", purchaseToken)
|
.params("purchaseToken", purchaseToken)
|
||||||
.params("orderno", orderNo)
|
.params("orderno", orderNo)
|
||||||
.params("trade_no", tradeNo)
|
.params("trade_no", tradeNo)
|
||||||
.params("package_name", "com.pandora.sy")
|
.params("package_name", "com.newpandora.yo")
|
||||||
.execute(callback);
|
.execute(callback);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -0,0 +1,297 @@
|
|||||||
|
package com.yunbao.common.pay.google;
|
||||||
|
|
||||||
|
import android.app.Activity;
|
||||||
|
import android.util.Log;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
|
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.ProductDetails;
|
||||||
|
import com.android.billingclient.api.Purchase;
|
||||||
|
import com.android.billingclient.api.PurchasesUpdatedListener;
|
||||||
|
import com.android.billingclient.api.QueryProductDetailsParams;
|
||||||
|
import com.android.billingclient.api.QueryPurchasesParams;
|
||||||
|
import com.google.android.gms.ads.identifier.AdvertisingIdClient;
|
||||||
|
import com.google.android.gms.common.ConnectionResult;
|
||||||
|
import com.google.android.gms.common.GoogleApiAvailability;
|
||||||
|
import com.google.common.collect.ImmutableList;
|
||||||
|
import com.yunbao.common.CommonAppContext;
|
||||||
|
import com.yunbao.common.R;
|
||||||
|
import com.yunbao.common.http.CommonHttpUtil;
|
||||||
|
import com.yunbao.common.http.HttpCallback;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
//谷歌支付
|
||||||
|
public class GooglePlay implements PurchasesUpdatedListener {
|
||||||
|
|
||||||
|
private String TAG = "mLog";
|
||||||
|
private BillingClient billingClient;
|
||||||
|
private GoogleBillingListener billingListener;
|
||||||
|
|
||||||
|
private GooglePlay() {
|
||||||
|
init();
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean init() {
|
||||||
|
if (getGoogleService() && billingClient == null) {
|
||||||
|
billingClient = BillingClient.newBuilder(CommonAppContext.sInstance)
|
||||||
|
.setListener(this)
|
||||||
|
.enablePendingPurchases()
|
||||||
|
.build();
|
||||||
|
startConnection();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (billingClient != null && !billingClient.isReady()) {//没有连接的话去连接
|
||||||
|
startConnection();
|
||||||
|
}
|
||||||
|
if (billingClient == null)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void startConnection() {
|
||||||
|
if (!billingClient.isReady()) {
|
||||||
|
//请求连接到GooglePay
|
||||||
|
billingClient.startConnection(new BillingClientStateListener() {
|
||||||
|
@Override
|
||||||
|
public void onBillingSetupFinished(@NonNull BillingResult billingResult) {
|
||||||
|
int code = billingResult.getResponseCode();
|
||||||
|
if (code != BillingClient.BillingResponseCode.OK) {
|
||||||
|
String msg = billingResult.getDebugMessage();
|
||||||
|
Log.e(TAG, "连接到GooglePay失败 code = " + code + " msg = " + msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Log.e(TAG, "连接到GooglePay成功");
|
||||||
|
}
|
||||||
|
|
||||||
|
//连接失败
|
||||||
|
@Override
|
||||||
|
public void onBillingServiceDisconnected() {
|
||||||
|
Log.e(TAG, "连接到GooglePay失败,请重试");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//点击商品,先查询商品 然后出来支付界面,调用下单
|
||||||
|
public void purchase(Activity activity, String orderNumber, String id) {
|
||||||
|
if (!init()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ImmutableList<QueryProductDetailsParams.Product> productList = ImmutableList.of(QueryProductDetailsParams.Product.newBuilder()
|
||||||
|
.setProductId(id)
|
||||||
|
.setProductType(BillingClient.ProductType.INAPP)
|
||||||
|
.build());
|
||||||
|
QueryProductDetailsParams queryProductDetailsParams =
|
||||||
|
QueryProductDetailsParams.newBuilder()
|
||||||
|
.setProductList(productList)
|
||||||
|
.build();
|
||||||
|
billingClient.queryProductDetailsAsync(
|
||||||
|
queryProductDetailsParams,
|
||||||
|
(billingResult, list) -> {
|
||||||
|
//查询商品成功
|
||||||
|
int code = billingResult.getResponseCode();
|
||||||
|
if (code != BillingClient.BillingResponseCode.OK || list == null || list.isEmpty()) {
|
||||||
|
String msg = billingResult.getDebugMessage();
|
||||||
|
Log.e(TAG, "查询商品失败 code = " + code + " msg = " + msg);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Log.e(TAG, "查询商品成功");
|
||||||
|
buyIt(activity, orderNumber, list.get(0));
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
//开始下单,准备生成订单了
|
||||||
|
private void buyIt(Activity activity, String orderNumber, ProductDetails productDetails) {
|
||||||
|
List<BillingFlowParams.ProductDetailsParams> productDetailsParamsList = new ArrayList<>();
|
||||||
|
productDetailsParamsList.add(BillingFlowParams.ProductDetailsParams.newBuilder()
|
||||||
|
// retrieve a value for "productDetails" by calling queryProductDetailsAsync()
|
||||||
|
.setProductDetails(productDetails)
|
||||||
|
// For one-time products, "setOfferToken" method shouldn't be called.
|
||||||
|
// For subscriptions, to get an offer token, call
|
||||||
|
// ProductDetails.subscriptionOfferDetails() for a list of offers
|
||||||
|
// that are available to the user.
|
||||||
|
//一次性商品不需要传token
|
||||||
|
// .setOfferToken(selectedOfferToken)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder()
|
||||||
|
.setProductDetailsParamsList(productDetailsParamsList)
|
||||||
|
.setObfuscatedAccountId(orderNumber)//好像是账号id
|
||||||
|
.build();
|
||||||
|
|
||||||
|
BillingResult billingResult = billingClient.launchBillingFlow(activity, billingFlowParams);
|
||||||
|
int code = billingResult.getResponseCode();
|
||||||
|
if (code != BillingClient.BillingResponseCode.OK) {
|
||||||
|
String msg = billingResult.getDebugMessage();
|
||||||
|
Log.e(TAG, "购买商品失败 code = " + code + " msg = " + msg);
|
||||||
|
// ToastUtil.show(getString(R.string.pay_suc));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Log.e(TAG, "购买商品 " + productDetails.toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
//消耗商品 支付成功之后,调用我们后台下发商品成功之后,调用消耗
|
||||||
|
public void consume(List<Purchase> list) {
|
||||||
|
if (!init()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (Purchase purchase : list) {
|
||||||
|
getConsumeGoods(purchase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 消耗所有商品
|
||||||
|
*/
|
||||||
|
public void consumeAll() {
|
||||||
|
if (!init()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
//以下示例展示了如何提取用户的订阅购买交易。请注意,queryPurchasesAsync() 仅返回有效订阅和非消耗型一次性购买交易。
|
||||||
|
QueryPurchasesParams inAppPurchasesQuery = QueryPurchasesParams.newBuilder().setProductType(BillingClient.ProductType.INAPP).build();
|
||||||
|
billingClient.queryPurchasesAsync(inAppPurchasesQuery, (billingResult, list) -> {
|
||||||
|
if (BillingClient.BillingResponseCode.OK == billingResult.getResponseCode()) {
|
||||||
|
for (Purchase purchase : list) {
|
||||||
|
//0:PurchaseState.UNSPECIFIED_STATE:未知状态
|
||||||
|
//1:PurchaseState.PURCHASED:付款完成
|
||||||
|
//2:PurchaseState.PENDING:购买正在等待付款完成。
|
||||||
|
if (Purchase.PurchaseState.PURCHASED == purchase.getPurchaseState()) {
|
||||||
|
//调用google去消费
|
||||||
|
//如果之后还出现谷歌掉单的行为在来处理
|
||||||
|
CommonHttpUtil.notifyGoogle(purchase.getPurchaseToken(),
|
||||||
|
purchase.getProducts().get(0), new HttpCallback() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(int code, String msg, String[] info) {
|
||||||
|
if (code == 0) {
|
||||||
|
getConsumeGoods(purchase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公共消费商品接口
|
||||||
|
*/
|
||||||
|
private void getConsumeGoods(Purchase purchase) {
|
||||||
|
if (purchase != null) {
|
||||||
|
Log.i(TAG, "-----开始消耗商品:" + purchase.toString());
|
||||||
|
ConsumeParams.Builder consumeParams = ConsumeParams.newBuilder();
|
||||||
|
consumeParams.setPurchaseToken(purchase.getPurchaseToken());
|
||||||
|
//调用消耗商品方法
|
||||||
|
consumeAsync(consumeParams.build(), purchase);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 消耗商品
|
||||||
|
* int SERVICE_TIMEOUT = -3; //服务超时
|
||||||
|
* int FEATURE_NOT_SUPPORTED = -2; //不支持功能
|
||||||
|
* int SERVICE_DISCONNECTED = -1; //服务单元已断开
|
||||||
|
* int OK = 0; //成功
|
||||||
|
* int USER_CANCELED = 1; //用户按上一步或取消对话框
|
||||||
|
* int SERVICE_UNAVAILABLE = 2; //网络连接断开
|
||||||
|
* int BILLING_UNAVAILABLE = 3; //所请求的类型不支持 Google Play 结算服务 AIDL 版本
|
||||||
|
* int ITEM_UNAVAILABLE = 4; //请求的商品已不再出售。
|
||||||
|
* int DEVELOPER_ERROR = 5; //提供给 API 的参数无效。此错误也可能说明应用未针对结算服务正确签名或设置,或者在其清单中缺少必要的权限。
|
||||||
|
* int ERROR = 6; //API 操作期间出现严重错误
|
||||||
|
* int ITEM_ALREADY_OWNED = 7; //未能购买,因为已经拥有此商品
|
||||||
|
* int ITEM_NOT_OWNED = 8; //未能消费,因为尚未拥有此商品
|
||||||
|
*/
|
||||||
|
private void consumeAsync(ConsumeParams consumeParams, Purchase purchase) {
|
||||||
|
if (!init()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
billingClient.consumeAsync(consumeParams, (billingResult, purchaseToken) -> {
|
||||||
|
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
|
||||||
|
Log.i(TAG, "-----消耗商品成功");
|
||||||
|
} else {
|
||||||
|
Log.i(TAG, "-----消耗商品失败" + billingResult.toString() + "---" + purchaseToken + "--code:" + billingResult.getResponseCode());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onPurchasesUpdated(@NonNull BillingResult billingResult, @Nullable List<Purchase> purchases) {
|
||||||
|
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK
|
||||||
|
&& purchases != null) {
|
||||||
|
//支付成功
|
||||||
|
if (billingListener != null)//消耗掉商品放到外面调用我们服务器成功的时候去消耗 todo 暂时注释掉 这样可以模拟掉单的问题
|
||||||
|
billingListener.onPaySuccess(purchases);
|
||||||
|
/*
|
||||||
|
* 一旦您验证了购买交易,您的应用就可以向用户授予使用权了。若要确认与购买交易相关联的用户账号,
|
||||||
|
* 您可以使用 Purchases.products:get 返回的 ProductPurchase.obfuscatedExternalAccountId(适用于应用内商品的购买交易)
|
||||||
|
* 和 Purchases.subscriptions:get 返回的 SubscriptionPurchase.obfuscatedExternalAccountId(适用于服务器端的订阅),
|
||||||
|
* 或者 Purchase.getAccountIdentifiers() 在客户端返回的 obfuscatedAccountId(如果在交易时已使用 setObfuscatedAccountId 设置该 ID)。
|
||||||
|
* */
|
||||||
|
// purchases.get(0).getAccountIdentifiers()
|
||||||
|
for (Purchase purchase : purchases) {
|
||||||
|
Log.d("mLog", "谷歌支付的回调 " + purchase);
|
||||||
|
}
|
||||||
|
} else if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.USER_CANCELED) {
|
||||||
|
//取消支付了
|
||||||
|
if (billingListener != null)
|
||||||
|
billingListener.onPayFailed(CommonAppContext.sInstance.getString(R.string.pay_cancel));
|
||||||
|
} else {
|
||||||
|
//支付失败
|
||||||
|
if (billingListener != null)
|
||||||
|
billingListener.onPayFailed(CommonAppContext.sInstance.getString(R.string.pay_fail));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 检测GooglePlay服务是否可用(需要导入包api "com.google.android.gms:play-services-location:11.8.0",也可以不检查,跳过这个代码)
|
||||||
|
*/
|
||||||
|
public boolean getGoogleService() {
|
||||||
|
GoogleApiAvailability googleApiAvailability = GoogleApiAvailability.getInstance();
|
||||||
|
if (googleApiAvailability != null) {
|
||||||
|
int resultCode = googleApiAvailability.isGooglePlayServicesAvailable(CommonAppContext.sInstance);
|
||||||
|
return resultCode == ConnectionResult.SUCCESS;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAdId() {
|
||||||
|
try {
|
||||||
|
return AdvertisingIdClient.getAdvertisingIdInfo(CommonAppContext.sInstance).getId();
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
Log.e("GooglePlay", "获取谷歌的id错误了");
|
||||||
|
}
|
||||||
|
return "google_default_id";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setBillingListener(GoogleBillingListener listener) {
|
||||||
|
billingListener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 定义接口返回支付结果
|
||||||
|
*/
|
||||||
|
public interface GoogleBillingListener {
|
||||||
|
void onPaySuccess(List<Purchase> purchases);
|
||||||
|
|
||||||
|
void onPayFailed(String msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class GooglePlayHelper {
|
||||||
|
static GooglePlay googlePlay = new GooglePlay();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static GooglePlay getInstance() {
|
||||||
|
return GooglePlayHelper.googlePlay;
|
||||||
|
}
|
||||||
|
}
|
@ -83,7 +83,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
|||||||
if (mNeedCrop) {
|
if (mNeedCrop) {
|
||||||
Uri uri = null;
|
Uri uri = null;
|
||||||
if (Build.VERSION.SDK_INT >= 24) {
|
if (Build.VERSION.SDK_INT >= 24) {
|
||||||
uri = FileProvider.getUriForFile(mContext, "com.pandora.sy.fileprovider", mCameraResult);
|
uri = FileProvider.getUriForFile(mContext, "com.newpandora.yo.fileprovider", mCameraResult);
|
||||||
} else {
|
} else {
|
||||||
uri = Uri.fromFile(mCameraResult);
|
uri = Uri.fromFile(mCameraResult);
|
||||||
}
|
}
|
||||||
@ -195,7 +195,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
|||||||
mCameraResult = getNewFile();
|
mCameraResult = getNewFile();
|
||||||
Uri uri = null;
|
Uri uri = null;
|
||||||
if (Build.VERSION.SDK_INT >= 24) {
|
if (Build.VERSION.SDK_INT >= 24) {
|
||||||
uri = FileProvider.getUriForFile(mContext, "com.pandora.sy.fileprovider", mCameraResult);
|
uri = FileProvider.getUriForFile(mContext, "com.newpandora.yo.fileprovider", mCameraResult);
|
||||||
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
|
||||||
} else {
|
} else {
|
||||||
uri = Uri.fromFile(mCameraResult);
|
uri = Uri.fromFile(mCameraResult);
|
||||||
@ -255,7 +255,7 @@ public class ProcessImageUtil extends ProcessResultUtil {
|
|||||||
startActivityForResult(intent, mCropResultCallback);
|
startActivityForResult(intent, mCropResultCallback);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
try {
|
try {
|
||||||
Uri resultUri = FileProvider.getUriForFile(mContext, "com.pandora.sy.fileprovider", mCorpResult);
|
Uri resultUri = FileProvider.getUriForFile(mContext, "com.newpandora.yo.fileprovider", mCorpResult);
|
||||||
if (resultUri == null || mFragment == null || mContext == null) {
|
if (resultUri == null || mFragment == null || mContext == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ public class VersionUtil {
|
|||||||
@Override
|
@Override
|
||||||
public void onConfirmClick(Dialog dialog, String content) {
|
public void onConfirmClick(Dialog dialog, String content) {
|
||||||
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
|
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
|
||||||
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.pandora.sy"));
|
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.newpandora.yo"));
|
||||||
context.startActivity(i);
|
context.startActivity(i);
|
||||||
context.finish();
|
context.finish();
|
||||||
}
|
}
|
||||||
@ -85,7 +85,7 @@ public class VersionUtil {
|
|||||||
@Override
|
@Override
|
||||||
public void onConfirmClick(Dialog dialog, String content) {
|
public void onConfirmClick(Dialog dialog, String content) {
|
||||||
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
|
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
|
||||||
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.pandora.sy"));
|
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.newpandora.yo"));
|
||||||
context.startActivity(i);
|
context.startActivity(i);
|
||||||
context.finish();
|
context.finish();
|
||||||
}
|
}
|
||||||
|
@ -128,7 +128,7 @@ public class APKUpdateCustomPopup extends CenterPopupView {
|
|||||||
public void onViewClicks() {
|
public void onViewClicks() {
|
||||||
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
|
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
|
||||||
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
|
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
|
||||||
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.pandora.sy"));
|
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=com.newpandora.yo"));
|
||||||
mContext.startActivity(i);
|
mContext.startActivity(i);
|
||||||
mContext.finish();
|
mContext.finish();
|
||||||
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
||||||
|
@ -651,7 +651,7 @@
|
|||||||
<string name="welcome_pdlive">歡迎來到PDLIVE</string>
|
<string name="welcome_pdlive">歡迎來到PDLIVE</string>
|
||||||
<string name="newcomer">恭喜你獲得了新人獎勵</string>
|
<string name="newcomer">恭喜你獲得了新人獎勵</string>
|
||||||
|
|
||||||
<string name="FILE_PROVIDER">com.pandora.sy.fileprovider</string>
|
<string name="FILE_PROVIDER">com.newpandora.yo.fileprovider</string>
|
||||||
<string name="ren">人</string>
|
<string name="ren">人</string>
|
||||||
<string name="ge">個</string>
|
<string name="ge">個</string>
|
||||||
<string name="count">數量</string>
|
<string name="count">數量</string>
|
||||||
|
@ -4,7 +4,7 @@ ext {
|
|||||||
buildToolsVersion: "29.0.2",
|
buildToolsVersion: "29.0.2",
|
||||||
minSdkVersion : 23,
|
minSdkVersion : 23,
|
||||||
targetSdkVersion : 34,
|
targetSdkVersion : 34,
|
||||||
versionCode : 550,
|
versionCode : 600,
|
||||||
versionName : "6.8.0",
|
versionName : "6.8.0",
|
||||||
namespace : "com.pandoralive.shayu"
|
namespace : "com.pandoralive.shayu"
|
||||||
]
|
]
|
||||||
|
@ -24,6 +24,6 @@ android.nonTransitiveRClass=false
|
|||||||
|
|
||||||
systemProp.http.proxyHost=127.0.0.1
|
systemProp.http.proxyHost=127.0.0.1
|
||||||
systemProp.https.proxyHost=127.0.0.1
|
systemProp.https.proxyHost=127.0.0.1
|
||||||
systemProp.https.proxyPort=9098
|
systemProp.https.proxyPort=10809
|
||||||
systemProp.http.proxyPort=9098
|
systemProp.http.proxyPort=10809
|
||||||
#android.enableR8.fullMode=true
|
android.enableR8.fullMode=true
|
@ -1,63 +0,0 @@
|
|||||||
{
|
|
||||||
"project_info": {
|
|
||||||
"project_number": "867032862719",
|
|
||||||
"project_id": "pdlnew",
|
|
||||||
"storage_bucket": "pdlnew.appspot.com"
|
|
||||||
},
|
|
||||||
"client": [
|
|
||||||
{
|
|
||||||
"client_info": {
|
|
||||||
"mobilesdk_app_id": "1:867032862719:android:841a73fdfb6c37453ae1ca",
|
|
||||||
"android_client_info": {
|
|
||||||
"package_name": "com.pandora.sy"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth_client": [
|
|
||||||
{
|
|
||||||
"client_id": "867032862719-af2dnojobjd8s6ekdr1is1vev8nk36sv.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "com.pandora.sy",
|
|
||||||
"certificate_hash": "38cc19306c9facee36a9224e9a4070bc0be15c7d"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "867032862719-ohaa1f18e186qpasvgt7qkk1i1pivniq.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "com.pandora.sy",
|
|
||||||
"certificate_hash": "b66dc8d21cfcf6c729577ddcf0c312b2a31ed872"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "867032862719-snpbqruvqcc9fsifjnmm1h3dcgtr8am4.apps.googleusercontent.com",
|
|
||||||
"client_type": 1,
|
|
||||||
"android_info": {
|
|
||||||
"package_name": "com.pandora.sy",
|
|
||||||
"certificate_hash": "15fc5e70cf238323bf7111c8c627803985478e87"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"client_id": "867032862719-ep4r92lpjmn7gs9tg0r7q0l75a4gm9mt.apps.googleusercontent.com",
|
|
||||||
"client_type": 3
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"api_key": [
|
|
||||||
{
|
|
||||||
"current_key": "AIzaSyAnlY2aBEGyg7QpghHo7EaMRkM89dVNgq8"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"services": {
|
|
||||||
"appinvite_service": {
|
|
||||||
"other_platform_oauth_client": [
|
|
||||||
{
|
|
||||||
"client_id": "867032862719-ep4r92lpjmn7gs9tg0r7q0l75a4gm9mt.apps.googleusercontent.com",
|
|
||||||
"client_type": 3
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"configuration_version": "1"
|
|
||||||
}
|
|
@ -441,7 +441,7 @@ public class EntryActivity extends AppCompatActivity {
|
|||||||
} else if (loginType == 4) {
|
} else if (loginType == 4) {
|
||||||
try {
|
try {
|
||||||
// App-to-app login
|
// App-to-app login
|
||||||
Intent loginIntent = LineLoginApi.getLoginIntent(findViewById(R.id.btn_line).getContext(), "1656399535", new LineAuthenticationParams.Builder().scopes(Arrays.asList(Scope.PROFILE))
|
Intent loginIntent = LineLoginApi.getLoginIntent(findViewById(R.id.btn_line).getContext(), "2006124380", new LineAuthenticationParams.Builder().scopes(Arrays.asList(Scope.PROFILE))
|
||||||
// .nonce("<a randomly-generated string>") // nonce can be used to improve security
|
// .nonce("<a randomly-generated string>") // nonce can be used to improve security
|
||||||
.build());
|
.build());
|
||||||
startActivityForResult(loginIntent, 1001);
|
startActivityForResult(loginIntent, 1001);
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
package com.yunbao.main.activity;
|
package com.yunbao.main.activity;
|
||||||
|
|
||||||
|
|
||||||
import static com.yunbao.main.activity.MyWalletActivity.dis;
|
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
@ -16,15 +14,17 @@ import android.webkit.WebView;
|
|||||||
|
|
||||||
import androidx.fragment.app.Fragment;
|
import androidx.fragment.app.Fragment;
|
||||||
|
|
||||||
import com.facebook.appevents.AppEventsConstants;
|
import com.android.billingclient.api.Purchase;
|
||||||
import com.yunbao.common.http.CommonHttpUtil;
|
import com.yunbao.common.http.CommonHttpUtil;
|
||||||
import com.yunbao.common.http.HttpCallback;
|
import com.yunbao.common.http.HttpCallback;
|
||||||
import com.yunbao.common.utils.GoogleUtils;
|
import com.yunbao.common.pay.google.GooglePlay;
|
||||||
import com.yunbao.common.utils.StringUtil;
|
import com.yunbao.common.utils.StringUtil;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
import com.yunbao.main.R;
|
import com.yunbao.main.R;
|
||||||
import com.yunbao.main.views.TestWebViewClient;
|
import com.yunbao.main.views.TestWebViewClient;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@SuppressLint("ValidFragment")
|
@SuppressLint("ValidFragment")
|
||||||
public class GoogleFragment extends Fragment {
|
public class GoogleFragment extends Fragment {
|
||||||
|
|
||||||
@ -38,7 +38,7 @@ public class GoogleFragment extends Fragment {
|
|||||||
private String url;
|
private String url;
|
||||||
String adid = null;
|
String adid = null;
|
||||||
|
|
||||||
GoogleUtils googleUtils;
|
private GooglePlay googlePlay;
|
||||||
|
|
||||||
boolean isGoogleService = true;
|
boolean isGoogleService = true;
|
||||||
|
|
||||||
@ -62,17 +62,16 @@ public class GoogleFragment extends Fragment {
|
|||||||
Log.e("ttt", url);
|
Log.e("ttt", url);
|
||||||
rlWebview.loadUrl(url);
|
rlWebview.loadUrl(url);
|
||||||
|
|
||||||
googleUtils = new GoogleUtils(getActivity());
|
googlePlay = GooglePlay.getInstance();
|
||||||
|
|
||||||
// 验证是否已在此设备上安装并启用Google Play服务,以及此设备上安装的旧版本是否为此客户端所需的版本
|
// 验证是否已在此设备上安装并启用Google Play服务,以及此设备上安装的旧版本是否为此客户端所需的版本
|
||||||
if (googleUtils.getGoogleService()) {
|
if (googlePlay.getGoogleService()) {
|
||||||
isGoogleService = true;
|
isGoogleService = true;
|
||||||
// 支持Google服务
|
// 支持Google服务
|
||||||
initGooglePay();
|
|
||||||
new Thread() {
|
new Thread() {
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
adid = googleUtils.getAdid();
|
adid = googlePlay.getAdId();
|
||||||
}
|
}
|
||||||
}.start();
|
}.start();
|
||||||
}
|
}
|
||||||
@ -100,11 +99,6 @@ public class GoogleFragment extends Fragment {
|
|||||||
|
|
||||||
String TAG = "GooglePay";
|
String TAG = "GooglePay";
|
||||||
|
|
||||||
private void initGooglePay() {
|
|
||||||
googleUtils = new GoogleUtils(getActivity());
|
|
||||||
googleUtils.initGooglePay();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Handler payHandler = new Handler();
|
private Handler payHandler = new Handler();
|
||||||
|
|
||||||
//js调用原生
|
//js调用原生
|
||||||
@ -117,51 +111,31 @@ public class GoogleFragment extends Fragment {
|
|||||||
mProductId = ProductId;
|
mProductId = ProductId;
|
||||||
mOrderid = OrderNumber;
|
mOrderid = OrderNumber;
|
||||||
MoneyUsds = MoneyUsd;
|
MoneyUsds = MoneyUsd;
|
||||||
|
googlePlay.setBillingListener(new GooglePlay.GoogleBillingListener() {
|
||||||
googleUtils.setBillingListener(new GoogleUtils.GoogleBillingListener() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onPaySuccess(String token, String orderId) {
|
public void onPaySuccess(List<Purchase> purchases) {
|
||||||
payHandler.post(new Runnable() {
|
Log.i("mLog", "调用谷歌支付成功了 " + purchases.toString());
|
||||||
@Override
|
CommonHttpUtil.notifyGoogle(purchases.get(0).getPurchaseToken(),
|
||||||
public void run() {
|
purchases.get(0).getProducts().get(0), new HttpCallback() {
|
||||||
CommonHttpUtil.notifyGoogle(token, orderId, mProductId, mOrderid, adid, new HttpCallback() {
|
|
||||||
@Override
|
@Override
|
||||||
public void onSuccess(int code, String msg, String[] info) {
|
public void onSuccess(int code, String msg, String[] info) {
|
||||||
if (code == 0) {
|
if (code == 0) {
|
||||||
Bundle params = new Bundle();
|
googlePlay.consume(purchases);
|
||||||
params.putString("currency", "HKD");
|
getActivity().finish();
|
||||||
params.putString("money", MoneyUsds);
|
|
||||||
Bundle fb_params = new Bundle();
|
|
||||||
fb_params.putString(AppEventsConstants.EVENT_PARAM_CURRENCY, "HKD");
|
|
||||||
fb_params.putString(AppEventsConstants.EVENT_PARAM_CONTENT_ID, mProductId);
|
|
||||||
//Google官方充值通知
|
|
||||||
Bundle google_params = new Bundle();
|
|
||||||
google_params.putString("currency", "HKD");
|
|
||||||
google_params.putString("product_id", mProductId);
|
|
||||||
google_params.putString("transaction_id", mOrderid);
|
|
||||||
google_params.putString("value", MoneyUsds);
|
|
||||||
google_params.putString("price", MoneyUsds);
|
|
||||||
google_params.putString("quantity", "1");
|
|
||||||
dis();
|
|
||||||
ToastUtil.show(getString(R.string.pay_suc));
|
ToastUtil.show(getString(R.string.pay_suc));
|
||||||
|
} else {
|
||||||
|
ToastUtil.show(msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPayFailed(String msg) {
|
public void onPayFailed(String msg) {
|
||||||
payHandler.post(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
ToastUtil.show(msg);
|
ToastUtil.show(msg);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
googlePlay.purchase(getActivity(), mOrderid, mProductId);
|
||||||
});
|
|
||||||
googleUtils.purchase(mProductId);
|
|
||||||
}
|
}
|
||||||
lastClickTime = currentTime;
|
lastClickTime = currentTime;
|
||||||
|
|
||||||
|
@ -18,17 +18,18 @@ import androidx.fragment.app.FragmentPagerAdapter;
|
|||||||
import androidx.viewpager.widget.ViewPager;
|
import androidx.viewpager.widget.ViewPager;
|
||||||
|
|
||||||
import com.alibaba.android.arouter.facade.annotation.Route;
|
import com.alibaba.android.arouter.facade.annotation.Route;
|
||||||
import com.yunbao.common.utils.MobclickAgent;
|
|
||||||
import com.yunbao.common.CommonAppConfig;
|
import com.yunbao.common.CommonAppConfig;
|
||||||
import com.yunbao.common.activity.AbsActivity;
|
import com.yunbao.common.activity.AbsActivity;
|
||||||
import com.yunbao.common.fragment.LoadingDialog;
|
import com.yunbao.common.fragment.LoadingDialog;
|
||||||
import com.yunbao.common.http.CommonHttpUtil;
|
import com.yunbao.common.http.CommonHttpUtil;
|
||||||
import com.yunbao.common.http.HttpCallback;
|
import com.yunbao.common.http.HttpCallback;
|
||||||
import com.yunbao.common.manager.IMLoginManager;
|
import com.yunbao.common.manager.IMLoginManager;
|
||||||
|
import com.yunbao.common.pay.google.GooglePlay;
|
||||||
import com.yunbao.common.pay.hw.HwBuilder;
|
import com.yunbao.common.pay.hw.HwBuilder;
|
||||||
import com.yunbao.common.pay.samsung.SamsungUtil;
|
import com.yunbao.common.pay.samsung.SamsungUtil;
|
||||||
import com.yunbao.common.utils.GoogleUtils;
|
import com.yunbao.common.utils.GoogleUtils;
|
||||||
import com.yunbao.common.utils.L;
|
import com.yunbao.common.utils.L;
|
||||||
|
import com.yunbao.common.utils.MobclickAgent;
|
||||||
import com.yunbao.common.utils.RouteUtil;
|
import com.yunbao.common.utils.RouteUtil;
|
||||||
import com.yunbao.common.utils.ToastUtil;
|
import com.yunbao.common.utils.ToastUtil;
|
||||||
import com.yunbao.main.R;
|
import com.yunbao.main.R;
|
||||||
@ -62,7 +63,7 @@ public class MyWalletActivity extends AbsActivity {
|
|||||||
public static String orderId;
|
public static String orderId;
|
||||||
|
|
||||||
HwBuilder hwBuilder;
|
HwBuilder hwBuilder;
|
||||||
GoogleUtils googleUtils;
|
private GooglePlay googlePlay;
|
||||||
|
|
||||||
LoadingDialog loadingDialog;
|
LoadingDialog loadingDialog;
|
||||||
SamsungUtil samsungUtil;
|
SamsungUtil samsungUtil;
|
||||||
@ -78,17 +79,15 @@ public class MyWalletActivity extends AbsActivity {
|
|||||||
mw = MyWalletActivity.this;
|
mw = MyWalletActivity.this;
|
||||||
setTitle(mContext.getString(R.string.wallet));
|
setTitle(mContext.getString(R.string.wallet));
|
||||||
|
|
||||||
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
|
if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
||||||
googleUtils = new GoogleUtils(mContext);
|
|
||||||
googleUtils.initGooglePay();
|
|
||||||
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
|
||||||
hwBuilder = new HwBuilder(MyWalletActivity.this);
|
hwBuilder = new HwBuilder(MyWalletActivity.this);
|
||||||
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) {
|
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) {
|
||||||
samsungUtil = SamsungUtil.newInstance(mContext);
|
samsungUtil = SamsungUtil.newInstance(mContext);
|
||||||
samsungUtil.init();
|
samsungUtil.init();
|
||||||
} else {
|
} else {
|
||||||
googleUtils = new GoogleUtils(mContext);
|
googlePlay = GooglePlay.getInstance();
|
||||||
googleUtils.initGooglePay();
|
//消耗所有商品
|
||||||
|
googlePlay.consumeAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -104,50 +103,8 @@ public class MyWalletActivity extends AbsActivity {
|
|||||||
loadingDialog.setShowText(getString(R.string.order_query));
|
loadingDialog.setShowText(getString(R.string.order_query));
|
||||||
|
|
||||||
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
|
if (CommonAppConfig.IS_GOOGLE_PLAY == 1) {
|
||||||
googleUtils.setQueryPurchaseListener(mContext, new GoogleUtils.QueryPurchasesListener() {
|
//消耗所有商品
|
||||||
@Override
|
googlePlay.consumeAll();
|
||||||
public void onResult(JSONObject obj) {
|
|
||||||
try {
|
|
||||||
int code = obj.getInt("querySize");
|
|
||||||
if (code == 0) {
|
|
||||||
payHandler.post(runnable1);
|
|
||||||
payHandler.postDelayed(runnable2, 1000);
|
|
||||||
} else {
|
|
||||||
JSONArray tokenList = obj.getJSONArray("tokenList");
|
|
||||||
JSONArray orderList = obj.getJSONArray("orderList");
|
|
||||||
String tradeNo = obj.getString("tradeNo");
|
|
||||||
|
|
||||||
for (int i = 0; i < tokenList.length(); i++) {
|
|
||||||
int finalI = i;
|
|
||||||
payHandler.post(new Runnable() {
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
//谷歌掉单处理
|
|
||||||
try {
|
|
||||||
CommonHttpUtil.Google_sec_pay(tokenList.getString(finalI), orderList.getString(finalI), tradeNo, new HttpCallback() {
|
|
||||||
@Override
|
|
||||||
public void onSuccess(int code, String msg, String[] info) {
|
|
||||||
if (finalI == tokenList.length() - 1) {
|
|
||||||
loadingDialog.setShowText(getString(R.string.order_query_success));
|
|
||||||
loadingDialog.dismiss();
|
|
||||||
}
|
|
||||||
ToastUtil.show("充值已到账");
|
|
||||||
finish();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (JSONException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (JSONException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
googleUtils.queryPurchasesAsync();
|
|
||||||
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
||||||
hwBuilder.consume();
|
hwBuilder.consume();
|
||||||
payHandler.post(runnable1);
|
payHandler.post(runnable1);
|
||||||
@ -186,12 +143,12 @@ public class MyWalletActivity extends AbsActivity {
|
|||||||
|
|
||||||
googleFragment1 = new GoogleFragment();
|
googleFragment1 = new GoogleFragment();
|
||||||
Bundle bundle1 = new Bundle();
|
Bundle bundle1 = new Bundle();
|
||||||
bundle1.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=googlepaycoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
bundle1.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=googlepaycoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
||||||
googleFragment1.setArguments(bundle1);
|
googleFragment1.setArguments(bundle1);
|
||||||
|
|
||||||
googleFragment2 = new GoogleFragment();
|
googleFragment2 = new GoogleFragment();
|
||||||
Bundle bundle2 = new Bundle();
|
Bundle bundle2 = new Bundle();
|
||||||
bundle2.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=googlepaygole&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
bundle2.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=googlepaygole&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
||||||
googleFragment2.setArguments(bundle2);
|
googleFragment2.setArguments(bundle2);
|
||||||
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) {
|
||||||
//华为
|
//华为
|
||||||
@ -203,12 +160,12 @@ public class MyWalletActivity extends AbsActivity {
|
|||||||
|
|
||||||
huaWeiFragment1 = new HuaWeiFragment();
|
huaWeiFragment1 = new HuaWeiFragment();
|
||||||
Bundle bundle1 = new Bundle();
|
Bundle bundle1 = new Bundle();
|
||||||
bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd");
|
bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo");
|
||||||
huaWeiFragment1.setArguments(bundle1);
|
huaWeiFragment1.setArguments(bundle1);
|
||||||
|
|
||||||
huaWeiFragment2 = new HuaWeiFragment();
|
huaWeiFragment2 = new HuaWeiFragment();
|
||||||
Bundle bundle2 = new Bundle();
|
Bundle bundle2 = new Bundle();
|
||||||
bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd");
|
bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo");
|
||||||
huaWeiFragment2.setArguments(bundle2);
|
huaWeiFragment2.setArguments(bundle2);
|
||||||
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) {
|
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) {
|
||||||
|
|
||||||
@ -271,12 +228,12 @@ public class MyWalletActivity extends AbsActivity {
|
|||||||
|
|
||||||
huaWeiFragment1 = new HuaWeiFragment();
|
huaWeiFragment1 = new HuaWeiFragment();
|
||||||
Bundle bundle1 = new Bundle();
|
Bundle bundle1 = new Bundle();
|
||||||
bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd");
|
bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo");
|
||||||
huaWeiFragment1.setArguments(bundle1);
|
huaWeiFragment1.setArguments(bundle1);
|
||||||
|
|
||||||
huaWeiFragment2 = new HuaWeiFragment();
|
huaWeiFragment2 = new HuaWeiFragment();
|
||||||
Bundle bundle2 = new Bundle();
|
Bundle bundle2 = new Bundle();
|
||||||
bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd");
|
bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo");
|
||||||
huaWeiFragment2.setArguments(bundle2);
|
huaWeiFragment2.setArguments(bundle2);
|
||||||
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) {
|
} else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) {
|
||||||
rView.setVisibility(View.VISIBLE);
|
rView.setVisibility(View.VISIBLE);
|
||||||
@ -287,12 +244,12 @@ public class MyWalletActivity extends AbsActivity {
|
|||||||
|
|
||||||
samsungFragment1 = new SamsungFragment();
|
samsungFragment1 = new SamsungFragment();
|
||||||
Bundle bundle1 = new Bundle();
|
Bundle bundle1 = new Bundle();
|
||||||
bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/samsungpaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
bundle1.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/samsungpaycoin.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
||||||
samsungFragment1.setArguments(bundle1);
|
samsungFragment1.setArguments(bundle1);
|
||||||
|
|
||||||
samsungFragment2 = new SamsungFragment();
|
samsungFragment2 = new SamsungFragment();
|
||||||
Bundle bundle2 = new Bundle();
|
Bundle bundle2 = new Bundle();
|
||||||
bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/samsungpaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/samsungpaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
||||||
samsungFragment2.setArguments(bundle2);
|
samsungFragment2.setArguments(bundle2);
|
||||||
} else {
|
} else {
|
||||||
Log.i("tss", "不是首充");
|
Log.i("tss", "不是首充");
|
||||||
@ -300,17 +257,17 @@ public class MyWalletActivity extends AbsActivity {
|
|||||||
|
|
||||||
walletFragment = new WalletFragment();
|
walletFragment = new WalletFragment();
|
||||||
Bundle bundle = new Bundle();
|
Bundle bundle = new Bundle();
|
||||||
bundle.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletbean&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
bundle.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletbean&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
||||||
walletFragment.setArguments(bundle);
|
walletFragment.setArguments(bundle);
|
||||||
|
|
||||||
googleFragment1 = new GoogleFragment();
|
googleFragment1 = new GoogleFragment();
|
||||||
Bundle bundle1 = new Bundle();
|
Bundle bundle1 = new Bundle();
|
||||||
bundle1.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletcoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
bundle1.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletcoin&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
||||||
googleFragment1.setArguments(bundle1);
|
googleFragment1.setArguments(bundle1);
|
||||||
|
|
||||||
googleFragment2 = new GoogleFragment();
|
googleFragment2 = new GoogleFragment();
|
||||||
Bundle bundle2 = new Bundle();
|
Bundle bundle2 = new Bundle();
|
||||||
bundle2.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletgold&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
bundle2.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&a=walletgold&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=panduo" + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0"));
|
||||||
googleFragment2.setArguments(bundle2);
|
googleFragment2.setArguments(bundle2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -491,7 +448,7 @@ public class MyWalletActivity extends AbsActivity {
|
|||||||
|
|
||||||
|
|
||||||
} catch (JSONException e) {
|
} catch (JSONException e) {
|
||||||
e.printStackTrace();
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -191,8 +191,7 @@
|
|||||||
android:layout_height="57dp"
|
android:layout_height="57dp"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
android:layout_weight="1"
|
android:layout_weight="1"
|
||||||
android:src="@mipmap/login_line"
|
android:src="@mipmap/login_line" />
|
||||||
android:visibility="visible" />
|
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:layout_width="57dp"
|
android:layout_width="57dp"
|
||||||
|
@ -6,6 +6,6 @@ include ':Share'
|
|||||||
include ':pluginsForAnchor'
|
include ':pluginsForAnchor'
|
||||||
include ':lib_huawei'
|
include ':lib_huawei'
|
||||||
include ':lib_google'
|
include ':lib_google'
|
||||||
//include ':IAP6Helper'
|
include ':IAP6Helper'
|
||||||
include ':lib_faceunity'
|
include ':lib_faceunity'
|
||||||
include ':TabLayout'
|
include ':TabLayout'
|
Loading…
Reference in New Issue
Block a user