Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
Cross-platform In App Billing Plugin for .NET
Developer toolsGitHub @jamesmontemagnoSelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Project status: Android and Windows are actively maintained and track the current Google Play Billing Library and Microsoft Store APIs. iOS and Mac Catalyst use StoreKit 2, while native macOS still uses the original StoreKit APIs. Contributions are welcome, and you can always fork the library or pull the source into your project.
A simple In-App Purchase plugin for .NET MAUI and Windows to query item information, purchase items, restore items, and more.
Subscriptions are supported on iOS, Android, Mac, and Windows.
Windows.Services.Store and supports WinUI 3 and Windows App SDK apps, subscriptions, and consumables. This changes some Windows behavior, see the migration notesGet started by reading through the In-App Billing Plugin documentation.
| Platform | Version |
|---|---|
| iOS for .NET | 10+ |
| macCatlyst for .NET | All |
| Android for .NET | 23+ |
| Windows App SDK (WinUI 3) | 10+ |
| .NET MAUI | All |
Android Billing v9 needs newer AndroidX libraries than .NET MAUI 10 brings in, so restoring can fail with NU1107 on Xamarin.AndroidX.Lifecycle.*. If it does, reference these from your app:
<ItemGroup Condition="$(TargetFramework.Contains('-android'))">
<PackageReference Include="Xamarin.AndroidX.Activity.Ktx" Version="1.13.0.1" />
<PackageReference Include="Xamarin.AndroidX.Collection.Ktx" Version="1.6.0.1" />
<PackageReference Include="Xamarin.AndroidX.Fragment.Ktx" Version="1.9.1" />
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.11.0.1" />
<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData.Core.Ktx" Version="2.11.0.1" />
<PackageReference Include="Xamarin.AndroidX.Lifecycle.Process" Version="2.11.0.1" />
<PackageReference Include="Xamarin.AndroidX.Lifecycle.Runtime.Ktx" Version="2.11.0.1" />
<PackageReference Include="Xamarin.AndroidX.Lifecycle.Runtime.Ktx.Android" Version="2.11.0.1" />
<PackageReference Include="Xamarin.AndroidX.Lifecycle.ViewModel.Ktx" Version="2.11.0.1" />
<PackageReference Include="Xamarin.AndroidX.SavedState.SavedState.Ktx" Version="1.5.0.1" />
</ItemGroup>
AcknowledgePurchaseAsync is now FinalizePurchaseAsyncIf you receive an error in Google Play you may need to add this to your AndroidManifest.xml inside the application node:
<meta-data
android:name="com.google.android.play.billingclient.version"
android:value="X.X.X" />
Update X.X.X with the version of the Billing Library that is a dependency on the NuGet package.
To respond to pending transactions you can subscribe to a listener in your Android project startup:
// Connect to the service here
await CrossInAppBilling.Current.ConnectAsync();
// Check if there are pending orders, if so then subscribe
var purchases = await CrossInAppBilling.Current.GetPurchasesAsync(ItemType.InAppPurchase);
if (purchases?.Any(p => p.State == PurchaseState.PaymentPending) ?? false)
{
Plugin.InAppBilling.InAppBillingImplementation.OnAndroidPurchasesUpdated = (billingResult, purchases) =>
{
// decide what you are going to do here with purchases
// probably acknowledge
// probably disconnect
};
}
else
{
await CrossInAppBilling.Current.DisconnectAsync();
}
This is the beginning of the README. Read the rest at the original. Read the full README ↗