بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
کرش کردن نرم افزار هنگام کار با پرداخت درون برنامه ای
سلام خدمت دوستای گلم
من پرداخت درون برنامه ای بازار رو توی برنامم قرار دادم و تستش کردم همه چیش درست کار می کرد فقط یه مشکل داشت اونم اینکه وقتی یه بار به سرور های بازار متصل میشیم اگر کنسل کنیم و دوباره بخوایم برای خرید به سرور وصل شیم نرم افزار کرش می کنه و از برنامه خارج میشه
ممنون میشم اگه کسی می دونه مشکل چیه جوابم رو بده :)
0
0
متد onDestroy تو اکتیویتی قرار دادی؟؟ (12 سال پیش)
0
0
دقیقا ؛ حامد درست میگه ، پرسس درون پرداخت گوگل - بازار فقط به یک درخواست پاسخ میده (لاگ کرش رو بخون همین رو میگه ) ، برای همین وقتی Destroy - null نشه ، دفعه بعد سعی میکنه بسازه میگه از قبل وجود داره ، کرش ! (12 سال پیش)
0
0
onDestroy رو قرار دادم ولی باز هم کرش می کنه مجبور می شم از اکانت بازارم خارج بشم دوباره وارد بشم تا باز بتونم خرید کنم.بجز onDestroy چیز دیگه ای لازم نیست بنویسیم؟ (12 سال پیش)
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
OmidAhmadian
12 سال پیش
0
0
اینم کله کد های پروژه
کارکردش هم به این صورته که یه textview داره که وضعیت اولش غیرفعاله و یه button
وقتی روی button کلیک میشه به صفحه ی بازار واسه خرید میره .
package ir.colbeh.test.peyment;
import util.IabHelper;
import util.IabResult;
import util.Inventory;
import util.Purchase;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class PeymentActivity extends Activity {
Button btnActivate;
Button btnPeyment;
TextView txtStatus;
static final String TAG = "peyment";
static final String SKU_PREMIUM = "test1";
boolean mIsPremium = false;
static final int RC_REQUEST = 0;
IabHelper mHelper;
String base64EncodedPublicKey = "RSA-Code";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
G.curentActivity = this;
btnActivate = (Button) findViewById(R.id.btnActivate);
btnPeyment = (Button) findViewById(R.id.btnPeyment);
txtStatus = (TextView) findViewById(R.id.txtStatus);
final IabHelper.QueryInventoryFinishedListener mGotInventoryListener = new IabHelper.QueryInventoryFinishedListener() {
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inventory) {
Log.d(TAG, "Query inventory finished.");
if (result.isFailure()) {
Log.d(TAG, "Failed to query inventory: " + result);
return;
}
else {
Log.d(TAG, "Query inventory was successful.");
// does the user have the premium upgrade?
mIsPremium = inventory.hasPurchase(SKU_PREMIUM);
// update UI accordingly
Log.d(TAG, "User is " + (mIsPremium ? "PREMIUM" : "NOT PREMIUM"));
}
Log.d(TAG, "Initial inventory query finished; enabling main UI.");
}
};
final IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
@Override
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
if (result.isFailure()) {
Log.d(TAG, "Error purchasing: " + result);
return;
}
else if (purchase.getSku().equals(SKU_PREMIUM)) {
txtStatus.setText("وضعیت فعال");
Toast.makeText(getApplicationContext(), purchase.getDeveloperPayload(), Toast.LENGTH_LONG).show();
}
}
};
btnPeyment.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mHelper.launchPurchaseFlow(G.curentActivity, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener, "payload-string");
}
});
mHelper = new IabHelper(this, base64EncodedPublicKey);
Log.d(TAG, "Starting setup.");
mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
@Override
public void onIabSetupFinished(IabResult result) {
Log.d(TAG, "Setup finished.");
if ( !result.isSuccess()) {
// Oh noes, there was a problem.
Log.d(TAG, "Problem setting up In-app Billing: " + result);
}
// Hooray, IAB is fully set up!
mHelper.queryInventoryAsync(mGotInventoryListener);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);
// Pass on the activity result to the helper for handling
if ( !mHelper.handleActivityResult(requestCode, resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
} else {
Log.d(TAG, "onActivityResult handled by IABUtil.");
}
}
@Override
public void onDestroy() {
super.onDestroy();
if (mHelper != null)
mHelper.dispose();
mHelper = null;
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .