Skip to content

miladxandi/Cafebazaar.InAppBilling

Repository files navigation

Cafebazaar In-App Billing for .NET MAUI

کتابخانه غیررسمی و ساده برای پیاده‌سازی پرداخت درون‌برنامه‌ای کافه بازار (Cafebazaar) در پروژه‌های .NET MAUI. این کتابخانه مشکل عدم وجود فایل‌های AIDL و پیاده‌سازی‌های پیچیده بایندرها را حل کرده و یک رابط کاربری ساده async/await در اختیار شما قرار می‌دهد.

ویژگی‌ها

  • ✅ اتصال آسان به سرویس پرداخت کافه بازار
  • ✅ خرید محصول (Purchase)
  • ✅ خرید اشتراک (Subscription)
  • ✅ مصرف محصول (Consume) برای محصولات مصرفی (سکه، جم و...)
  • ✅ بدون نیاز به فایل‌های Java یا AIDL خارجی
  • ✅ کاملاً منطبق با .NET 9 , 10+ و MAUI
  • ✅ منطبق با اندروید نسخه 26+

نصب

پکیج را از طریق NuGet به پروژه خود اضافه کنید:

dotnet add package Cafebazaar.InAppBilling

راه‌اندازی (Setup)

۱. تنظیمات AndroidManifest.xml

در فایل Platforms/Android/AndroidManifest.xml مجوزهای زیر را اضافه کنید:

<uses-permission android:name="ir.cafebazaar.pardakht.BILLING"/>
<uses-permission android:name="com.android.vending.BILLING"/>

        <!-- اضافه کردن کوئری برای دیده شدن اپلیکیشن کافه بازار در اندروید 11 به بالا -->
<queries>
<package android:name="ir.cafebazaar.pardakht"/>
</queries>

نحوه استفاده (Usage)

خرید اشتراک در یک ViewModel

using Cafebazaar.InAppBilling;

    private async Task PurchaseViaCafeBazaarAsync(string productId)
    {
        await MainThread.InvokeOnMainThreadAsync(async () =>
        {
            try
            {
                CrossCafebazaarBilling.Initialize(Platform.CurrentActivity,"CAFEBAZAAR_RSA_KEY",new List<string>(){ productId });

                var result = await CrossCafebazaarBilling.Subscription(productId);
                
                if (result.Status)
                {
                    await CafeBazaarService.CheckFirstPurchaseAsync();
                }
                else
                {
                    Console.WriteLine("خطا در خرید");
                }


            }
            catch (Exception ex)
            {
                Console.WriteLine($"خطای درگاه کافه بازار: {ex.Message}");
            }
            finally
            {
                IsLoading = false;
            }
        });
    }

خرید و مصرف محصول در یک ViewModel

using Cafebazaar.InAppBilling;

    private async Task PurchaseViaCafeBazaarAsync(string productId)
    {
        await MainThread.InvokeOnMainThreadAsync(async () =>
        {
            try
            {
                CrossCafebazaarBilling.Initialize(Platform.CurrentActivity,"CAFEBAZAAR_RSA_KEY",new List<string>(){ productId });

                //پرداخت برای خرید و مصرف محصولات دیجیتال (غیر اشتراکی) اعم از یکبار مصرف و چندبار مصرف
                var result = await CrossCafebazaarBilling.Purchase(productId);
                if (result.Status)
                {
                    // بعد از خرید محصولات یکبارمصرف توسط کاربر، به هیچ عنوان این تابع را صدا نزنید
                    var cosumed = await CrossCafebazaarBilling.Consume(result.Product);
                    if (cosumed.Status)
                    {
                        //پرداخت نهایی شده و کاربر آماده دریافت محصول خریداری شده است
                    }
                    else
                    {
                        // در مصرف محصول خریداری شده مشکلی وجود داشت، خرید فعلی را ابطال و مجددا آغاز نمایید. در ضمن مبلغ از حساب کاربر کسر شده است و تنها فرآیند مصرف شکست خورده.
                    }
                }
                else
                {
                    Console.WriteLine("خطا در خرید");
                }

            }
            catch (Exception ex)
            {
                Console.WriteLine($"خطای درگاه کافه بازار: {ex.Message}");
            }
            finally
            {
                IsLoading = false;
            }
        });
    }

نکات مهم

  1. تست روی دستگاه: پرداخت درون‌برنامه‌ای بدون نصب بودن و ورود به نرم افزار کافه بازار کار نمیکند. بهتر است روی گوشی واقعی که اپلیکیشن * کافه بازار* روی آن نصب است و کاربر در آن لاگین کرده، تست کنید.
  2. شناسه محصول: شناسه محصول (Product ID) باید دقیقاً با پنل کافه بازار مطابقت داشته باشد.
  3. نسخه اندروید: این کتابخانه با Android 5.0 (API 21) به بالا سازگار است.

لایسنس

MIT

About

Cafebazaar In-App Billing Library for .NET MAUI

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages