diff --git a/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java b/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java index 88f65b4b3..db17a7499 100644 --- a/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java +++ b/common/src/main/java/com/yunbao/common/http/CommonHttpUtil.java @@ -402,6 +402,14 @@ public class CommonHttpUtil { HttpClient.getInstance().get("Charge.Google_sec_pay", "Charge.Google_sec_pay").params("purchaseToken", purchaseToken).params("orderno", orderNo).params("trade_no", tradeNo).params("package_name", "com.pdlive.shayu").execute(callback); } + public static void notifySamsung(String purchaseId, String selfOrderId,HttpCallback callback) { + HttpClient.getInstance().get("Charge.SamsungNotify", "Charge.SamsungNotify") + .params("purchaseID", purchaseId) + .params("SelfOrderId", selfOrderId) + .params("PackageName", "pd") + .execute(callback); + } + //不做任何操作的HttpCallback public static final HttpCallback NO_CALLBACK = new HttpCallback() { @Override diff --git a/common/src/main/java/com/yunbao/common/pay/samsung/SamsungUtil.java b/common/src/main/java/com/yunbao/common/pay/samsung/SamsungUtil.java index f18994593..ccd9c308b 100644 --- a/common/src/main/java/com/yunbao/common/pay/samsung/SamsungUtil.java +++ b/common/src/main/java/com/yunbao/common/pay/samsung/SamsungUtil.java @@ -2,6 +2,7 @@ package com.yunbao.common.pay.samsung; import android.content.Context; +import com.google.gson.Gson; import com.samsung.android.sdk.iap.lib.helper.HelperDefine; import com.samsung.android.sdk.iap.lib.helper.IapHelper; import com.samsung.android.sdk.iap.lib.listener.OnConsumePurchasedItemsListener; @@ -48,14 +49,9 @@ public class SamsungUtil { * * @param skuId */ - public void buy(String skuId) { + public void buy(String skuId, OnPaymentListener onPaymentListener) { //购买 - iapHelper.startPayment(skuId, "", new OnPaymentListener() { - @Override - public void onPayment(ErrorVo _errorVO, PurchaseVo _purchaseVO) { - L.e(_errorVO.getErrorString()); - } - }); + iapHelper.startPayment(skuId, "", onPaymentListener); } /** @@ -68,11 +64,31 @@ public class SamsungUtil { iapHelper.consumePurchasedItems(skuId, new OnConsumePurchasedItemsListener() { @Override public void onConsumePurchasedItems(ErrorVo _errorVO, ArrayList _consumeList) { - + if (_consumeList != null) { + L.e("消耗:" + new Gson().toJson(_consumeList)); + L.e("ErrorVo:" + _errorVO.dump()); + } } }); } + public void consumeAll(ArrayList _ownedList) { + if (_ownedList.size() > 0) { + iapHelper.consumePurchasedItems(_ownedList.get(0).getPurchaseId(), new OnConsumePurchasedItemsListener() { + @Override + public void onConsumePurchasedItems(ErrorVo _errorVO, ArrayList _consumeList1) { + if (_errorVO.getErrorCode() == IapHelper.IAP_ERROR_NONE) { + L.e("消耗:" + new Gson().toJson(_consumeList1)); + L.e("ErrorVo:" + _errorVO.dump()); + _ownedList.remove(0); + consumeAll(_ownedList); + } + } + }); + } + } + + /** * 消耗所有未消耗的消耗品 */ @@ -84,15 +100,8 @@ public class SamsungUtil { if (_errorVo != null) { if (_errorVo.getErrorCode() == IapHelper.IAP_ERROR_NONE) { if (_ownedList != null) { - for (OwnedProductVo item : _ownedList) { - if (item.getIsConsumable()) { - // TODO: 消耗尚未消耗的消耗品 - consume(item.getPurchaseId()); - } - } + consumeAll(_ownedList); } - } else { - // TODO: Handle the error } } } diff --git a/config.gradle b/config.gradle index c50fd5d5f..577929083 100644 --- a/config.gradle +++ b/config.gradle @@ -9,9 +9,9 @@ ext { ] manifestPlaceholders = [ //正式、 - serverHost : "https://napi.yaoulive.com", + //serverHost : "https://napi.yaoulive.com", // 测试 - //serverHost : " https://ceshi.yaoulive.com", + serverHost : " https://ceshi.yaoulive.com", //百度语音识别 diff --git a/main/src/main/java/com/yunbao/main/activity/MyWalletActivity.java b/main/src/main/java/com/yunbao/main/activity/MyWalletActivity.java index 7f6139c55..b0d090b66 100644 --- a/main/src/main/java/com/yunbao/main/activity/MyWalletActivity.java +++ b/main/src/main/java/com/yunbao/main/activity/MyWalletActivity.java @@ -147,8 +147,12 @@ public class MyWalletActivity extends AbsActivity { googleUtils.queryPurchasesAsync(); } else if (CommonAppConfig.IS_GOOGLE_PLAY == 2) { hwBuilder.consume(); - payHandler.postDelayed(runnable1, 1000); + payHandler.post(runnable1); payHandler.postDelayed(runnable2, 1000); + } else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) { + samsungUtil.query(); + payHandler.post(runnable1); + payHandler.postDelayed(runnable2, 2000); } else { payHandler.post(runnable1); payHandler.postDelayed(runnable2, 1000); @@ -213,12 +217,12 @@ public class MyWalletActivity extends AbsActivity { samsungFragment1 = new SamsungFragment(); 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 + "/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")); samsungFragment1.setArguments(bundle1); samsungFragment2 = new SamsungFragment(); 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 + "/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")); samsungFragment2.setArguments(bundle2); } else { walletFragment = new WalletFragment(); @@ -272,6 +276,7 @@ public class MyWalletActivity extends AbsActivity { bundle2.putString("url", CommonAppConfig.HOST + "/themes/simplebootx/appapi/mall/huaweipaygole.html?uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&package_name=pd"); huaWeiFragment2.setArguments(bundle2); } else if (CommonAppConfig.IS_GOOGLE_PLAY == 3) { + rView.setVisibility(View.VISIBLE); walletFragment = new WalletFragment(); Bundle bundle = new Bundle(); bundle.putString("url", CommonAppConfig.HOST + "/index.php?g=Appapi&m=Mall&first_page=1&a=walletbean&uid=" + CommonAppConfig.getInstance().getUid() + "&token=" + CommonAppConfig.getInstance().getToken() + "&isZh=" + ((IMLoginManager.get(mContext).getLocaleLanguage() == Locale.SIMPLIFIED_CHINESE) ? "1" : "0")); @@ -279,12 +284,12 @@ public class MyWalletActivity extends AbsActivity { samsungFragment1 = new SamsungFragment(); 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 + "/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")); samsungFragment1.setArguments(bundle1); samsungFragment2 = new SamsungFragment(); 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 + "/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")); samsungFragment2.setArguments(bundle2); } else { Log.i("tss", "不是首充"); @@ -389,6 +394,11 @@ public class MyWalletActivity extends AbsActivity { hwBuilder.consume(); } } + if (CommonAppConfig.IS_GOOGLE_PLAY == 3) { + if (samsungUtil != null) { + samsungUtil.query(); + } + } } private Runnable runnable1 = new Runnable() { diff --git a/main/src/main/java/com/yunbao/main/activity/SamsungFragment.java b/main/src/main/java/com/yunbao/main/activity/SamsungFragment.java index b0103b2ef..19dd182cb 100644 --- a/main/src/main/java/com/yunbao/main/activity/SamsungFragment.java +++ b/main/src/main/java/com/yunbao/main/activity/SamsungFragment.java @@ -1,6 +1,8 @@ package com.yunbao.main.activity; +import static com.yunbao.main.activity.MyWalletActivity.dis; + import android.annotation.SuppressLint; import android.os.Bundle; import android.os.Handler; @@ -14,8 +16,15 @@ import android.webkit.WebView; import androidx.fragment.app.Fragment; +import com.facebook.appevents.AppEventsConstants; +import com.samsung.android.sdk.iap.lib.listener.OnPaymentListener; +import com.samsung.android.sdk.iap.lib.vo.ErrorVo; +import com.samsung.android.sdk.iap.lib.vo.PurchaseVo; +import com.yunbao.common.http.CommonHttpUtil; +import com.yunbao.common.http.HttpCallback; import com.yunbao.common.pay.samsung.SamsungUtil; import com.yunbao.common.utils.StringUtil; +import com.yunbao.common.utils.ToastUtil; import com.yunbao.main.R; import com.yunbao.main.views.TestWebViewClient; @@ -94,7 +103,35 @@ public class SamsungFragment extends Fragment { mOrderid = OrderNumber; MoneyUsds = MoneyUsd; - SamsungUtil.newInstance(getActivity()).buy(mProductId); + SamsungUtil.newInstance(getActivity()).buy(mProductId, new OnPaymentListener() { + @Override + public void onPayment(ErrorVo _errorVO, PurchaseVo _purchaseVO) { + if (_purchaseVO != null) { + SamsungUtil.newInstance(getActivity()).consume(_purchaseVO.getPurchaseId()); + payHandler.post(new Runnable() { + @Override + public void run() { + CommonHttpUtil.notifySamsung(_purchaseVO.getPurchaseId(), mOrderid, new HttpCallback() { + @Override + public void onSuccess(int code, String msg, String[] info) { + if (code == 0) { + ToastUtil.show("支付成功"); + dis(); + } + } + }); + } + }); + } else { + payHandler.post(new Runnable() { + @Override + public void run() { + ToastUtil.show(_errorVO.getErrorString()); + } + }); + } + } + }); } lastClickTime = currentTime;