پرداخت درونبرنامهای یا In-App Billing که به اختصار به آن IAP نیز میگوییم، یکی از خدمات ارائه شده توسط بازار است که به شما امکان میدهد یک فروشگاه در برنامه خود راهاندازی کنید و در آن محتویات دیجیتال مورد نظرتان را بفروشید. برای مثال، میتوانید از پرداخت درونبرنامهای برای فروش محتویات قابل دانلود مانند فایلهای موسیقی، محتویات مجازی مانند سکه ی داخل بازیها یا بهروزرسانی برخی از بخشهای برنامه که باعث ایجاد تجربه ی بهتری برای کاربر میشود استفاده کنید. از آنجایی که بازار همان روشی که برای خرید برنامههای غیررایگان استفاده میکند را برای پرداختهای درونبرنامهای نیز به کار میبرد، کاربران شما روند پرداخت مشابهی را تجربه میکنند و میتوانند به راحتی خرید خود را انجام دهند.
برای درک بهتر مفاهیم در این دوره ۳ پروژه مختلف پیاده سازی خواهیم کرد. ۲ اپلیکیشن به همراه یک بازی. با پیاده سازی پروژه های زیر با انواع روش های پرداخت درون برنامه ای آشنا خواهید شد.
سرفصل های کامل این دوره :
بخش اول: آشنایی با مفهوم پرداخت درون برنامه ای (in-App billing)
- آشنایی با نحوه ی آموزش و پیاده سازی پروژه ها
- معرفی طرح اشتراکی
- طرح سالانه و ماهانه
- معرفی طرح فروشی
- مصرفی
- غیر مصرفی
- آشنایی با فرآیند خرید درون برنامه ای کافه بازار
- آشنایی با فرآیند مصرف خرید
- آشنایی با قوانین و قیمت گذاری های کافه بازار
بخش دوم: معرفی پروژه هایی که قرار است آموزش داده شوند
- معرفی اجمالی پروژه ی iWallpaper برای آموزش طرح فروشی غیر مصرفی
- معرفی اجمالی پروژه ی iMusic برای آموزش طرح اشتراکی
- معرفی اجمالی بازی WiseKings برای آموزش طرح فروشی مصرفی
بخش سوم: آموزش نحوه ی اضافه کردن محصولات داخل پنل توسعه دهندگان
- دریافت کلید RSA
- اضافه کردن محصولات در پنل توسعه دهندگان
بخش چهارم: آموزش اضافه کردن کتابخانه پرداخت درون برنامه ای
- اضافه کردن کتابخانه ی پرداخت درون برنامه ای
- اضافه کردن مجوز های مورد نیاز
- برقرار ارتباط با بازار
بخش پنجم: شروع پیاده سازی اپلیکیشن iWallpaper
- پیاده سازی رابط کاربری
- اضافه کردن محصول غیر مصرفی داخل پنل توسعه دهندگان
- چک کردن خرید محصول از بازار
- خرید محصول از بازار
- اضافه شدن قابلیت دانلود عکس ها بعد از خرید طرح Premium
بخش ششم: پیاده سازی اپلیکیشن iMusic
- پیاده سازی رابط کاربری
- معرفی سرویس اشتراکی کافه بازار
- اضافه کردن محصول اشتراکی داخل پنل توسعه دهندگان
- چک کردن خرید اشتراک کاربر
- نمایش صفحه خرید اشتراک به کاربر
- خرید اشتراک از کافه بازار
- نمایش لیست موزیک ها بعد از خرید اشتراک توسط کاربر
بخش هفتم: پیاده سازی بازی WiseKings
- پیاده سازی رابط کاربری
- پیاده سازی بازی
- نمایش تعداد سکه به کاربر بعد از دریافت اطلاعات از کافه بازار
- کم شدن سکه در ازای نمایش پاسخ صحیح
- خرید سکه از کافه بازار و آپدیت تعداد سکه ها
بخش هشتم: امنیت
- آموزش به هم ریخته کردن ( Obfuscate ) کدها هنگام انتشار اپ
- جلوگیری از دسترسی هکرها به کلید عمومی اپ
- نکته های مفید برای تامین امنیت بیشتر
سلام مهندس . خدا قوت. یک سوال داشتم که مربوط به این دوره نمشه.از من یک اپ اندرویدی خواستن بنویسم.
یک چیزی شبیه اسنپ و اسمپ.که موقیعت راننده رو به مسافر ها نشون بده.حالا نمیدونم موقیعیت راننده رو تو سرور خودم دخیره کنم و روی گوگل مپ به مسافر نشون بدم یا روی فایر بیس دخیره و به کاربر نشون بدم.
سلام وقت بخیر، هم مسافر و هم راننده باید با سوکت به سرور متصل باشند و هر ثانیه موقعیت راننده رو به سرور بفرستید و سرور اون رو به کلاینت مستقیم منتقل کنه بدون اینکه نیازی به ذخیره کردن موقعیت راننده باشه
سلام مجدد خدمت استاد محترم.
سوال اول: در نرم افزار iMusic که پرداخت آن بصورت اشتراکی است، آیا میشه از سمت سرور کافه بازار تعداد روزهای باقی مانده از اشتراک را دریافت کرد؟؟ (اگر میشه لطفا توضیح بدید به چه صورت)
سوال دوم: پس از خرید اشتراک از نرم افزار iMusic، فرضا 17روز مانده به اتمام اشتراک ماهیانه، آیا کاربر میتونه قبل از اینکه اشتراکش به اتمام برسه، اشتراک جدیدی خریداری کنه؟؟ (یعنی فرضا 17روز اشتراک داره و یک ماه دیگه بخره و بشه 47روز)
سوال سوم: دقیقا سوال دوم منتها در مورد خرید های مصرفی. (یعنی فرضا کاربر 50 سکه داره و 50سکه دیگه بخره و بشه 100 سکه، آیا اینچنین حالتی امکان داره و یا نه، کاربر حتما باید تمام سکه هاشو مصرف کنه سپس خرید سکه انجام بده؟)
سلام، با توجه به تغییرات داخل مستندات کافه بازار، بهتره از سایت خودشون استفاده کنید که کامل توضیح دادن:
https://cafebazaar.ir/developers/docs/iab/implementation/?l=fa
سلام مجدد خدمت استاد محترم.
میشه RSA_KEY رو سمت سرور ذخیره کرد و سپس در ابتدای نرم افزار با یه Request از سمت سرور دریافتش کرد.
با سلام خدمت استاد محترم جناب آقای شاهینی.
پیرو سوال قبلیم جهت مبهم کردن RSA_KEY، میشه RSA_KEY رو سمت سرور ذخیره کرد و در ابتدای ورود به نرم افزار با یه Request اون رو از سمت سرور گرفت؟؟
اگه زحمتی نیست ایمیلتونو بزارید. ممکنه سوال ها همراه با Attach فایل باشه.
با تشکر.
سلام، بله معلومه که می شه ولی خب کسی اگه end point اون رو پیدا کنه RSA رو راحت بدست میاره، متاسفانه فقط سوالات دیگه در سایت جواب داده می شه
با سلام خدمت استاد محترم جناب آقای شاهینی.
بنده دوره آموزش را خریداری کردم که بسیار عالی و کامل و پربار بود.
فقط 2 تا سوال داشتم:
1. چجوری میشه چک کرد که QueryInventory در حال inProgress نباشه. (گاهی وقت ها با کلیک بر روی گزینه UPGRADE ناگهان اپ کرش میکنه و خطای is in progress میده)
2. در ابتدای ساخت نرم افزار iWallpaper فرمودید که مبهم سازی کدها شامل رشته ها نمیشه و در بخش امنیت قرار شد نحوه ی امن کردن RSA_KEY رو بگید. اما در جلسه آخر که بحث امنیت بود در این مورد اشاره ای نکردید.
ایمیل بنده جهت ارتباط: karafzar.apps@gmail.com
سلام، وقت شما بخیر، مورد دوم سوال شما رو آموزش دادم در یک مقاله اما متاسفانه سایتم رو وقت نکردم ادامه اش بدم و بستمش اما پروژه اش رو داخل گیت هابم دارم به این آدرس:
https://github.com/saeedsh92/XorStringSample
مورد اول هم داخل Documentation خود کافه بازار این ارور رو جستجو کنید.
ممنون مشکلم حل شد. توضیحاتتون خیلی خوبه در ویدیوهای آموزشی.
سلام آفای شاهینی خدا قوت.لطفا در این دوره درباره این موضوع هم یک آموزش بدهید با تشکر.
نحوهٔ بررسی وضعیت لاگین کاربر در ادامه آورده شده است. با استفاده از این امکان بازار میتوانید بفهمید که کاربر وارد حساب کاربریاش در بازار شده است یا خیر.
http://developers.cafebazaar.ir/fa/docs/bazaar-services-login-check/
سلام وقت بخیر، خیلی ممنونم، متاسفانه در حال حاضر خیلی مطالب دیگه هستن که مهم ترن و در اولویت هستن از طرف دیگه کافه بازار خودش خوب آموزش داده و خودتون راحت می تونید یاد بگیرید.
سلام من مطابق اموزش های شما رفتم منتها کافه بازار وقتی روی دکمه primium میزنم تایید نمیکنه که خریداری شده چرا؟
حل شد
با سلام
شما در ویدیو 10 گفته اید که اگر ذخیره تعداد سکه ها در سمت سرور ناموفق بود . سکه ها را در مخزنی ذخیره کنیم تا سری بعدی بتوانیم استفاده کنیم . اما به این مورد اشاره نکردید که چطور ذخیره کنیم !
اگر با shared preferences یا هر چیز دیگر ذخیره کنیم ، هکرها می توانند با دسترسی به این مخرن ، تعداد نامحدودی سکه درون مخزن بگذارند 😡 ، و ما این سکه ها را به سمت سرور بفرستیم و با سرور هم دچار مشکل شود ! 😥
چه راه حلی برای این مشکل دارید ؟
سلام. یه راه حلی که می شه ازش استفاده کرد اینه که قبل از اینکه اطلاعات خریدهای انجام شده را به سمت سرور بفرستیم، اونا رو با کافه بازار چک کنیم و ببینیم که موفق هستند یا خیر. برای پیاده سازی این روش شما باید از sqlite استفاده کنید و جدولی داشته باشید که اطلاعات خرید کاربر رو کامل داشته باشه . هر زمان که اطلاعات خرید سمت سرور ارسال شد و موفقیت آمیز ثبت شد، اون رو از جدول sqlite حذف می کنید. در واقع دیتابیس شما سمت اپلیکیشن فقط باید شامل خرید هایی باشد که سمت سرور ثبت نشده اند. اصطلاحا در حالت Pending هستند. بنابراین وقتی سمت سرور ثبت شدند باید از دیتابیس حذف شوند.
با سلام
اندروید غیر از این دو دوره ، دوره ی دیگری هم قرار برگزار بشه؟؟؟
سلام انشالله و به احتمال زیاد در تابستون و تیر ماه دوره برنامه آندروید وب سایت های وردپرسی رو خواهیم داشت.
سلام٬ این دوره به پایان رسیده. فقط قرار هست داخل توضیحات٬ مقاله آموزش xor کردن رشته ها اضافه بشه(برای امن کردن RSA).
سلام٬ رشته ها بعد از Obfuscate کردن بهم ریخته نمی شوند. بلکه با روش هایی مثل xor کردن یا چند قسمتی کردن اونها می شه خوانایی شون رو سخت تر کرد. باشه چشم. داخل توضیحات همین جلسه آموزشش رو می گذارم.