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

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

دانیال  10 سال پیش  9 سال پیش
+9 0

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

 

 

import android.app.*;
import android.content.*;
import android.graphics.*;
import android.os.*;
import android.util.*;
import android.view.*;
import android.view.View.*;
import android.widget.*;
import com.util.*;
import java.io.*;
import org.apache.http.*;
import org.apache.http.client.*;
import org.apache.http.client.methods.*;
import org.apache.http.impl.client.*;
import com.mycompany.myapp32333.*;
import android.preference.*;
import android.content.pm.*;

public class m extends Activity {

    private ProgressDialog progressDialog;
    public static String order;
    private Dialog dialog;
    public static int g = 0;
    SharedPreferences preferences = null;

    private String PACKAGENAME = "";

    final String KEY = "PERIMIUM";
	private String              payload; // رشته ی منحصر به فردی که ما اون رو تولید میکنیم و به هنگام خرید به بازار ارسال میکنیم

    // Debug tag, for logging
    static final String TAG = "savedPremium";

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

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

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

    // The helper object
    IabHelper mHelper;

    private SharedPreferences shared;
    private SharedPreferences.Editor editor;
    private Typeface typeface;
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
		button = (Button) findViewById(R.id.d);
		//////چک قبلا فعال شدن برنامه
		
		
		
		
		SharedPreferences shared = getSharedPreferences("Prefs", MODE_PRIVATE);
		SharedPreferences.Editor editor = shared.edit();
		boolean premium=shared.getBoolean("eror", false);
		if(premium){
			button.setEnabled(false);
			AlertDialog.Builder alertDialog = new AlertDialog.Builder(
				m.this);




			alertDialog.setMessage("برنامه قبلا فعال شده است نیاز به فعال سازی مجدد نیست ");



			alertDialog.setPositiveButton("ok",
				new DialogInterface.OnClickListener() {
					public void onClick(DialogInterface dialog, int which) {
finish();
					}
				});



			alertDialog.show();		
			
		}else {
			
			button.setEnabled(true);
			
		}
		
		
		
		
				//////////
        button = (Button) findViewById(R.id.d);


        button.setOnClickListener(new OnClickListener() {

				@Override
				public void onClick(View arg0) {
					// TODO Auto-generated method stub
					onSavedUpgradeAppButtonClicked(arg0);
					
				}
			});

        shared = getSharedPreferences("Pref", MODE_PRIVATE);
        editor = shared.edit();
        g = shared.getInt("mon", 0);

        /**************************************************  **************************************************  *******/
        preferences = getSharedPreferences(PACKAGENAME, Context.MODE_PRIVATE);
        PACKAGENAME = getClass().getName();
        Log.e("TAG", PACKAGENAME);
        mIsPremium1 = preferences.getBoolean(KEY, false);
        if (mIsPremium1 == true) {
            updateUi();
            return;
        }

        String base64EncodedPublicKey = "MIHNMA0GCSqGSIb3DQEBAQUAA4G7ADCBtwKBrwDDgKpylwaoSd94tnNN/XDsaIJLoyig/3lNxKa4EcVojNqFBSseXTldmFuAxS/qWxG9qigcmTlwUGLS70nGSvWBfDJdMt/ryRzgDbR+kde7rne97ke8FQoWH7RNwxTDF6ee1YBj1fxrH21/AQAGHEhWXZHxwcx3FNSFA6HAzU/EAgBOQMAFwJa/q0W07kJEhjSgwTwoUOGmGvSJJqs/eIXv74wmG9d1ByYWSGKgZqsCAwEAAQ==";
        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);
					}

				}
			});
        /**************************************************  **************************************************  *******/
    }


    /**************************************************  **************************************************  *******/
    @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.");
        }

    }

    public void onSavedUpgradeAppButtonClicked(View arg0) {
        Log.d(TAG,
			  "Upgrade button clicked; launching purchase flow for upgrade.");
        // setWaitScreen(true);

        String payload = "gdhassdflsldaslfkahsjahsjakaasa";

        mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST,
								   mPurchaseFinishedListener, payload);
    }

    boolean verifyDeveloperPayload(Purchase p) {
        //String payload =p.getDeveloperPayload();
        order=p.getOrderId();

        return true;
    }

    IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
        public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
            if (!result.isFailure()) {

                if (purchase.getOrderId().equals(purchase.getToken())) {
                    if (purchase.getSku().equals(SKU_PREMIUM)
						&& purchase.getDeveloperPayload().equals(payload)) {
						//Purchase successfull.

						{
						}
					} else {
						//Purchase is not valid!

						AlertDialog.Builder alertDialog = new AlertDialog.Builder(
							m.this);


						

						alertDialog.setMessage("عملیات پرداخت با موفقیت به اتمام رسید ");



						alertDialog.setPositiveButton("ok",
							new DialogInterface.OnClickListener() {
								public void onClick(DialogInterface dialog, int which) {
									
									finish();
								}
							});


							
						alertDialog.show();		
						
						SharedPreferences shared = getSharedPreferences("Prefs", MODE_PRIVATE);
						SharedPreferences.Editor editor = shared.edit();
						editor.putBoolean("eror", true);
						editor.apply();
						
						
					}
				}else{
					AlertDialog.Builder alertDialog = new AlertDialog.Builder(
						m.this);




					alertDialog.setMessage("دوست عزیز لطفا حق ثاحب اثر را محفوظ نگه داشته و از هک ان بپرهیزید ");



					alertDialog.setPositiveButton("ok",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog, int which) {

							}
						});



					alertDialog.show();		


                }
				}else{
					
					AlertDialog.Builder alertDialog = new AlertDialog.Builder(
						m.this);




					alertDialog.setMessage("عملیات پرداخت کنسل شد ");



					alertDialog.setPositiveButton("ok",
						new DialogInterface.OnClickListener() {
							public void onClick(DialogInterface dialog, int which) {

							}
						});



					alertDialog.show();		
            }
            if (mHelper != null)
                mHelper.flagEndAsync();

        }
    };

    // Update button with updateUi
    public void updateUi() {

        if (mIsPremium1) {

            AlertDialog.Builder builder=new  AlertDialog.Builder(m.this);
            builder.setTitle("کاربر ويژه");
            builder.setMessage("تبريک ميگم"+"\n"+"دوست عزيز شما به کاربر ويژه ارتقا يافتيد");
            builder.setPositiveButton("خب", new DialogInterface.OnClickListener() {

					@Override
					public void onClick(DialogInterface arg0, int arg1) {
						// TODO Auto-generated method stub
						//	startActivity(new Intent(Pool.this,StartActivity.class));
					}
				});
            builder.show();


            SharedPreferences.Editor newtask = preferences.edit();
            newtask.putBoolean(KEY, true);
            newtask.commit();

        }
    }

    void complain(String message) {
        Log.e(TAG, "**** testbilling Error: " + message);
        alert("Error: " + message);
    }

    void alert(String message) {
        AlertDialog.Builder bld = new AlertDialog.Builder(this);
        bld.setMessage(message);
        bld.setNeutralButton("OK", null);
        Log.d(TAG, "Showing alert dialog: " + message);
        bld.create().show();

    }

    /**************************************************  **************************************************  *******/
	public boolean isPackageInstalled(String PackageName) {
        PackageManager manager = getPackageManager();
        boolean isAppInstalled = false;
        try {
            manager.getPackageInfo(PackageName, PackageManager.GET_ACTIVITIES);
            isAppInstalled = true;
        }
        catch (PackageManager.NameNotFoundException e) {
            e.printStackTrace();
            Log.i("LOG", "بازار نصب نیست");
        }
        return isAppInstalled;
    }
    @Override
    public void onDestroy() {
        super.onDestroy();

        Log.d(TAG, "Destroying helper.");
        if (mHelper != null)
            mHelper.dispose();
        mHelper = null;
    }}

    
0 0
ممنون بابت زحمتی که کشیدی (10 سال پیش)
0 0
شما تونستی استفاده کنی ازش (10 سال پیش)
0 0
دوست عزیز یه توضیح میدی در مورد کد؟چه کدی رو در چه کلاسی بنویسیم (10 سال پیش)
0 0
همین فقط از payload استفاده کردین؟ من این کد رو تست نکردم ولی قبلا با payload هم امتحان کردم میشه هک کرد با لاکی پچر. تنها راهی که من بهش رسیدم استفاده از سرور بود. (10 سال پیش)
0 0
به هیچ وجه هک نمیشه لطفا شما هم تست کن (10 سال پیش)
0 0
ممنون بابت زحمتی که کشیدی حال اگه بخوایم پرداخت درون برنامه ای مستقل از مارکت ها باشه شما چه راهکاری پیشنهاد میدین (10 سال پیش)
0 0
چجوری باید کئ payload را بگیریم؟واسه من همش میگه محصول وجود ندارد!ممنونم (9 سال پیش)
+1 0
درتلگرام پیام بدین کمکتون کنم @dany322 (9 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
دانیال  10 سال پیش
+3 0

دانلود سورس کد برای اندروید استدیو

 

داناود

پاسخ به سوال 
دانیال  10 سال پیش
0 0


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