نسخه چاپی
پولکی فلاتر
پولکی فلاتر چیست؟
“پولکی فلاتر” کتابخانهای برای پیادهسازی پرداخت درون برنامه بازار برای فلاتر هست، این پروژه با استفاده از زیرساخت کتابخانهی پولکی که با زبان kotlin نوشته شده پیاده شده است. هدف از پیادهسازی این کتابخانه، بهبود فرآیند پیادهسازی پرداخت درون برنامهای بازار برای توسعهدهنده است و به ما اجازه میدهد در طولانی مدت، قابلیتهای تازهای به این کتابخانه اضافه کنیم.
استفاده از “پولکی فلاتر”
۱- افزودن کتابخانه به پروژه:
برای شروع نیاز هست که کتابخانه را به پروژه خود اضافه کنید. برای این کار باید خط زیر را به فایل pubspec.yaml
پروژه خودتان اضافه کنید:.
۱- افزودن کتابخانه به پروژه:
توجه: مطمئن شوید که از آخرین نسخه کتابخانه استفاده میکنید. برای بررسی لطفا به لینک https://github.com/cafebazaar/flutter_poolakey مراجعه کنید.
سپس با اجرا کردن دستور زیر میتوانید کتابخانه را دریافت کنید:
flutter pub get
۲- ساخت و ساز
ساختار پرداخت درون برنامهای به شکلی هست که برنامه شما باید مستقیما با برنامه بازار صحبت کند تا بتواند عملیات خرید و... را انجام دهد. برای صحبت کردن با بازار، ابتدا باید به بازار متصل شوید. برای انجام این کار ابتدا باید کلاسهای لایبرری را در کلاس خود ایمپورت کنید:
import 'package:flutter_poolakey/flutter_poolakey.dart';
۳. اتصال به بازار
برای اتصال به بازار باید از متد زیر استفاده کنید:
await FlutterPoolakey.init(RSA_PUBLIC_KEY, onDisconnected: () { /*reconnect here*/
});
از آنجایی که احتمال دارد در وصل شدن به بازار خطایی صورت بگیرد نیاز هست تا خروجی متد را چک کنید و در صورت خطا دادن متوجه مشکلی که باعث عدم اتصال برنامه شما به بازار شده است شوید.
- به جای مقدار
RSA_PUBLIC_KEY
باید از کلید برنامه خود استفاده کنید، برای دریافت کلید برنامه به پنل پیشخان مراجعه کنید و در صفحه اطلاعات برنامه، وارد بخش «پرداخت درون برنامهای» شوید و کلید را از آنجا کپی کنید و به جای مقدارRSA_PUBLIC_KEY
در نمونه کد بالا قرار دهید.
۴. شروع روند خرید یک محصول
برای شروع روند خرید باید از متد زیر استفاده کنید:
PurchaseInfo purchaseInfo = await FlutterPoolakey.purchase('PRODUCT_ID', payload: 'DEVELOPER_PAYLOAD');
به جای مقدار PRODUCT_ID
باید مقدار شناسه محصولی که قصد خرید آن را دارید را جایگزین کنید. برای دریافت مقدار شناسه محصول مورد نظر، به پیشخان توسعهدهندگان مراجعه کنید و در صفحه اطلاعات برنامه، در تب «پرداخت درون برنامهای» یک محصول جدید بسازید و شناسهای برای آن در نظر بگیرید یا این که میتوانید، شناسه محصولهای پیشین که ساختهاید را جایگزین مقدار PRODUCT_ID
کنید.
۵: شروع روند اشتراک یک محصول
برای اشتراک یک محصول، دقیقا مثل شروع خرید یک محصول عمل کنید و به جای استفاده از فانکشن purchase
از فانکشن subscribe
موجود در کلاس FlutterPoolakey
استفاده کنید.
۶: دریافت نتیجه خرید اشتراک و محصول
بعد از اینکه از یکی از فانکشنهای purchase
یا subscribe
استفاده کردید، باید از نتیجه خرید کاربر خود مطلع شوید. مقدار بازگشتی متدهای فوق PurchaseInfo
میباشد. در صورت موفق بودن فرآیند پرداخت میتوانید اطلاعات پرداخت را در مدل PurchaseInfo
دریافت کنید. در صورت بروز هر گونه مشکلی در فرآیند پرداخت ، با خطای PlatformException
مواجه خواهید شد و نیاز هست که خطای مناسب را به کاربر نمایش دهید.
۷: مصرف کردن خرید کاربر
وقتی کاربر یکی از محصولات دیجیتالی برنامه شما را خریداری میکند، مالک یک نسخه محصول مورد نظر میشود و در صورتی که شما کاربر را مجددا به صفحه پرداخت هدایت کنید، کاربر نمیتواند دوباره خرید خود را انجام دهد و با اطلاعات خرید قبلی به برنامه شما باز میگردد (purchaseSucceed)
. اما شما میتوانید برای محصول مورد نظر خود تاریخ مصرف و یا شرایط خاصی را در نظر بگیرید که خرید مصرف شود که در این صورت کاربر میتواند مجددا خرید خود را انجام دهد. برای مصرف کردن یک خرید از فانکشن consume
موجود در کلاس FlutterPoolakey
استفاده کنید:
await FlutterPoolakey.consume(PURCHASE_TOKEN);
توجه کنید که بهجای مقدار PURCHASE_TOKEN
در نمونه کد بالا، باید مقدار واقعی توکن خریدی که میخواهید مصرف شود را قرار دهید. دسترسی به توکن خرید، از طریق کلاس PurchaseInfo
امکانپذیر است. وقتی کاربر خرید انجام میدهد، پولکی به شما یک PurchaseInfo
میدهد. همچنین میتوانید تمام خریدهای کاربر که در برنامه شما انجام داده است را از طریق فانکشن getAllPurchasedProducts
بدست بیاورید که در این صورت، پولکی به شما لیستی از PurchaseInfo
میدهد که از این طریق نیز میتوانید به توکن خرید دسترسی پیدا کنید.
توجه: محصولات اشتراکی را نمیتوانید مصرف کنید.
توجه: به این نکته توجه داشته باشید که قبل از کار با consume باید مطمئن شوید که کاربر وارد حساب بازار خود شده است، در غیر اینصورت خطای PlatformException اتفاق میافتد.
۸: دریافت خریدهای کاربر در برنامه شما
شما میتوانید با استفاده از فانکشن getAllPurchasedProducts
موجود در کلاس FlutterPoolakey
از خریدهای کاربر که در برنامه شما انجام داده است، مطلع شوید:
List<PurchaseInfo> purchasedProductsList= await FlutterPoolakey.getAllPurchasedProducts()
در صورتی که ارتباط با بازار به خوبی برقرار شود و مشکلی در دریافت لیست خریدها وجود نداشته باشد، لیستی از PurchaseInfo
به شما برمیگردد که میتوانید به خریدهای کاربر دسترسی پیدا کنید.
توجه: به این نکته توجه داشته باشید قبل از کار با getAllPurchasedProducts
باید مطمئن شوید که کاربر وارد حساب بازار خود شده است، در غیر اینصورت خطای PlatformException
اتفاق میافتد.
۹: دریافت اشتراکهای کاربر در برنامه شما
شما میتوانید با استفاده از فانکشن getAllSubscribedProducts
موجود در کلاس FlutterPoolakey
از محصولاتی که کاربر اشتراک آنها را در برنامه شما خریداری کرده ، مطلع شوید:
List<PurchaseInfo> purchasedProductsList = await FlutterPoolakey.getAllSubscribedProducts()
در صورتی که ارتباط با بازار به خوبی برقرار شود و مشکلی در دریافت لیست اشتراکها وجود نداشته باشد که در این صورت، لیستی از PurchaseInfo
به شما برمیگردد که میتوانید به اشتراکهای کاربر دسترسی پیدا کنید.
توجه: به این نکته توجه داشته باشید که قبل از کار با getAllSubscribedProducts
باید مطمئن شوید که کاربر وارد حساب بازار خود شده است، در غیر اینصورت خطای PlatformException
اتفاق میافتد.
۱۰- دریافت جزییات محصولات:
شما میتوانید با استفاده از فانکشن getInAppSkuDetails
جزییات محصولات را دریافت کنید.
FlutterPoolakey.getInAppSkuDetails(['PRODUCT_ID1', 'PRODUCT_ID2'])
ورودی این متد لیستی PRODUCT_ID
ها است، به جای مقدار PRODUCT_ID
باید مقدار شناسه محصولی که قصد دریافت جزییات آن را دارید را جایگزین کنید. برای دریافت مقدار شناسه محصول مورد نظر، به پیشخان توسعهدهندگان مراجعه کنید و در صفحه اطلاعات برنامه، در تب «پرداخت درون برنامهای» یک محصول جدید بسازید و شناسهای برای آن در نظر بگیرید یا این که میتوانید، شناسه محصولهای پیشین که ساختهاید را جایگزین مقدار PRODUCT_ID
کنید.
در صورتی که ارتباط با بازار به خوبی برقرار شود و مشکلی در دریافت لیست جزییات محصولات وجود نداشته باشد، لیستی از SkuDetails
به شما برمیگردد که میتوانید به جزییات محصولات خود دسترسی پیدا کنید.
۱۱- دریافت جزییات محصولات اشتراکی:
شما میتوانید با استفاده از فانکشن getSubscriptionSkuDetails
میتوانید جزییات محصولات اشتراکی خود را دریافت کنید.
FlutterPoolakey.getSubscriptionSkuDetails(['PRODUCT_ID1', 'PRODUCT_ID2'])
ورودی این متد لیستی PRODUCT_ID
ها است، به جای مقدار PRODUCT_ID
باید مقدار شناسه محصولی که قصد دریافت جزییات آن را دارید را جایگزین کنید. برای دریافت مقدار شناسه محصول مورد نظر، به پیشخان توسعهدهندگان مراجعه کنید و در صفحه اطلاعات برنامه، در تب «پرداخت درون برنامهای» یک محصول جدید بسازید و شناسهای برای آن در نظر بگیرید یا این که میتوانید، شناسه محصولهای پیشین که ساختهاید را جایگزین مقدار PRODUCT_ID
کنید.
در صورتی که ارتباط با بازار به خوبی برقرار شود و مشکلی در دریافت لیست جزییات محصولات وجود نداشته باشد، لیستی از SkuDetails
به شما برمیگردد که میتوانید به جزییات محصولات خود دسترسی پیدا کنید.
به مطالب ارائه شده چه امتیازی میدهید؟
محل نوشتن دیدگاه ...
اگر در مورد محتوا نظر یا پیشنهادی دارید لطفا برای ما بنویسید.
زمان انتشار: ۱۴۰۰-۰۴-۲۷ ۱۱:۱۷
آخرین بهروزرسانی: ۱۴۰۰-۰۸-۱۹ ۰۸:۳۲