Покупка в приложении в платеже Android успешно, после повторного открытия приложения, он просит снова купить

  import android.content.Intent;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;

    import com.stackdevs.apprenons.util.IabHelper;
    import com.stackdevs.apprenons.util.IabResult;
    import com.stackdevs.apprenons.util.Inventory;
    import com.stackdevs.apprenons.util.Purchase;


    public class Subscription extends AppCompatActivity{
        private static final String TAG = "Apprenons3";
        IabHelper mHelper;
        static final String ITEM_SKU = "onetimepurchase";


        private Button clickButton;
        private Button buyButton;


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.subscription);




            buyButton = (Button)findViewById(R.id.pay);
            clickButton = (Button)findViewById(R.id.enroll);
            clickButton.setEnabled(false);
            String base64EncodedPublicKey =
                    "LICENSE KEY";

            mHelper = new IabHelper(this, base64EncodedPublicKey);

            mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
                    public void onIabSetupFinished(IabResult result) {
                         if (!result.isSuccess()) {
                               Log.d(TAG, "In-app Billing setup failed: " + result);
                                               } 
                         else {
                               Log.d(TAG, "In-app Billing is set up OK");
                                               }
                                           }
                                       });

        }



        @Override
        public void onBackPressed() {
            Intent intent = new Intent(this, MainHome.class);
            startActivity(intent);
            finish();
        }



    //Enroll button after purchasing
        public void buttonClicked (View view)
        {
            Intent intent = new Intent(getApplicationContext(), Welcome.class);
            startActivity(intent);
            finish();
        }


    //pay button
        public void buyClick(View view) {
            mHelper.launchPurchaseFlow(this, ITEM_SKU, 10001,
                    mPurchaseFinishedListener, "mypurchasetoken");
        }

        @Override
        protected void onActivityResult(int requestCode, int resultCode,
                                        Intent data)
        {
            if (!mHelper.handleActivityResult(requestCode,
                    resultCode, data)) {
                super.onActivityResult(requestCode, resultCode, data);
            }
        }

        IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener
                = new IabHelper.OnIabPurchaseFinishedListener() {
            public void onIabPurchaseFinished(IabResult result,
                                              Purchase purchase)
            {
                if (result.isFailure()) {
                    // Handle error
                    return;
                }
                else if (purchase.getSku().equals(ITEM_SKU)) {
                    consumeItem();
                    buyButton.setEnabled(false);
                }

            }
        };
        public void consumeItem() {
            mHelper.queryInventoryAsync(mReceivedInventoryListener);
        }

        IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener
                = new IabHelper.QueryInventoryFinishedListener() {
            public void onQueryInventoryFinished(IabResult result,
                                                 Inventory inventory) {

                if (result.isFailure()) {
                    // Handle failure
                } else {
                    mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU),
                            mConsumeFinishedListener);
                }
            }
        };

        IabHelper.OnConsumeFinishedListener mConsumeFinishedListener =
                new IabHelper.OnConsumeFinishedListener() {
                    public void onConsumeFinished(Purchase purchase,
                                                  IabResult result) {

                        if (result.isSuccess()) {
                            clickButton.setEnabled(true);
                            Toast.makeText(Subscription.this, "Click Enroll Button", Toast.LENGTH_SHORT).show();
                        } else {
                            // handle error
                        }
                    }
                };

        @Override
        public void onDestroy() {
            super.onDestroy();
            if (mHelper != null) mHelper.dispose();
            mHelper = null;
        }


    }

Я реализовал простую покупку в приложении. Все работает нормально, до успешной покупки. После этого, если пользователь закрывает приложение и открывает его заново. Он просит заплатить снова.

После успешной оплаты пользователем. Человек перенаправляет на другой вид деятельности. Но, если пользователь закрывает и снова открывает приложение, он снова просит оплатить и зарегистрироваться.

0 ответов

Другие вопросы по тегам