Útmutató · Flutter
Építs affiliate- vagy ajánlói programot a Flutter-alkalmazásodba.
Az influto csomag iOS-en és Androidon felismeri az ajánlott telepítéseket, és fogadja a beírt ajánlókódokat. A vásárlások RevenueCat segítségével jutnak el az InfluTo-hoz, vagy közvetlenül az App Store-ból és a Google Play-ből az influto_iap társcsomaggal.
Frissítve: 2026. november 1.
Röviden
Futtasd a flutter pub add influto parancsot, hívd meg egyszer az InfluTo.instance.initialize-t induláskor, majd a checkAttribution és az identifyUser függvényt. RevenueCat esetén adj át egy revenueCatHook-ot, amely a Purchases.setAttributes-t hívja: Flutterben nincs automatikus megjelölés, így hook nélkül semmi sem állítja be az attribútumot. RevenueCat nélkül add hozzá az influto_iap-ot, és az initialize után engedélyezz egy InfluToPurchaseObservert. Ez jelenti az új vásárlásokat, és az in_app_purchase pluginen át pótolja a korábbiakat. Flutter 3.22+ és Dart 3.4+ szükséges. Számolj egy délutánnal, nagy része a vásárlási oldalra megy.
Mely csomagokra van szükséged
A pub.dev-en két csomag van, mindkettő MIT licencű, a forrás a github.com/influto/influto-flutter címen érhető el:
influto, mindig. Hozzárendelés, ajánlókódok, felhasználó-azonosítás, ingyenes hozzáférést adó kódok és kézi vásárlásjelentés. Csak az http és a shared_preferences függőségeket használja.
influto_iap, csak közvetlen áruházi esetben. Add hozzá, ha az appod nem RevenueCat-alapú, és az in_app_purchase pluginen át értékesít. Automatikusan rögzíti a vásárlásokat. A purchases_flutter-t használó RevenueCat-appoknak nincs rá szükségük.
Minden az InfluTo.instance-en keresztül megy, statikus hívások nincsenek. A telepítés:
flutter pub add influto
# optional: automatic store-direct purchase capture
flutter pub add influto_iap1. lépés: inicializálás az első képkocka feltartása nélkül
Az initialize-t egyszer hívd meg induláskor, és várd meg, mielőtt bármi mást hívsz. Amíg nem sikerült, a checkAttribution és a reportPurchase InfluToException-t dob. Hiba esetén (rossz kulcs, nincs hálózat) maga is kivételt dob, ezért kapd el, naplózd, és menj tovább. A következő indításkor újra próbálkozik.
Ne blokkold rajta az első képkockát: állítsd be a RevenueCat-et, hívd meg a runApp-ot, majd indítsd az InfluTo-t unawaited-del, az alábbi módon. Az API-kulcsot (it_…, a Setup & SDK oldalon) build időben add át a --dart-define=INFLUTO_API_KEY=it_… kapcsolóval, és olvasd be a String.fromEnvironment-tel.
A checkAttribution ezután megmondja, hogy a telepítés ajánlott volt-e, és melyik kóddal. A válasz telepítésenként egyszer dől el, és az eszközön tárolódik. Hálózati hiba esetén attributed: false értéket ad vissza, és semmit sem tárol. Egy tipikus main.dart:
import 'dart:async';
import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';
import 'package:influto/influto.dart';
import 'package:purchases_flutter/purchases_flutter.dart'; // only if you use RevenueCat
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Purchases.configure(PurchasesConfiguration('appl_…')); // RevenueCat apps: configure it first
runApp(const MyApp());
unawaited(startInfluTo());
}
Future<void> startInfluTo() async {
try {
await InfluTo.instance.initialize(InfluToConfig(
apiKey: const String.fromEnvironment('INFLUTO_API_KEY'),
appVersion: '1.4.0',
revenueCatHook: (attrs) => Purchases.setAttributes(attrs),
));
} catch (e) {
debugPrint('InfluTo initialize failed: $e'); // retried on the next launch
return;
}
final attribution = await InfluTo.instance.checkAttribution();
await InfluTo.instance.identifyUser(await Purchases.appUserID);
}2. lépés: engedd, hogy a felhasználók beírjanak egy kódot
Az applyCode(code) ellenőriz egy kódot, és ha érvényes, alkalmazza. A result.applied megmondja, megtörtént-e. A kódok szóközök nélkül, nagybetűsítve kerülnek feldolgozásra, az érvénytelen kód pedig valid: false értéket ad errorCode-dal, például CODE_NOT_FOUND vagy CODE_EXPIRED.
A kész megoldás a ReferralCodeInput widget (Material). Gépelés közben ellenőriz, koppintásra alkalmazza a kódot, linkről érkezett telepítésnél előre kitölti, és fogadja a lefordított szövegeidet. Az alkotó nevét csak akkor mutatja, ha beállítod a showReferrerName-et.
3. lépés: kösd be a vásárlásokat
Az InfluTo csak az áruház által ellenőrzött vásárlások után fizet jutalékot. Platformonként pontosan egy utat válassz:
RevenueCat (purchases_flutter): adj át egy revenueCatHook-ot az InfluToConfigban, amely a Purchases.setAttributes-t hívja, ahogy a fenti main.dart-ban. Az SDK egyszer hívja meg, amikor ajánlást talál vagy kódot alkalmaznak, influto_code és influto_referral értékekkel. Ezután kösd be a RevenueCat webhookot a Setup & SDK oldalon.
Közvetlen áruházi (in_app_purchase): add hozzá az influto_iap-ot, hozz létre egy InfluToPurchaseObservert, és engedélyezd, miután az initialize lefutott. Csak akkor működik, ha az app a Settings → Validation alatt közvetlen áruházi módra van állítva, így ugyanaz a build biztonságosan fut RevenueCat-appban is.
Hook nélkül semmi sem állítja be a RevenueCat attribútumot Flutterben; a React Native-dal ellentétben itt nincs automatikus címkézés. A checkAttribution előtt konfiguráld a RevenueCat-et, és hívd meg az identifyUser-t a RevenueCat app user ID-val. Az InfluTo ezt használja tartalékként, ha egy esemény az attribútum nélkül érkezik.
Mit csinál az observer az alkalmazásodban: lezárja a függő vásárlásokat (completePurchase), hogy az áruház ne kézbesítse újra vagy ne térítse vissza őket. Az utólagos feltöltés a restorePurchases()-t hívja, így a saját figyelőd is látja indításkor a visszaállított vásárlásokat (az enable(backSync: false) ezt kihagyja). iOS-en pedig az in_app_purchase-t StoreKit 2-re kapcsolja, amire a store-direct módnak szüksége van.
Az Android egyszeri termékek az observer oneTimeProductIds listájába kerülnek, nem az InfluToConfigba. Ha inkább magad jelented a vásárlásokat, állítsd az autoCapture-t false-ra, hagyd ki az observert, és hívd a reportPurchase-t a StoreKit 2 aláírt tranzakciójával vagy a Play purchaseToken-nel. Az observer beállítása:
import 'package:influto_iap/influto_iap.dart';
final observer = InfluToPurchaseObserver(
oneTimeProductIds: {'coins_100', 'remove_ads'}, // Android one-time products; omit if you only sell subscriptions
);
final sync = await observer.enable(); // listens for new purchases + back-fills existing ones4. lépés: teszteld végponttól végpontig
A sandbox-vásárlások soha nem mozgatnak pénzt, és nem módosítják a statisztikáidat:
- 1
Nézd meg a Setup & SDK oldalt. Az első sikeres initialize után megjelenik az „SDK connected” felirat a platformmal és az SDK verziójával. A debug: true minden lépést kiír a debugPrint-tel.
- 2
Szimulálj egy vásárlást. A Setup & SDK oldalon a Simulate a purchase sandbox tesztvásárlást küld az InfluTo valódi folyamatán át. Add meg az egyik kódodat, és látni fogod, hogyan oldódik fel.
- 3
Telepíts ajánlói linkkel. Csatlakozz a kampányodhoz egy második alkotói fiókkal, nyisd meg a linkjét egy tesztkészüléken, telepítsd, majd indítsd el az alkalmazást. A legmegbízhatóbb teszt a kód beírása.
- 4
Vásárolj a sandboxban. Használj TestFlight- vagy sandbox-tesztelőt (store-direct iOS-en előbb állítsd az Apple-környezetet Sandboxra), vagy Google Play licenctesztelőt. A Sandboxra váltott Integration log attribuálva mutatja a vásárlást. Az enable() hibakereséshez visszaadja a lekért, elküldött és sikertelen elemek számát.
A clearAttribution() visszaállítja a készüléket egy újabb próbához.
Flutter-tudnivalók
Három dolog, amiben a Flutter-integrációknál gyakran elakadnak:
A sorrend számít. Előbb konfiguráld a RevenueCat-et, utána hívd az initialize-t, végül a checkAttribution-t. Az influto_iap observert csak az initialize befejezése után kapcsold be, különben kikapcsolva marad.
const konfigurációk. Az InfluToConfig-nak van const konstruktora, de a closure nem konstans, ezért revenueCatHook átadásakor hagyd el a const-ot.
Egyszer azonosíts. Az identifyUser-t bejelentkezésenként egyszer hívd meg, lehetőleg a felhasználó első munkamenetében, ne a build-ből.
Vagy bízd a kódoló ügynökre
Kösd össze az InfluTo MCP-szerverét a Claude Code-dal, a Codexszel vagy a Cursorral, és kérd az integrációt. Az ügynök a Dart-projektet ehhez az SDK-hoz igazítja, megírja a kiválasztott ellenőrzési útvonalhoz tartozó kódot, és addig figyeli az influto_integration_status-t, amíg egy sandbox-vásárlás attribuálva meg nem érkezik.
Flutter affiliate SDK: válaszok.
Van affiliate SDK Flutterhez?
Igen. A pub.dev-en elérhető influto (MIT, forrás: github.com/influto/influto-flutter) felismeri az ajánlott telepítéseket, kezeli az ajánlókódokat, és attribuálja a vásárlásokat iOS-es és Android Flutter-alkalmazásokban. Flutter 3.22+ és Dart 3.4+ szükséges hozzá.
Mely ajánlói eszközök támogatják a Fluttert?
Több affiliate platform ad ki Flutter-csomagot. Az InfluToé lefedi az attribúciót, a típusos kódokat kész ReferralCodeInput widgettel, a RevenueCat-címkézést hookon át, és az automatikus store-direct rögzítést az influto_iap-pal. Ugyanazt az adatátviteli szerződést használja, mint az InfluTo iOS, Android, React Native és webes SDK-ja.
Működik a purchases_flutterrel (RevenueCat)?
Igen. Adj át egy revenueCatHookot, amely a Purchases.setAttributes-t hívja, előbb konfiguráld a RevenueCat-et, és kösd be a RevenueCat webhookot. A RevenueCat-et használó alkalmazásnak nincs szüksége az influto_iap-ra.
Zavarja az influto_iap a saját vásárlásfigyelőmet?
Lezárja a függő vásárlásokat, és indításkor visszaállítást futtat az utólagos feltöltéshez, így a figyelőd is látja a visszaállított vásárlásokat. Ha ezt nem szeretnéd, hívd az enable(backSync: false)-t. A tartalmat továbbra is a saját purchaseStream figyelődből szolgáltatod.
Mennyibe kerül?
Havi 0 $. Ellenőrzött vásárlásonként az általad megadott jutalékot fizeted, plusz ugyanennek a bevételnek a 10%-át (nagyobb forgalomnál 7%, 5% vagy 3%). Az előre feltöltött egyenleg 50 $-tól indul, és visszatéríthető. Az InfluTo havonta fizet az alkotóknak Stripe Connecten át 33 országban, amint összegyűlt 20 $.
Add ki az ajánlókódokat a következő Flutter-buildeddel.
Egy csomag, egy ellenőrzési útvonal, visszatéríthető letét. Havi 0 $; 10% csak az alkotók által hozott bevételből.
Kezdd el ingyen