@termitik84

Проблема с подпиской Android In-app billingв приложении?

Проблема заключает в том что после покупки подписки отображается нужная информация, при новом входе не отображается информация а просит снова просит оформить подписку, когда выбираешь снова оплатить выскакивает сообщение что подписка есть уже. Помогите пожалуйста как это исправить???
вот код MainActivity:
package ru.ddr.der;

import android.content.Intent;
import android.net.Uri;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

import com.anjlab.android.iab.v3.BillingProcessor;
import com.anjlab.android.iab.v3.SkuDetails;
import com.anjlab.android.iab.v3.TransactionDetails;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity implements BillingProcessor.IBillingHandler
{

private ImageButton Back,Email, PlayMarket;
private BillingProcessor bp;
private WebView mWebView;
private int getInt;
private String Key = "MIIBIjANBgkqhki......";

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

Back = findViewById(R.id.imageBack);
Email = findViewById(R.id.imageEmail);
PlayMarket = findViewById(R.id.imageStar);

mWebView = findViewById(R.id.mWebView);

mWebView.getSettings().setJavaScriptEnabled(true);

getInt = getIntent().getIntExtra("Full", 0);

if (getInt == 1)
{
mWebView.loadUrl("ddr.ru/free.php");
}else if (getInt == 2)
{
bp = new BillingProcessor(this, Key, this);
bp.initialize();
boolean df = bp.loadOwnedPurchasesFromGoogle();
}else if (getInt == 3)
{
mWebView.loadUrl("ddr.ru/hist.php");
}

mWebView.setWebViewClient(new MyWebViewClinet());

Back.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
Intent intent = new Intent(MainActivity.this, Navigathion.class);
startActivity(intent);
}
});

Email.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"dedrer198@gmail.com"});
try {
startActivity(Intent.createChooser(i, "The message is sent"));
} catch (android.content.ActivityNotFoundException ex) {
Toast.makeText(MainActivity.this, "The message is not sent", Toast.LENGTH_SHORT).show();
}
}
});

PlayMarket.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=ru.d...")));
}
});
}

@Override
public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details)
{
mWebView.loadUrl("ddr.ru/vip.php");
Toast.makeText(getApplicationContext(), "The purchase is made", Toast.LENGTH_SHORT).show();
}

@Override
public void onPurchaseHistoryRestored()
{
int a = 0;
}

@Override
public void onBillingError(int errorCode, @Nullable Throwable error)
{
onBackPressed();
}

@Override
public void onBillingInitialized()
{

if (bp.listOwnedProducts().size() != 0)
{
mWebView.loadUrl("ddr.ru/vip.php");
}
else
{
AlertDialog.Builder mBuilder = new AlertDialog.Builder(MainActivity.this);
View view = getLayoutInflater().inflate(R.layout.alert, null);
RadioButton radioButton2 = view.findViewById(R.id.radioButton2);
RadioButton radioButton3 = view.findViewById(R.id.radioButton3);
final RadioGroup ragioGroup = view.findViewById(R.id.radioGroup);
Button sub = view.findViewById(R.id.Sub);
sub.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view)
{
int id = ragioGroup.getCheckedRadioButtonId();
if (id == -1)
{
Toast.makeText(getApplicationContext(), "Select subscription", Toast.LENGTH_SHORT).show();
}
if (id == R.id.radioButton2)
{
bp.subscribe(MainActivity.this, "nedely");
}else if (id == R.id.radioButton3)
{
bp.subscribe(MainActivity.this, "mesyc");
}
}
});

mBuilder.setView(view);
AlertDialog alertDialog = mBuilder.create();
alertDialog.show();

}
}

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

private class MyWebViewClinet extends WebViewClient
{
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
view.loadUrl(url);
return true;
}
}

@Override
public void onBackPressed()
{
if (mWebView.canGoBack())
{
mWebView.goBack();
}
else
{
super.onBackPressed();
}
}

@Override
public void onDestroy() {
if (bp != null) {
bp.release();
}
super.onDestroy();
}
}
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
рекомендую простыню заменить на

Помогите пожалуйста как это исправить???
?prx=..%2Fbank-notes_coins%2Fbanknote_co
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы