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

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

Pr0gramm3r  12 سال پیش  12 سال پیش
+2 0

سلام

همونطور که میدونید من یه برنامه جدید ساختم

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

بعضی از مشتری ها میخرن ولی برنامه میگه خریداری نشده

اینم کدش

ببینید مشکل از چیه

ممنون میشم کمک کنید

public class Main extends Activity {

    static final String               TAG         = "Premium User Clash Of Clans Map";

    // SKUs for our products: the premium upgrade (non-consumable)
    static final String               SKU_PREMIUM = "pucom";

    // Does the user have the premium upgrade?
    boolean                           mIsPremium  = false;

    // (arbitrary) request code for the purchase flow
    static final int                  RC_REQUEST  = 10001;

    // The helper object
    IabHelper                         mHelper;
    public static AlertDialog.Builder bs;


    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.maic);
        mHelper.queryInventoryAsync(mGotInventoryListener);
        if ( !isConnectingToInternet(this)) {

            alt();
        }
        bs = new AlertDialog.Builder(Main.this);
        String base64EncodedPublicKey = "MIHNMA0GCSqGSIb3DQEBAQUAA4G7ADCBtwKBrwDd9LKgXX1uc5iAVDt1WAobvzl0fGc3uujtZvwEMtewuW8pyqJbx1GYEJxFYYSG7qkI7FqhS2a6RhNFCVdkyw+03CSb2GHiirvpQ60oAwiuqR2NrwGGUA/+LyE06Gp/71uBuZYpQr3gwlRTZIucqOEPLH7N6kLLI+Lj9sgilYGUlNuusG+7btuVA8VWu4NDcpk/HRWr7OEwMD+JeLcl6PjhimDOHldjgTA8v8r1Qy8CAwEAAQ==";
        mHelper = new IabHelper(this, base64EncodedPublicKey);

        Log.d(TAG, "Starting setup.");
        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {

            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!
            }
        });
        ArrayList<String> list = new ArrayList<String>();
        list.add("TownHall 3");
        list.add("TownHall 4");
        list.add("TownHall 5");
        list.add("TownHall 6");
        list.add("TownHall 7");
        list.add("TownHall 8");
        list.add("TownHall 9");
        list.add("TownHall 10");
        ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(
                this, android.R.layout.simple_spinner_item, list);
        dataAdapter
                .setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        final Spinner sp = (Spinner) findViewById(R.id.spinner1);
        sp.setAdapter(dataAdapter);
        findViewById(R.id.Button01).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if (mIsPremium) {
                    Intent i = new Intent(Main.this, ActivityStartup.class);
                    i.putExtra("name", sp.getSelectedItem().toString().replace("TownHall ", ""));
                    startActivity(i);
                } else {
                    alertd();
                }
            }
        });
        findViewById(R.id.button2).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                if (mIsPremium) {
                    Intent i = new Intent(Main.this, ActivityStartup.class);
                    i.putExtra("name2", sp.getSelectedItem().toString().replace("TownHall ", ""));
                    startActivity(i);
                } else {
                    alertd();
                }
            }
        });
        findViewById(R.id.button3).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent i = new Intent(Main.this, ActivityStartup.class);
                i.putExtra("name3", sp.getSelectedItem().toString().replace("TownHall ", ""));
                startActivity(i);
            }
        });
    }

    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);
          Log.i("daaaaaa", "" + mIsPremium);
       Log.d(TAG, "User is " + (mIsPremium ? "PREMIUM" : "NOT PREMIUM"));
               }
           Log.i("daaaaaaf", "" + mIsPremium);
            Log.d(TAG, "Initial inventory query finished; enabling main UI.");
                  }
                };

    static 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)) {
                        res();
                          }
                             }
                               };


    @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;
    }


    void s() {
        mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener, "payload-string");

    }


    public void alertd() {
        AlertDialog.Builder b = new AlertDialog.Builder(Main.this);
        LayoutInflater inf = getLayoutInflater();
        b.setView(inf.inflate(R.layout.ad, null));
        b.create().show();
    }


    public void onOnlineUpgradeAppButtonClicked(View arg0) {
        mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener, "payload-string");
    }


    public static boolean isConnectingToInternet(Context context) {
        ConnectivityManager connectivity = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connectivity != null) {
            NetworkInfo[] info = connectivity.getAllNetworkInfo();
            if (info != null)
                for (int i = 0; i < info.length; i++)
                    if (info[i].getState() == NetworkInfo.State.CONNECTED)
                        return true;
        }
        return false;
    }


    private void alt() {
        AlertDialog.Builder b = new AlertDialog.Builder(Main.this);
        b.setTitle("خطا");
        b.setMessage("لطفا دسترسی خود را به اینترنت وصل نمایید و دوباره برنامه را باز کنید");
        b.setPositiveButton("باشه", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                android.os.Process.killProcess(android.os.Process.myPid());
                System.exit(1);
            }
        });
        b.create().show();

    }


    public static void res() {
        bs.setTitle("ممنون");
        bs.setMessage("ممنون بابت خرید شما , لطفا برنامه را کامل بسته و دوباره باز کنید");
        bs.setPositiveButton("برنامه را ببند", new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface arg0, int arg1) {
                android.os.Process.killProcess(android.os.Process.myPid());
                System.exit(1);
            }
        });
        bs.create().show();
    }

}
0 0
خواهش میکنم کمک کنید (12 سال پیش)
0 0
میلاد جان آموزش دورن برنامه ای من یا حامد رو مطالعه کن (12 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
حامد  12 سال پیش
0 0

این چند تا سوال را جواب بده این قضیه خیلی مهم شده:

1 - ورژن جدید برای برنامه ات تو بازار فرستادی که این مشکل به وجود آمد؟؟

2 - خودت قبل از انتشار برنامه تست نکردی؟

3 - همه این مشکل را دارند یا بعضی از کاربرا بهت پیام دادند؟

0 0
سلام از اول اینطوری بود چرا تست کردم درست بود نه فقط بعضی ها این مشکلو دارند (12 سال پیش)
0 0
حامد مشکوک میزنی ؟! ، چیزی میدونی ؟! :)) (12 سال پیش)
0 0
یه نفر دیگه نو انجمن برنامه نویس به من پیام داد گفت بعضی از کاربرها پرداخت را انجام دادند اما برنامه PREMIUM نمیشه و ارتقا پیدا نمیکنه ... کدش هم از رو پروژه من برداشته بود و من خودم کدش را دیدم مشکلی نداشت (12 سال پیش)
0 0
فکر کنم سیستم پرداخت بازار براش مشکل پیش اومده ... باید بهش اطلاع بدیم ... قبلا اینطوری نبود (12 سال پیش)
0 0
دوستان راهی پیدا کردید برای این مشکل؟ برای یکی از کاربرای من هم این مشکل پیش اومده! (12 سال پیش)
0 0
ای بابا به بازار پیام داده شد (فکر کنم Alu داد) گفت هر موقع پرداخت گوگل مشکلی براش پیش بیاد برای ما هم مشکل پیش میاد (12 سال پیش)
0 0
ماله منم برای 2 از کاربران همین مشکل به وجود آمد .... فکر کنم به خاطر ورژن جدید برنامه بازار باشه .. معلوم نیست چیکار کردند باهاش قبلا همچین مشکلاتی نداشت (12 سال پیش)
0 0
حالا به نظرتون با این کاربرا چکار کنیم؟ یه نسخه اختصاصی بهشون بدیم که با شماره توکن شون فعال بشه؟ (12 سال پیش)
0 0
اینو دیگه نمیدونم (12 سال پیش)
0 0
میتونید ورژن عادی برنامه رو که مثل پریموم هست رو برای این کاربرا ارسال کنید و ازشون هم بابت این مشکل یه عذرخواهی بکنید، هم جلب اعتماد میشه، هم کاربر راضی میشه، هم پول حلاله. من که تاحالا همچین مشکلی برام پیش نیومده. (12 سال پیش)
0 0
بهش پیام دادم تا مشکلو حل کنیم یا در نهایت پولشو پس بدیم، دیگه اصلا جوابی نداد! احتمالا یا با خود بازار صحبت کرده پولشو گرفته یا درست شده. آخه به بازار گفتم گفت بهش بگو با ماصحبت کنه پولشو بدیم (12 سال پیش)
0 0
منم همین مشکل رو داشتم ولی با بررسی انجام شده مشخص شد که در تمامی موارد کاربر پول رو پرداخت میکنه ولی فرآیند پرداخت در بازار به طور کامل انجام نمیشه در نتیجه برنامه ارتقاء پیدا نمیکنه پس میشه اینطور نتیجه گرفت که مشکل از خود بازاره که جدیدا بیشتر شده (12 سال پیش)
0 0
بدبختی اینه که خود بازار هم قبول نمیکنه (12 سال پیش)
0 0
من با بازار صحبت کردم ، میگن (با تن صدای راز بقا !) "سیستم ما بر اساس پرداخت درون برنامه ای گوگل ایجاد شده ، در هر دستگاهی اون کار کنه ، این هم کار میکنه !" این و انونم که معلومه دیگه D: (12 سال پیش)

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