آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

کرش کردن نرم افزار هنگام کار با پرداخت درون برنامه ای

OmidAhmadian  12 سال پیش  12 سال پیش
0 0

سلام خدمت دوستای گلم
من پرداخت درون برنامه ای بازار رو توی برنامم قرار دادم  و تستش کردم همه چیش درست کار می کرد فقط یه مشکل داشت اونم اینکه وقتی  یه بار به سرور های بازار متصل میشیم اگر کنسل کنیم و دوباره بخوایم برای خرید به سرور وصل شیم نرم افزار کرش می کنه و از برنامه خارج میشه 
ممنون میشم اگه کسی می دونه مشکل چیه جوابم رو بده :)

0 0
متد onDestroy تو اکتیویتی قرار دادی؟؟ (12 سال پیش)
0 0
دقیقا ؛ حامد درست میگه ، پرسس درون پرداخت گوگل - بازار فقط به یک درخواست پاسخ میده (لاگ کرش رو بخون همین رو میگه ) ، برای همین وقتی Destroy - null نشه ، دفعه بعد سعی میکنه بسازه میگه از قبل وجود داره ، کرش ! (12 سال پیش)
0 0
onDestroy رو قرار دادم ولی باز هم کرش می کنه مجبور می شم از اکانت بازارم خارج بشم دوباره وارد بشم تا باز بتونم خرید کنم.بجز onDestroy چیز دیگه ای لازم نیست بنویسیم؟ (12 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
حامد  12 سال پیش
0 0

پروژه منو امتحان کن ببین همین مشکل را داره : 

پروژه آموزشی پرداخت درون برنامه ای

0 0
اتفاقا وقتی دیدم این مشکل رو دارم اولین کاری که کردم این بود که پروژه ای که توی github گذاشتی رو یه نگاه کردم ولی چیزه خاصی به ذهنم نرسید فقط یه قسمت هست که payload string می خواد نمی دونم چیه؟ (12 سال پیش)
0 0
یه رشته string که برای امنیت بیشتر همین چیزا .... خود بازار هم نمیدونه چیه (12 سال پیش)
0 0
پس پروژه من کرش نمیشه ولی برای شما کرش میشه؟ کد هاتو میتونی برازی یه نگاهی بندازیم (12 سال پیش)
0 0
کد هارو گذاشتم اگه زحمتی نیست یه نگاه بنداز ببین مشکلش رو متوجه میشی ؟ ممنون از توجهت :) (12 سال پیش)
0 0
من واسه preload ایمیل زدم ، خودشونم نمیدونن ! ، گفتن "از اسناد گوگل استفاده کنید ، پرداخت درون برنامه ای بازار بر اساس گوگل پلی نوشته شده" من :/ دیوار :| همسایه بغلی مون :) (12 سال پیش)
0 0
عجب !!!!! حالا خوبه به گوگلم ایمیل بدیم اونم بگه نمی دونم از اول توش بوده ما هم تغییرش ندادیم :) (12 سال پیش)
0 0
خیلی از مواردش اینجوری بود ! ، اصلا خیلی از مواردش تو بازار پیاده نشده ، ولی اگه پست نکنی ، کرش میکنه ! ، کلا خیلی مسخرست ، باید یه سر به درون پرداخت مایکت هم بزنم ! (12 سال پیش)
پاسخ به سوال 
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;
    }

}

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .