2017-09-20 1 views
-1
Bundle ownedItems = mService.getPurchases(3, getPackageName(), "subs", null); 
          int response = ownedItems.getInt("RESPONSE_CODE"); 
          if (response == 0) { 

           ArrayList<String> ownedSkus = 
             ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST"); 
           ArrayList<String> purchaseDataList = 
             ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST"); 
           ArrayList<String> signatureList = 
             ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE_LIST"); 
           String continuationToken = 
             ownedItems.getString("INAPP_CONTINUATION_TOKEN"); 

// 
           if(purchaseDataList.size() == 0){ 
            paid = false; 
            App.paid = false; 
            SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(MainActivity.this).edit(); 
            editor.putString("paid", ""); 
            editor.commit(); 
           } 
           for (int i = 0; i < purchaseDataList.size(); ++i) { 
            String purchaseData = purchaseDataList.get(i); 
            String signature = signatureList.get(i); 
            String sku = ownedSkus.get(i); 
            try { 
             JSONObject jo = new JSONObject(purchaseData); 
             String sku1 = jo.getString("productId"); 
             if (sku1.trim().toLowerCase().equals("paid2")) { 
              paid = true; 
              App.paid = true; 
              SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(MainActivity.this).edit(); 
              editor.putString("paid", "1"); 
              editor.commit(); 

              Handler handler = new Handler(); 
              handler.postDelayed(new Runnable() { 
               @Override 
               public void run() { 
                try { 
                 stopAds(); 
                } catch (Exception e) { 

                } 
               } 
              }, 2000); 
             } 
             else 
             { 
              paid = false; 
              App.paid = false; 
              SharedPreferences.Editor editor = PreferenceManager.getDefaultSharedPreferences(MainActivity.this).edit(); 
              editor.putString("paid", ""); 
              editor.commit(); 
             } 
            } catch (JSONException e) { 
             // alert("Failed to parse purchase data."); 
             e.printStackTrace(); 
            } 

이 아이디어는 월 구독료를 받고 있습니다. 구독 여부에 관계없이 검색하고 싶습니다. 그가 구독하는 경우 sharedpreference를 1로 지불하고, 그렇지 않으면 "".APP APP 월간 구독을 검색하는 방법을 구입하십시오.

이렇게하려면 어떻게해야합니까? 내가 지금 사면, 어떻게 바르게 할 수 있니? 구독을 취소하면 목록에 없거나 더 이상 없습니까?

답변

0

this 설명서는 getBuyIntent()을 사용하여 사용자의 가입 여부를 확인할 수 있습니다.

이는 purchaseState = 0을 산출한다.

사용자가 앱을 실행할 때마다 상태를 감지하기 만하면됩니다. developerPayload에 가입 기간을 수동으로 설정할 수 있습니다. sharedpreferences를 사용하지 않는 것이 좋습니다. 또는 앱을 보호하기 위해 캡션을 사용하여 데이터를 보호하십시오.