سوال در مورد پرداخت درون برنامه ایی(حل نشده)
سلام
دوستان حقیقتش من اولین باره که میخوام واسه برنامم پرداخت درون برنامه بزارم:)
دوستان لطف کردن کدهاشو مختصرو مفید بهم دادند و صفحه پرداخت امادست فقط یه مشکلی هست
اونم اینکه من نمیدونم دقیقا چجوری باید کاربرو بفرستم به صفحه پرداخت
یعنی مثلا من میخوام در برنامم قسمت سرچ رو غیرفعال کنم و کاربر وقتی روش کلیک میکنه بگه برنامه شما کامل نیست و برای استفاده از این قسمت باید به نسخه کامل ارتقا بدیدش و بعدش بره به صفحه پرداخت:)
خوب گیریم طرف پرداخت کرد بعد میخوام از دفعات دیگه این پیغام نمایش داده نشه و خود برنامه تشخیص بده نسخه فول هست و تمامی امکانات رو باز کنه واسش
ببخشید اگه سوالم یکم غیرحرفه اییه ولی کارنکردم با پرداخت درون برنامه و چیزی نمیدونم
اگه بتونید در قالب یک سورس با پرداخت, این موضوع رو به من اموزش بدید خیلی عالی میشه
کدهاشم اینجا بزاریدم کفایت میکنه
اگر این سوال برای بعضی از دوستان مفید واقع شد اون بالا دکمه لایک و ستاره رو بزنید که موضوع مهمی شناخته بشه
تشکر دوستان
دوستان من از صبح دارم با این shareperference ور میرم حقیقتا:)
برنامم امادست پرداختشم امادست فقط نمیتونم کاری کنم که وقتی روی یک گزینه مثلا روی قسمت سرچ کلیک میشه بگه باید بری فول ورژن رو بخری!
این کارو با perferense میخوام انجام بدم که خودش سیو کنه از دفه دیگه بفهمه کاربرمون ویژه است یا عادی
لطفا یه سورس کدی پروژه ایی چیزی بزارید میدونم باید چیکار کنم ولی در مرحله پیاده سازی نمیتونم با کد پیادش کنم
فقط یه سورسی باشه بتونم ازش الگو بگیرم بسه
تشکر
کد قسمت پرداخت درون برنامم:
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.telephony.TelephonyManager;
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;
import com.example.android.trivialdrivesample.util.IabHelper;
import com.example.android.trivialdrivesample.util.IabHelper.OnIabPurchaseFinishedListener;
import com.example.android.trivialdrivesample.util.IabResult;
import com.example.android.trivialdrivesample.util.Inventory;
import com.example.android.trivialdrivesample.util.Purchase;
public class ActivityMain extends Activity {
public static final String RSA = ""; //کلید آر اس ای که از مارکت بازار برای برنامه مان میگیریم
private static final String TAG = "LOG";
private static final String SKU_PREMIUM = ""; // شناسه ی محصول
private boolean mIsPremium = false; // آیا کابر برنامه رو فعاسازی کرده یا نه؟
private IabHelper mHelper;
private String payload; // رشته ی منحصر به فردی که ما اون رو تولید میکنیم و به هنگام خرید به بازار ارسال میکنیم
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main4pay);
///////////////
TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
payload = telephonyManager.getDeviceId();
//////////////
Button btnshow = (Button) findViewById(R.id.btnshow);
final TextView txtshow = (TextView) findViewById(R.id.txtshow);
/////////////
btnshow.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
SharedPreferences preferences_sava_status = getSharedPreferences("sava_status", 0);
if (preferences_sava_status.getBoolean("IS_PREMIUM", false))
txtshow.setText("کاربر ویژه");
else
txtshow.setText("کاربر عادی");
}
});
///////////////
final SharedPreferences preferences_sava_status = getSharedPreferences("sava_status", 0);
IS_PREMIUM = preferences_sava_status.getBoolean("IS_PREMIUM", false);
///////////////
mHelper = new IabHelper(this, RSA);
final IabHelper.QueryInventoryFinishedListener onQueryInventoryFinished = new IabHelper.QueryInventoryFinishedListener() {
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.");
mIsPremium = inventory.hasPurchase(SKU_PREMIUM);
if (mIsPremium)
{
Toast.makeText(ActivityMain.this, "شما کاربر ویژه هستید", 3000).show();
SharedPreferences preferences_sava_status = getSharedPreferences("sava_status", 0);
SharedPreferences.Editor editor_sava_status = preferences_sava_status.edit();
editor_sava_status.putBoolean("IS_PREMIUM", true);
editor_sava_status.commit();
Log.d(TAG, "User is " + (mIsPremium ? "PREMIUM" : "NOT PREMIUM"));
}
else
Toast.makeText(ActivityMain.this, "شما کاربر عادی هستید", 3000).show();
}
Log.d(TAG, "Initial inventory query finished; enabling main UI.");
}
};
//////////////////////////////////
final OnIabPurchaseFinishedListener onIabPurchaseFinished = new 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.
Toast.makeText(ActivityMain.this, "عملیات پرداخت با موفقیت به اتمام رسید", 3000).show();
SharedPreferences preferences_sava_status = getSharedPreferences("sava_status", 0);
SharedPreferences.Editor editor_sava_status = preferences_sava_status.edit();
editor_sava_status.putBoolean("IS_PREMIUM", true);
editor_sava_status.commit();
}
} else {
//Purchase is not valid!
Toast.makeText(ActivityMain.this, "عملیات پرداخت ناموفق بود!!!", 3000).show();
}
}
else {
Toast.makeText(ActivityMain.this, "عملیات پرداخت کنسل شد!!!", 3000).show();
}
if (mHelper != null)
mHelper.flagEndAsync();
}
};
////////////////////////////
Log.d(TAG, "Starting setup.");
try{
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!
mHelper.queryInventoryAsync(onQueryInventoryFinished);
}
});
}
catch (Exception e) {
e.printStackTrace();
}
////////////////////
Button btnkharid = (Button) findViewById(R.id.btnkharid);
btnkharid.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
if ( !(preferences_sava_status.getBoolean("IS_PREMIUM", false))) {
if (isPackageInstalled("com.farsitel.bazaar")) {
final boolean internetCheck = isOnline();
if (internetCheck) {
Toast.makeText(ActivityMain.this, " در حال ارسال اطلاعات... ", 2000).show();
try {
// mHelper.launchPurchaseFlow(ActivityMain.this, SKU_PREMIUM, 0, onIabPurchaseFinished);
mHelper.launchPurchaseFlow(
ActivityMain.this,
SKU_PREMIUM,
0,
onIabPurchaseFinished,
payload
);
}
catch (Exception e) {
e.printStackTrace();
Toast.makeText(ActivityMain.this, "اتصال به مارکت بازار صورت نگرفت لطفا دوباره سعی نمایید", 3000).show();
}
}
else
Toast.makeText(ActivityMain.this, "لطفا اتصال به اینترنت را چک نمایید!", 3000).show();
}
else {
Toast.makeText(ActivityMain.this, "لطفا برنامه کافه بازار را بر روی دستگاه خود نصب نمایید!", 3000).show();
}
}
else {
Toast.makeText(ActivityMain.this, "شما هم اکنون کاربر ویژه هستید", 3000).show();
}
}
});
}
///////////////////////////
@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 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();
if (mHelper != null)
mHelper.dispose();
mHelper = null;
}
/////////////////////////////////////
protected boolean isOnline() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
return true;
} else {
return false;
}
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .