مروری بر پرداخت‏ درون‌برنامه‏‌ای

این نوشتار اجزای اصلی پرداخت درون‌برنامه‌‏ای و ویژگی‌‌های‌ آن‏ را شرح می‌دهد تا بتوانید پرداخت‌ درون‌برنامه‌ای را به برنامهٔ خود اضافه کنید.

API پرداخت درون‌برنامه‌ای

دسترسی برنامهٔ شما به سرویس پرداخت درون‌برنامه‌ای با استفاده از APIای است که توسط برنامهٔ اندرویدی بازار ارائه می‌‏شود. برنامهٔ بازار درخواست‌‏های پرداخت و پاسخ‌‏های بین برنامهٔ شما و سرور بازار را انتقال می‌‏دهد. در عمل، برنامهٔ شما هیچ‏گاه نیازی به ارتباط مستقیم با سرور بازار ندارد. در عوض، برنامه درخواست پرداخت را در قالب ارتباطات بین پردازشی (Interprocess Communication) به برنامهٔ بازار می‌فرستد و پاسخ‌‏ها را از برنامهٔ بازار دریافت می‌کند. برنامه هیچ اتصال شبکه‌ای را بین خود و سرور بازار مدیریت نمی‎‏کند.

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

درخواست‌های خرید درون‌برنامه‌ای توسط API‌‌ای ساده از برنامهٔ شما به بازار فرستاده می‌شوند. پس از آن مواردی نظیر درخواست جزئیات محصول از بازار، سفارش محصولات درون‌برنامه‌ای و یا محصولاتی که پیش‌تر توسط کاربر خریداری شده‌اند، به سادگی ممکن می‌شود.

پرداخت درون‌برنامه‌ای روی دستگاه‌های دارای سیستم عامل اندروید (نسخهٔ ۲.۲ یا بالاتر که بیش از ۹۰٪ از دستگاه‌های فعال را شامل می‌شود) و آخرین نسخهٔ برنامهٔ بازار، قابل اجرا است.

محصولات درون‌برنامه‌ای

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

پرداخت درون‌برنامه‌ای فقط برای فروش محتوای دیجیتالی است. شما در حال حاضر نمی‌توانید از پرداخت درون‌برنامه‌ای‌ برای فروش محصولات فیزیکی، استفاده کنید.

شما مسئول تحویل محتوای دیجیتالی هستید که در برنامهٔ خود به فروش می‌رسانید. بازار هیچ مسئولیتی در قبال تحویل محتوا به کاربر برنامهٔ شما ندارد. محصولات درون‌برنامه‌ای همیشه قابل فروش تنها در یک برنامه هستند؛ یعنی‌، یک برنامه نمی‌تواند محصول درون‌برنامه‌ای برنامهٔ دیگری را بفروشد، حتی اگر آن محصول متعلق به توسعه‌دهنده‌ای واحد باشد.

پنل پرداخت بازار

پنل پرداخت بازار محلی‌ست که از طریق آن می‌توانید محصولات درون‌برنامه‌ای که برای فروش در نظر دارید را مدیریت کنید.

شما می‌توانید فهرستی از کالاهایی که قصد فروش آن را از درون برنامه‌تان دارید، بسازید. این فهرست شامل محصولاتی‌ست که هر کاربر می‌تواند فقط یک‌بار و یا چندبار بخرد. برای هر یک از محصولات، شما می‌توانید اطلاعاتی‌ مانند شناسهٔ منحصر به فرد (SKU)، قیمت، عنوان و توضیح را تعریف کنید.

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

روند خرید در بازار

روش کار پرداخت درون‌برنامه‌ای کاملاً مشابه خرید برنامه‌های معمول بازار است و از این لحاظ، هیچ تفاوتی بین خرید برنامه و خرید درون‌برنامه‌ای از دیدگاه کاربر وجود ندارد.

برای شروع خرید، برنامهٔ شما درخواستی برای خرید یک محصول درون‌برنامه‌ای می‌فرستد. سپس بازار تمامی روند تراکنش (شامل درخواست، تأیید فرم پرداخت و پردازش تراکنش مالی) را مدیریت می‌کند.

پس از اتمام فرآیند پرداخت نهایی، بازار جزئیات خرید، شامل شمارهٔ سفارش، تاریخ و زمان سفارش و هزینهٔ پرداخت شده را به برنامهٔ شما می‌فرستد. در هیچ شرایطی برنامهٔ شما نیاز به مدیریت تراکنش مالی ندارد، این امر توسط بازار انجام می‌شود.

برنامهٔ نمونه: TrivialDrive

برای کمک به پیاده‌سازی پرداخت درون‌برنامه‌ای در برنامهٔ شما، SDK اندروید، برنامه‌ٔ نمونه‌ای برای نمایش فروش محصولات درون‌برنامه‌ای‌، آماده کرده است.

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

مهم: به شدت توصیه می‌شود که قبل از انتشار برنامه، کد را در برنامهٔ خود بهم‌ریخته (Obfuscate) کنید. برای اطلاعات بیشتر به ملاحظات امنیتی مراجعه کنید.

برنامه‌ی نمونهٔ خرید درون‌برنامه‌ای

شکل ۱. برنامه درخواست پرداخت درون‌برنامه‌ای‌ را توسط واسط کاربری خودش آغاز می‌کند (صفحهٔ اول). بازار با فراهم کردن واسط کاربری پرداخت، به درخواست پاسخ می‌دهد (صفحهٔ وسط). وقتی‌ پرداخت کامل شد، برنامه ادامه پیدا می‌کند.