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

mmz2006

Active Member
با سلام و عرض ادب نسبت به دوستان و اساتید گرامی

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



آموزش کامل تصویری در آپارات با حجم تقریبا 204 مگ
http://www.aparat.com/v/Qadeg

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

پیوست ها

  • InAppBillingCafeBazaarANE.zip
    275.7 کیلوبایت · بازدیدها: 170
آخرین ویرایش:

Fanous

Well-Known Member
سلام و تشکر فراوان
مدت زیادی نبودم ،با دیدن عنوان تاپیک سورپرایز شدم
میخواستم بدونم آیا خودتون با ابن ane برنامه ای با پرداخت درون برنامه نوشتین که الان توی بازار باشه؟
چون فعلا نمی تونم تستش کنم ، میخواستم عملکردش رو ببینم
 

mmz2006

Active Member
سلام و ممنون از لطفتون

فعلا برنامه مناسبی نداشتم که تو بازار بزارم
ولی برای تست همونطور که تو آموزش هست ، می تونید برنامه رو آپلود کنید تو کافه بازار و پرداخت درون برنامه ای رو تست کنید(فقط محض اطلاع بگم ، بعد از بارگذاری برنامه ای که پرداخت درون برنامه داره حتی اگه اونو حذف و بایگانی کنید بازم اسم پکیجش تو لیستتون می مونه و محصولاتی رو هم که براش تعریف می کنید ، همچنین قابل حذف نیست ، فقط میشه غیر فعالش کرد).

بعد از انجام تست باید برنامه نهایی رو در قسمت "بسته ها" بسته جدید ارسال کنید.

ضمنا برنامه ای که می خواین تست کنید نباید (app ID) ش هم نام این فایل سمپلی که من گذاشتم باشه چون (app ID) هر برنامه ، توی کافه بازار ،منحصر به فرد است.
 

Fanous

Well-Known Member
بسیار ممنونم از فیلم آموزشی که قرار دادین
ایشالا بچه های فلش کار نهایت استفاده رو از این آموزش ببرن
امیدوارم همیشه موفق باشین
 

frhd_120

New Member
بسیار عالی واقعا ممنونم . من در اپلیکیشن خودم دارم ازش استفاده می کنم . خوشحالم که بالاخره یه نفر این کارو انجام داد .
 

frhd_120

New Member
فقط یه سوالی دارم چرا موقع init حتی اگه به اینترنت وصل نباشیم initSuccess می گیریم مگه publicKey نباید با بازار چک بشه .
همچنین من publickey خودمو تغییر دادم و بعد اقدام به خرید تستی کردم و متاسفانه خرید انجام شد ولی بعدش که restore گرفتم برنامه exit شد . یعنی یک بار خرید با این روش انجام میشه ولی در خرید های بعدی جلوگیری میشه
 
آخرین ویرایش:

mmz2006

Active Member
فقط یه سوالی دارم چرا موقع init حتی اگه به اینترنت وصل نباشیم initSuccess می گیریم مگه publicKey نباید با بازار چک بشه .
همچنین من publickey خودمو تغییر دادم و بعد اقدام به خرید تستی کردم و متاسفانه خرید انجام شد ولی بعدش که restore گرفتم برنامه exit شد . یعنی یک بار خرید با این روش انجام میشه ولی در خرید های بعدی جلوگیری میشه

init در واقع دو تا کار انجام می ده 1:تست هماهنگی نسخه و 2:پاس دادن (پابلیک کی )و اون پیام بازگشتی رو اگر دقت کنید میگه (InAppBilling supported) که برای ساپورت شدن نسخه هست ولی اون (پابلیک کی) فعلا نگه داشته می شه تا توی ریستور و خرید ازش استفاده بشه.پس فعلا نیازی به اتصال به اینترنت نداره.

اما اگر بعد از دکمه کانکت دکمه ریستور رو بزنید و به اینترنت وصل نباشید بعد از چند لحظه پیام (restore Failed) رو بازگشت می ده.

اما در مورد پابلیک کی :
این کلید RSA،امضایی، متعلق به نرم افزار شماست و اگر امضای اصل استفاده نشه ، پیام بازگشتی موفقیت آمیز نیست ولی در واقع خرید انجام میشود و در تراکنش ها هم ثبت می شود.
اما در ریستور، بدون امضای اصل نمیشه ریستور گرفت و به اطلاعات خرید در مورد اون محصول دست پیدا کرد.

به نظر من، صرف این کلید ، خیلی اهمیت و خطری نداره.
 
آخرین ویرایش:

mmz2006

Active Member
البته در مورد کلید rsa از کافه بازار سوال کردم اونا به من اینطور جواب دادند:


سلام،
توسعه‌دهندهٔ گرامی، این کلید برای چک کردن امضاء به کار می‌رود. در پاسخ هر خرید یک امضاء نیز فرستاده می‌شود که رمزشدهٔ پاسخ اصلی با کلید توسعه‌دهنده است. چک کردن این امضأ باعث جلوگیری از خریدهای جعلی می‌شود.
 

frhd_120

New Member
ممنون از پیگیری هایی که داشتین . الان چند سوال برای من مطرح ممنون می شم اگه کسی پاسخ بده
1. آیا اگر با کد جاوا اقدام به خرید درون برنامه ای کنیم اگر زمانی که به اینتنرنت وصل نیستیم کد init را اجرا کنیم یاز هم جواب مثبت می گیریم؟
2.و باز هم اگر با کد جاوا اقدام به خرید درون برنامه ای کنیم و کد rsa را تغییر دهیم و اقدام به خرید کنیم می شود خرید کرد؟
3.من خیلی سعی کردم ane pozirk رو جوری تغییر دهم که به کافه بازار وصل شه ولی متاسفانه موفق نشدم به طور مثال در فایل IabHelper.java در خط های
Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
serviceIntent.setPackage("com.android.vending");
کد اتصال به بازار را گذاشتم و با دستورات command prompt ویندوز تمام فایل های جاوای داخل پوشه های android و pozirk رو به class. تبدیل کردم و باز هم با دستورات command prompt
فایل jar و سپس ane رو ساختم با این حال موفق نشدم آیا مسیری که رفتم درست بوده؟؟ ممنون میشم اگه راهنمایی حتی مختصر داشته باشید
 

mmz2006

Active Member
ممنون از پیگیری هایی که داشتین . الان چند سوال برای من مطرح ممنون می شم اگه کسی پاسخ بده
1. آیا اگر با کد جاوا اقدام به خرید درون برنامه ای کنیم اگر زمانی که به اینتنرنت وصل نیستیم کد init را اجرا کنیم یاز هم جواب مثبت می گیریم؟
2.و باز هم اگر با کد جاوا اقدام به خرید درون برنامه ای کنیم و کد rsa را تغییر دهیم و اقدام به خرید کنیم می شود خرید کرد؟
3.من خیلی سعی کردم ane pozirk رو جوری تغییر دهم که به کافه بازار وصل شه ولی متاسفانه موفق نشدم به طور مثال در فایل IabHelper.java در خط های
Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
serviceIntent.setPackage("com.android.vending");
کد اتصال به بازار را گذاشتم و با دستورات command prompt ویندوز تمام فایل های جاوای داخل پوشه های android و pozirk رو به class. تبدیل کردم و باز هم با دستورات command prompt
فایل jar و سپس ane رو ساختم با این حال موفق نشدم آیا مسیری که رفتم درست بوده؟؟ ممنون میشم اگه راهنمایی حتی مختصر داشته باشید

سلام

در مورد شماره 1 و 2 باید خدمتتون عرض کنم ، که من این دو مورد رو با کد جاوایی که کافه بازار نمونه گذاشته بود ، درون eclipse تست کردم و کاملا مثل ane خودمون عمل کرد یعنی init نیازی به اینترنت نداشت و بدون کلید RSA اصلی ، میشه خرید کرد.

اما مورد 3 باید بگم این ane pozirk مشکل داره ، حتی اگر شما خود همین ane رو توی پروژه تون ایمپورت کنید نمی تونید به درگاه گوگل منتقل بشید(که این ane برای مارکت گوگل طراحی شده) رفع ایرادات کدها خیلی برای من زمان برد تا جایی که این سمپل رو کنار گذاشتم روی چندین سمپل دیگه کار کردم خیلی وقتا ناامید شدم ولی به خواست خدا ، نهایتا تونستم این ane رو آماده کنم.
 

shaer_bisvad

New Member
یه مشکلی که تو سورس پرداخت درون برنامه ای هست یا بهتره مشکلی که من باهاش داشتم این بود که کدی که داخل اکتویتی درست اجرا می شد ، داخل یه فرگمنت که به View pager متصل هست مکافات داشت یا اجرا نمی شد ، یا موقع اجرا خطا داشت ..
 

samangeraphic

Active Member
سلام
ممنون از این آموزش
من یه چیزو متوجه نشدم
در واقع من برای فروش باید دو نسخه از اپلیکیشنم آپلود کنم؟
یه نسخه همینی که کد rsa و چیزای دیگه رو توش زدم و یه نسخه هم نسخه نهایی و فول ورژن کارو؟
چون تو این آموزش معلوم نشد اول کدومو باید آپلود کنیم و کاربر بعد از خرید چطوری به نسخه نهایی ما دست پیدا میکنه
لطفا اینم توضیح بدید تا دیگه تکمیل بشه
ممنون
 

Fanous

Well-Known Member
سلام
ممنون از این آموزش
من یه چیزو متوجه نشدم
در واقع من برای فروش باید دو نسخه از اپلیکیشنم آپلود کنم؟
یه نسخه همینی که کد rsa و چیزای دیگه رو توش زدم و یه نسخه هم نسخه نهایی و فول ورژن کارو؟
چون تو این آموزش معلوم نشد اول کدومو باید آپلود کنیم و کاربر بعد از خرید چطوری به نسخه نهایی ما دست پیدا میکنه
لطفا اینم توضیح بدید تا دیگه تکمیل بشه
ممنون

سلام
شما می تونین به 2 روش کار رو انجام بدین:

1 - ساخت ورژن تست اپلیکیشن و فقط آپلود آن در بازار ( نیازی نیست دکمه درخواست انتشار رو بزنین ، کافیه فقط در حالت بارگذاری شده بمونه )
دریافت کلید RSA و تعریف آیتمهای درون برنامه ای با قیمت 0
تست برنامه
در صورت موفقیت آمیز بودن تستها ، ساخت ورژن اصلی برنامه با همون id قبل و آپلود آن در بازار با ورژنی بالاتر از نسخه تست و دکمه درخواست انتشار رو بزنین
تغییر قیمت آیتمهای درون برنامه ای از 0 به مبلغ مورد نظرتون

2 - ساخت ورژن تست اپلیکیشن و فقط آپلود آن در بازار ( نیازی نیست دکمه درخواست انتشار رو بزنین ، کافیه فقط در حالت بارگذاری شده بمونه )
دریافت کلید RSA و تعریف آیتمهای درون برنامه ای با قیمت 0
تست برنامه
در صورت موفقیت آمیز بودن تستها ، ساخت ورژن اصلی برنامه با یک id جدید و آپلود آن در بازار و دریافت کلید RSA جدید و تعریف آیتمهای درون برنامه ای با قیمت مورد نظر و دکمه درخواست انتشار رو بزنین
در روش دوم باید کلید جدید رو توی برنامه تون تغییر بدین ، همچنین شناسه کالاها باید کنترل بشن که با قبلی ها یکی هستن یا نه

موفق باشین
 

samangeraphic

Active Member
ممنون از آموزشتون
یه سوال مهم
وقتی یکبار خرید انجام میشه و آیتم مورد نظر باز میشه واسه کاربر چیکار کنیم که توش سیو بمونه و هردفعه نخواد رو دکمه خرید کلیک کنه تا آیتم باز بشه براش
درسته برای دفعه بعدی هزینه ای از کاربر نمیخواد اما ما باید از چه کدی استفاده کنیم که همون اول چک کنه اگه کاربر اون آیتمو به صورت درون برنامه ای خریده واسش باز باشه دیگه از اون به بعد
 

Fanous

Well-Known Member
ممنون از آموزشتون
یه سوال مهم
وقتی یکبار خرید انجام میشه و آیتم مورد نظر باز میشه واسه کاربر چیکار کنیم که توش سیو بمونه و هردفعه نخواد رو دکمه خرید کلیک کنه تا آیتم باز بشه براش
درسته برای دفعه بعدی هزینه ای از کاربر نمیخواد اما ما باید از چه کدی استفاده کنیم که همون اول چک کنه اگه کاربر اون آیتمو به صورت درون برنامه ای خریده واسش باز باشه دیگه از اون به بعد

سلام
پس از اینکه خرید با موفقیت انجام شد ، بوسیله یک sharedObject اونو سیو کنین
بعد توی برنامه قبل از ورود به بخش موردنظر ، چک کنین ببینین که آیا قبلا این متغیر ذخیره شده یا نه ؟
اگر شده یعنی کاربر قبلا خرید رو انجام داده و دیگه نیازی نیست که خرید بکنه و مراحل بعد بهش نمایش داده بشه
 

samangeraphic

Active Member
سلام
پس از اینکه خرید با موفقیت انجام شد ، بوسیله یک sharedObject اونو سیو کنین
بعد توی برنامه قبل از ورود به بخش موردنظر ، چک کنین ببینین که آیا قبلا این متغیر ذخیره شده یا نه ؟
اگر شده یعنی کاربر قبلا خرید رو انجام داده و دیگه نیازی نیست که خرید بکنه و مراحل بعد بهش نمایش داده بشه

سلام
ممنون
با shareobject انجام دادم درست شد
فقط یه مشکل دیگه که بنظرم خیلی مهمه
وقتی اپلیکیشنو روی گوشی نصب میکنم خیلی دیر اجرا میشه برنامه
تقریبا 15 ثانیه صفحه سیاهه
بعدش تازه برنامه میاد بالا
اون فایل نمونه هم که تو اولین پست دوستمون برای نمونه گذاشته همینه
اونم روی گوشی دیر میاد بالا
به نظرتون مشکل از فایل swc یا ane نیست؟؟؟!
 

Fanous

Well-Known Member
سلام
ممنون
با shareobject انجام دادم درست شد
فقط یه مشکل دیگه که بنظرم خیلی مهمه
وقتی اپلیکیشنو روی گوشی نصب میکنم خیلی دیر اجرا میشه برنامه
تقریبا 15 ثانیه صفحه سیاهه
بعدش تازه برنامه میاد بالا
اون فایل نمونه هم که تو اولین پست دوستمون برای نمونه گذاشته همینه
اونم روی گوشی دیر میاد بالا
به نظرتون مشکل از فایل swc یا ane نیست؟؟؟!

سلام
به احتمال 99% فایل شما از طریق debug ایجاد شده
فایل نهایی رو از طریق publish ایجاد کنین
موفق باشین
 

جدیدترین ارسال ها

بالا