tauri-plugin-pliap

Crates.iotauri-plugin-pliap
lib.rstauri-plugin-pliap
version1.0.6
created_at2025-07-28 15:07:15.748181+00
updated_at2025-09-10 10:35:16.133669+00
descriptionTauri plugin for in-app purchases and subscriptions supporting desktop and mobile platforms
homepagehttps://github.com/lecaobaophuc0912/tauri-plugin-pliap
repositoryhttps://github.com/lecaobaophuc0912/tauri-plugin-pliap
max_upload_size
id1771239
size195,369
LePhuc (lecaobaophuc0912)

documentation

https://github.com/lecaobaophuc0912/tauri-plugin-pliap

README

Tauri Plugin PLIAP (DEPRECATE, NO LONGER MAINTAINED AND DEVELOPMENT)

Crates.io Crates.io License

A Tauri plugin for handling in-app purchases and subscriptions across desktop and mobile platforms.

Features

  • Cross-platform support: Desktop (Windows, macOS, Linux) and Mobile (Android, iOS)
  • In-app purchases: One-time purchases with Google Play Billing and App Store
  • Subscriptions: Recurring subscriptions with multiple base plans
  • Product management: Query product information and pricing
  • Purchase tracking: Get all user purchases and consumption status
  • TypeScript support: Full type definitions for the JavaScript API

Platform Support

Platform Status Notes
Android ✅ Full Google Play Billing v6

ℹ️ Hiện tại plugin chỉ hỗ trợ Android. Hỗ trợ iOS và Desktop sẽ được cập nhật trong tương lai.

Installation

Rust (Cargo.toml)

[dependencies]
tauri-plugin-pliap = "1.0.6"

JavaScript/TypeScript

npm install tauri-plugin-pliap
# or
yarn add tauri-plugin-pliap
# or
pnpm add tauri-plugin-pliap

Quick Start

1. Register the plugin

// src-tauri/src/main.rs
fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_pliap::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

2. Configure permissions

// src-tauri/capabilities/default.json
{
  "permissions": [
    "core:default",
    "pliap:allow-ping",
    "pliap:allow-create-purchase",
    "pliap:allow-create-purchase-subscription",
    "pliap:allow-consume",
    "pliap:allow-get-product",
    "pliap:allow-get-all-purchases",
    "pliap:allow-get-subscription",
    "pliap:allow-get-list-subscription"
  ]
}

3. Use in your app

import { createPurchase, getProduct } from "tauri-plugin-pliap";

// Create a purchase
const success = await createPurchase("product_id_123");

// Get product info
const product = await getProduct("product_id_123");
console.log("Product:", product.title, "Price:", product.price);

API Reference

Core Functions

  • ping(value: string) - Test plugin connection
  • createPurchase(productId: string) - Create one-time purchase
  • createPurchaseSubscription(options) - Create subscription
  • consume(purchaseToken: string) - Consume a purchase
  • getProduct(productId: string) - Get product information
  • getAllPurchases() - Get all user purchases
  • getSubscription(productId: string) - Get subscription info
  • getListSubscription(productIds: string[]) - Get multiple subscriptions

Key Types

interface BillingProduct {
  productId: string;
  title: string;
  description: string;
  price: string;
  productType: string;
}

interface SubscriptionPurchaseResponse {
  success: boolean;
  purchaseToken?: string;
  orderId?: string;
  isAutoRenewing?: boolean;
}

Platform Setup

Android

Add to AndroidManifest.xml:

<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.INTERNET" />

iOS

Ensure your app has:

  • Valid App Store Connect configuration
  • Product IDs configured in App Store Connect
  • Proper code signing and provisioning profiles

Examples

See the examples/tauri-app directory for a complete working example.

Contributing

Contributions are welcome! Please read our Contributing Guide before submitting a pull request.

License

MIT License - see LICENSE file for details.

Support

Publish

cargo login

Publish test, not upload: cargo publish --dry-run

cargo publish

Commit count: 20

cargo fmt