رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

جلوگیری از هک شدن برنامه های درون خرید


پست های پیشنهاد شده

سلام دوستان

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

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

راه زیاده !!

میتونی تمامی مقادیر مثله key  و اونچیزایی که داخل برنامه میذاری رو زمانی بسازی که طرف داره کلیک میکنه برای خرید و یا از اینترنت یا هاست دریافت کنی !!

که لوکی پچر نتونه بهمه کلا چی هست !!

من امتحان نکردم اما بدون شک جواب میده !!

موفق باشی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در حد متوسط  -- این هم کدی هست که دارم برای درون خرید استفاده میکنم---اگه میشه یه کد آماده بدید بزام توش دیگه هک نشه---خیلی خیلی خیلی مممنون

package ir.tahaquran.daroha;

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

import org.json.JSONException;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Typeface;
import android.content.SharedPreferences;
import android.content.SharedPreferences.*;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.content.Context;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.util.IabHelper.*;
import com.util.*;

import android.preference.*;



public class BuyPremiumActivity extends Activity {


   protected static final int BUY_REQUEST_CODE = 12345;

   private IabHelper buyHelper;

   private Button butBuy,button1,button2;
public boolean premium;
private Typeface fontt,fonttt;
TextView textView1,textView2;

//	Getting the Price for the In-App SKU
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);

       setContentView(R.layout.buy_premium_activity);



       butBuy = (Button) findViewById(R.id.button_buy);
       //------------------------------------------------------------------------------------------------------------------------------
       button1 = (Button) findViewById(R.id.button1);
       button2 = (Button) findViewById(R.id.button2);

       button1.setOnClickListener(new OnClickListener() {

		@Override
		public void onClick(View arg0) {
			Intent next = new Intent(Intent.ACTION_VIEW,Uri.parse("bazaar://collection?slug=by_author&aid=mo2015"));
		//	Intent next = new Intent(Intent.ACTION_VIEW,Uri.parse("cando://[email protected]"));
		//	Intent next = new Intent(Intent.ACTION_VIEW,Uri.parse("parshub://collection?type=APP&id=9485"));
		//	Intent next = new Intent(Intent.ACTION_VIEW,Uri.parse("http://myket.ir/DeveloperApps.aspx?Packagename=ir.tahaquran.android"));
			 startActivity(next);
		}
	});

       button2.setOnClickListener(new OnClickListener() {

		@Override
		public void onClick(View arg0) {
			Intent item33 = new Intent(Intent.ACTION_EDIT,Uri.parse("bazaar://details?id=ir.tahaquran.daroha"));
		//	Intent item33 = new Intent(Intent.ACTION_VIEW,Uri.parse("cando://leave-review?id=ir.tahaquran.android"));
		//	Intent item33 = new Intent(Intent.ACTION_VIEW,Uri.parse("parshub://comment?q=ir.tahaquran.android"));
			//Intent item33 = new Intent(Intent.ACTION_VIEW,Uri.parse("myket://comment/#Intent;scheme=comment;package=ir.tahaquran.android;end"));
	    startActivity(item33);

		}
	});

       //------------------------------------------------------------------------------------------------------------------------------

//		[...]

	// Initially, disable the "buy me" button
	butBuy.setEnabled(false);


	buyHelper = new IabHelper(this,Billing. PUBLIC_KEY);
	buyHelper.startSetup(new OnIabSetupFinishedListener() {
			@Override
			public void onIabSetupFinished(IabResult result) {
				if(result.isSuccess()) {
					// Fill a list of SKUs that we want the price infos for
					// (SKU = "stockable unit" = buyable things)
					ArrayList moreSkus = new ArrayList();
					moreSkus.add(Billing.SKU_NAME_PREMIUM);

					// We initialize the price field with a "retrieving price" message while we wait 
					// for the price
					final TextView tvPrice = (TextView) findViewById(R.id.price);
					tvPrice.setText("در حال انتظار جهت دریافت قیمت");

				Typeface fonttt =Typeface.createFromAsset(getAssets(), "font/homa.ttf");
					tvPrice.setTypeface(fonttt);

					// Start the query for the details for the SKUs. This runs asynchronously, so
					// it may be that the price appears a bit later after the rest of the Activity is shown.
					buyHelper.queryInventoryAsync(true, moreSkus, new QueryInventoryFinishedListener() {
							@Override
							public void onQueryInventoryFinished(IabResult result, Inventory inv) {
								if(result.isSuccess()) {


									// If we successfully got the price, show it in the text field
									SkuDetails details = inv.getSkuDetails(Billing.SKU_NAME_PREMIUM);
									String price = details.getPrice();

									tvPrice.setText(price);

									// On successful init and price getting, enable the "buy me" button
									butBuy.setEnabled(true);
								} else {
									// Error getting the price... show a sorry text in the price field now
									tvPrice.setText("قیمت دریافت نشد");
									//
									butBuy.setEnabled(true);
									//
								}
							}


						});
				}
			}
		});

//		[...]
//Buying an In-App Item
//		[...]

	butBuy.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				// Disable the button after the click to prevent double clicks
				butBuy.setEnabled(false);

				// Start the purchase flow
				buyHelper.launchPurchaseFlow(BuyPremiumActivity.this,
					Billing.SKU_NAME_PREMIUM, BUY_REQUEST_CODE,
					new OnIabPurchaseFinishedListener() {
						@Override
						public void onIabPurchaseFinished(IabResult result, Purchase info) {
							if (result.isSuccess()) {
								// Successful - the item has been payed for

								// We set a vale in the shared preferences to mark this app as
								SharedPreferences shared = getSharedPreferences("setting", MODE_PRIVATE);
								SharedPreferences.Editor editor = shared.edit();
								editor.putBoolean(Billing.KEY_PREMIUM_VERSION, true);
								editor.apply();


								//
								// The flag "CLEAR_TASK" is important, so the user is not sent
								// back to this buy activity when he presses the back button.
								//
								Toast.makeText(getBaseContext(), "شما با موفقیت به نسخه کامل ارتقا یافتید",Toast.LENGTH_SHORT).show();
								Intent intentz = new Intent(
                                       BuyPremiumActivity.this,
                                       MainActivity.class);
								intentz.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK
												| Intent.FLAG_ACTIVITY_NEW_TASK);


								startActivity(intentz);
							}

						}
					});
			}
		});
	textView1 =(TextView) findViewById(R.id.textView_1);
	textView2 =(TextView) findViewById(R.id.TextView_2);
	fontt =Typeface.createFromAsset(getAssets(), "font/titr.ttf");
	textView1.setTypeface(fontt);
	textView2.setTypeface(fontt);
	textView2.setLineSpacing(MainActivity.space,2);
	butBuy.setTypeface(fonttt);
	button1.setTypeface(fonttt);
	button2.setTypeface(fonttt);


}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
	super.onActivityResult(requestCode, resultCode, data);
	// Delegate the answer from the purchase request to the buying helper - necessary
	// to let it handle the answers from the backend
	buyHelper.handleActivityResult(requestCode, resultCode, data);
}

//Don’t forget to cleanup after 
//ourselves when the BuyActivity ends:

@Override
protected void onDestroy() {
	super.onDestroy();
	buyHelper.dispose();
}



@Override
public void onBackPressed() {
	backButtonHandler();
	return;
}
public void backButtonHandler (){


	AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
		BuyPremiumActivity.this);

	// set title
	alertDialogBuilder.setTitle("خروج");

	// set dialog message
	alertDialogBuilder
		.setMessage("از خرید منصرف شدید؟")
		.setIcon(R.drawable.ic_launcher)
		.setCancelable(false)
		.setPositiveButton("بله",
		new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog,int id) {
				// if this button is clicked, close
				// current activity
				//System.exit(id);
				finish();
			}
		})
		.setNegativeButton("ادامه میدهم",
		new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog,int id) {
				dialog.cancel();
			}
		});

	// create alert dialog
	AlertDialog alertDialog = alertDialogBuilder.create();

	// show it
	alertDialog.show();

}


/*
@Override
public void onBackPressed() {

	Intent ip=new Intent();
	ip.setClass(BuyPremiumActivity.this,page3.class);
	startActivity(ip);
	Toast.makeText(getBaseContext(), "nemayeshe peyghame shoma",Toast.LENGTH_SHORT).show();
	}
*/


}

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...