×

Welcome to TagMyCode

Please login or create account to add a snippet.
0
0
 
0
Language: Text
Posted by: ehsan ullah khan
Added: Jan 11, 2017 1:24 PM
Views: 4
Tags: inapp purchase
item ownd
  1. public class MainActivity extends Activity
  2. {
  3.     IabHelper mHelper;
  4.     IInAppBillingService mService;
  5.     static final String ITEM_SKU = "android.test.purchased";
  6.     private Button buyButton;
  7.     AdView adView;
  8.  
  9.     @Override
  10.     protected void onCreate(Bundle savedInstanceState)
  11.     {
  12.         super.onCreate(savedInstanceState);
  13.         setContentView(R.layout.activity_main);
  14.  
  15.         adView = (AdView)this.findViewById(R.id.adView);
  16.         AdRequest adRequest = new AdRequest.Builder().build();
  17.         adView.loadAd(adRequest);
  18.  
  19.         buyButton = (Button)findViewById(R.id.buyButton);
  20.  
  21.         bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), mServiceConn, Context.BIND_AUTO_CREATE);      
  22.     }
  23.  
  24.     @Override
  25.     public boolean onCreateOptionsMenu(Menu menu)
  26.     {
  27.         getMenuInflater().inflate(R.menu.main, menu);
  28.         return true;
  29.     }
  30.  
  31.     ServiceConnection mServiceConn = new ServiceConnection()
  32.     {
  33.         @Override
  34.         public void onServiceConnected(ComponentName name, IBinder service)
  35.         {
  36.             mService = IInAppBillingService.Stub.asInterface(service);
  37.             Log.d("TEST", "mService ready to go!");
  38.             checkOwnedItems();    
  39.         }
  40.  
  41.         @Override
  42.         public void onServiceDisconnected(ComponentName name)
  43.         {
  44.             mService = null;            
  45.         }
  46.     };
  47.  
  48.     private void checkownedItems()
  49.     {
  50.         try
  51.         {
  52.             Bundle ownedItems = mService.getPurchases(3, getPackageName(), "inapp", null);
  53.  
  54.             if(ownedItems.getInt("RESPONSE_CODE") == 0)
  55.             {
  56.                 ArrayList<String> ownedSkus = ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
  57.                 ArrayList<String> purchaseDataList = ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
  58.                 ArrayList<String> signatureList = ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE");
  59.                 String continuationToken = ownedItems.getString("INAPP_CONTINUATION_TOKEN");
  60.  
  61.                 if(purchaseDataList.size() > 0)
  62.                 {
  63.                     //Item(s) owned
  64.  
  65.                     for(int i=0; i<purchaseDataList.size(); ++i)
  66.                     {
  67.                         String purchaseData = purchaseDataList.get(i);
  68.                         String signature = signatureList.get(i); //Note signatures do not appear to work with android.test.purchased (silly google)
  69.                         String sku = ownedSkus.get(i);
  70.                     }
  71.                 }
  72.                 else
  73.                 {
  74.                     //Item(s) not owned
  75.  
  76.                     String base64EncodedPublicKey = "public_key";
  77.  
  78.                     mHelper = new IabHelper(this, base64EncodedPublicKey);
  79.  
  80.                     mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener()
  81.                     {
  82.                         @Override
  83.                         public void onIabSetupFinished(IabResult result)
  84.                         {
  85.                             if(!result.isSuccess())
  86.                             {
  87.                                 Log.d("TEST", "In-app Billing setup failed: " + result);
  88.                             }
  89.                             else
  90.                             {
  91.                                 Log.d("TEST", "In-app Billing is set up OK");
  92.                             }
  93.                         }
  94.                     });
  95.                 }
  96.             }
  97.             else
  98.             {
  99.                 //Error checking owned items
  100.             }
  101.         }
  102.         catch(RemoteException e)
  103.         {
  104.             e.printStackTrace();
  105.         }
  106.     }
  107.  
  108.     @Override
  109.     public void onDestroy()
  110.     {
  111.         super.onDestroy();
  112.  
  113.         if(mServiceConn != null)
  114.         {
  115.             unbindService(mServiceConn);
  116.         }
  117.     }
  118. }