کتابخانه غیررسمی و ساده برای پیادهسازی پرداخت درونبرنامهای کافه بازار (Cafebazaar) در پروژههای .NET MAUI.
این کتابخانه مشکل عدم وجود فایلهای AIDL و پیادهسازیهای پیچیده بایندرها را حل کرده و یک رابط کاربری ساده async/await
در اختیار شما قرار میدهد.
- ✅ اتصال آسان به سرویس پرداخت کافه بازار
- ✅ خرید محصول (Purchase)
- ✅ خرید اشتراک (Subscription)
- ✅ مصرف محصول (Consume) برای محصولات مصرفی (سکه، جم و...)
- ✅ بدون نیاز به فایلهای Java یا AIDL خارجی
- ✅ کاملاً منطبق با .NET 9 , 10+ و MAUI
- ✅ منطبق با اندروید نسخه 26+
پکیج را از طریق NuGet به پروژه خود اضافه کنید:
dotnet add package Cafebazaar.InAppBillingدر فایل 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>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;
}
});
}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;
}
});
}- تست روی دستگاه: پرداخت درونبرنامهای بدون نصب بودن و ورود به نرم افزار کافه بازار کار نمیکند. بهتر است روی گوشی واقعی که اپلیکیشن * کافه بازار* روی آن نصب است و کاربر در آن لاگین کرده، تست کنید.
- شناسه محصول: شناسه محصول (Product ID) باید دقیقاً با پنل کافه بازار مطابقت داشته باشد.
- نسخه اندروید: این کتابخانه با Android 5.0 (API 21) به بالا سازگار است.
MIT