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

امتیاز 5.00 ( 1 رای )

سلام توسعه دهندگان گرامی در این سری از آموزش برنامه نویسی اندروید به آموزش پرداخت درون برنامه ای کافه بازار می پردازیم برخی از دوستان با پرداخت درون برنامه ای کافه بازار مشکل داشتند به همین منظور در این آموزش نحوه صحیح ارتباط با کافه بازار یا همان پرداخت درون برنامه ای را برای شما قرار می دهیم در ادامه با ما همراه باشید تا نحوه پرداخت درون برنامه ای کافه بازار را یاد گیرید.
 
به قول کافه بازار در 9 مرحله نحوه پیاده سازی کامل پرداخت درون برنامه ای کافه بازار را به شما آموزش میدهیم البته ما در 6 مرحله !
(کلی داستان باید بخونید تا یک اپ رو بفروشید !)
قبل از تمامی مراحل ابتدا شما باید وارد حساب Developer خود در کافه بازار شده سپس یک محصول جدید تعریف کنید.
لیست محصولات مربوط به برنامهٔ خود را می‌توانید با ورود به پنل توسعه‌دهندگی‌تان و سپس انتخاب برنامه‌ٔ مورد نظر، در سربرگ «پرداخت درون‌برنامه‌ای» مشاهده فرمائید.
برای هر محصول اطلاعاتی مانند  شناسه کالا، عنوان، قیمت، توضیحات محصول، نوع (فروشی یا اشتراکی) و وضعیت (فعال یا غیرفعال) وجود دارد.
مراحل زیر را برای اضافه کردن محصولات دنبال کنید !

1- وارد پنل توسعه‌دهندگی خود شوید.

2- برنامه مدنظرتان را انتخاب کنید و وارد سربرگ «پرداخت درون‌برنامه‌ای» شوید.

3- روی دکمه <<محصول جدید>> کلیک کنید و اطلاعات مورد نیاز برای هر محصول را وارد کنید.

حدودا یک همچین چیزی شاید به تازگی تغییر کرده باشد.

یک توضیح کوچک دربالا اطلاعات بالا در ادامه قرار میدهیم نمی خوام زیاد طول بکشه.
شناسهٔ کالا
فکر کنید یک کلمه کلیدی به ازای هر محصول هست باید هربار یک چیز unique قرار دهید.
عنوان فارسی و انگلیسی , توضیحان فارسی و انگلیسی هم به پای خودتان نیاز به توضیح نداره (در کل اطلاعات نمایشی است و به شخصی که می خواهد محصول را خریداری کنید نمایش داده می شود)
وضعیت
فعال / غیر فعال تعیین کننده وضعیت محصول است.

نوع محصول

تعیین پولی یا free بودن محصول است.
در نهایت ذخیره را بزنید.
 
بریم به بخش قول مرحله آخر

مرحله اول

وارد فایل AndroidManifest.xml شده و دسترسی کافه بازار را اضافه کنید.

مرحله دوم

شما باید یکسری کد را از اینجا دانلود کنید (یکسری کلاس کمکی) و در پروژه خودتان قرار در ادامه بخشی از آنها را توضیح میدهیم.
لینک دانلود فایل هایی کمکی 
پوشه را extract کرده و فایل ها را (همراه با پوشه utils ) در بخش جاوا پروژه خود قرار دهید !

کدهای بالا حدودا 5 سال پیش منشتر شده و حتی یکبار در سال های اخیر ویرایش نشده یعنی واقعا جای تاسف داره برای کافه بازار ! کافه بازار می توانست یک کتاب خانه ساده jar درست کنه برای همچین چیزی حداقل کار بودش !

شاید کدهای بالا خطای import داشته باشند هر فایل را باز کرده بخش ابتدای آن را (بخش import ها بالای کد) را ویرایش کنید (حذف کرده و ALT + Enter بزنید)
یک فایل دیگه هم وجود دارد که باید آن را هم قرار دهید ابتدا دانلودش کنید از این لینک
فایلی که دانلود کردید را باید در یک پوشه خاص قرار دهید مراحل زیر را دنبال کنید.
یک پوشه به نام aidl در مسیر src/main/ ایجاد کنید
بروی همان پوشه aidl کلیک راست کنید و new->add package رو بزنید در کادر باز شده com.android.vending.billing را قرار دهید و ok بزنید.
سپس فایل دانلود شده را در آن قرار دهید.
وارد فایل Gradle شده و کد زیر را تنظیم کنید (یکم دقت کنید متوجه می شوید کجا بزارید !)

مرحله سوم

تعریف متغیر های در بالا Oncreate قرار دهید باید در کل پروزه بتوانیم از آنها استفاده کنیم.

تغییری در کد بالا ندهید فقط ما سورس کافه بازار را بخش SKU_PREMIUM را تغییر داده ایم. شما باید شناسه مربوط به محصول خود را در آن قرار دهید بقیش رو تغییر ندهید !

مرحله چهارم

حالا وارد onCreate اکتیوتی خود شده کدهای زیر را به آن اضافه کنید.

در بالا یک کارکتری چیزی در base64EncodedPublicKey قرار دهید فقط برای افزایش امنیت هست.

مرحله پنجم

کدهای داخل پوشهٔ util کارهای مشترک بین برنامه‌هایی که از طریق پرداخت درون‌برنامه‌ای کالا می‌فروشند را انجام می‌دهند. برای زمانی که این کدها چک‌های لازم را انجام داده‌اند و دیگر نوبت اقدامی توسط برنامه‌نویس است، لازم است که listenerهایی بنویسید تا به موقع وارد عمل شوند. در کد زیر listener اول زمانی استفاده می‌شود که بازار فهرست خریدهای مصرف نشدهٔ کاربر را باز می‌گرداند و listener دوم زمانی که یک خرید به اتمام می‌رسد فراخوانی خواهد شد.

در واقع در بالا ابتدا شما باید چک کنید که کاربر آیا قبلا این محصول خریدای شده است یا خیر برای این منظور از Listener به نام QueryInventoryFinishedListener استفاده شده است.
متد OnIabPurchaseFinishedListener برای زمانی که است کاربر عمل پرداخت رو به درستی انجام داده است اگر اشتباه باشد وارد if ولی در غیر اینصورت کاربر به درستی پرداخت رو انجام داده است باید در متد else if هر کاری که می خواید با کاربر بکنید مثلا یک فایل دانلود بشه یا هرچیزی دیگه ای

مرحله ششم

در دکمه هم هنگامی که کابر برای خرید اقدام می کند کد زیر را اجرا کنید.

وقتی کاربر از بازار برگردد، برنامهٔ شما به کمک کد mPurchaseFinishedListener خبردار می‌شود.
 
این آموزش هم به پایان رسید.
موفق و پیروز باشید.

مطالعه بیشتر