محمدرضا شاهپیری 5,553 ارسال شده در 28 خرداد، ۱۴۰۲ اشتراک گذاری ارسال شده در 28 خرداد، ۱۴۰۲ سلام به همه برنامه نویسای عزیز. بعد مدتها یه آموزش بزاریم کیف کنیم همونطور که مطلع هستید بازار خیلی وقته درون پرداخت رو با پولکی انجام میده و این کتابخونه مخصوص کاتلین هست و به راحتی نمیتونید اونو مستقیم توی جاوا استفاده کنید. برا همین یه کلاس واسط که به اصطلاح از دیزاین پترن پ * ر * و * ک *س * ی استفاده شده برای دوستان آماده کردیم که راحت بتونن اونو توی جاوا استفاده کنن. دقت کنید که حتما باید کاتلین توی پروژه ست شده باشه. کلاس کاتلین زیر رو به پروژه اضافه کنید و اسمشو PoolakeyWrapper بزارید. package com.example.myapplication import android.content.Context import androidx.activity.result.ActivityResultRegistry import ir.cafebazaar.poolakey.Connection import ir.cafebazaar.poolakey.Payment import ir.cafebazaar.poolakey.config.PaymentConfiguration import ir.cafebazaar.poolakey.config.SecurityCheck import ir.cafebazaar.poolakey.entity.PurchaseInfo import ir.cafebazaar.poolakey.request.PurchaseRequest /** * Created by Mohamadreza Shahpiri on 6/18/2023. * Answercenter.ir *************************************************** */ class PoolakeyWrapper( publicKey: String, context: Context, ) { private val securityCheck = SecurityCheck.Enable(rsaPublicKey = publicKey) private val paymentConfig = PaymentConfiguration(localSecurityCheck = securityCheck) private val payment = Payment(context = context.applicationContext, config = paymentConfig) private var connection:Connection?=null fun connect(connectionCallback: ConnectionCallback){ connection=payment.connect { connectionSucceed{ connectionCallback.connectionSucceed() } connectionFailed { connectionCallback.connectionFailed(it) } disconnected { connectionCallback.disconnected() } } } fun purchaseProduct(registry: ActivityResultRegistry,request: PurchaseRequest,purchaseCallback: PurchaseCallback){ payment.purchaseProduct(registry,request){ purchaseFlowBegan { purchaseCallback.purchaseFlowBegan() } failedToBeginFlow { purchaseCallback.failedToBeginFlow(it) } purchaseSucceed { purchaseCallback.purchaseSucceed(it) } purchaseCanceled { purchaseCallback.purchaseCanceled() } purchaseFailed { purchaseCallback.purchaseFailed(it) } } } fun subscribeProduct(registry: ActivityResultRegistry,request: PurchaseRequest,purchaseCallback: PurchaseCallback){ payment.subscribeProduct(registry,request){ purchaseFlowBegan { purchaseCallback.purchaseFlowBegan() } failedToBeginFlow { purchaseCallback.failedToBeginFlow(it) } purchaseSucceed { purchaseCallback.purchaseSucceed(it) } purchaseCanceled { purchaseCallback.purchaseCanceled() } purchaseFailed { purchaseCallback.purchaseFailed(it) } } } fun consumeProduct(purchaseToken: String,consumeCallback: ConsumeCallback){ payment.consumeProduct(purchaseToken){ consumeSucceed { consumeCallback.consumeSucceed() } consumeFailed { consumeCallback.consumeFailed(it) } } } fun getPurchasedProducts(queryCallback: QueryCallback){ payment.getPurchasedProducts { querySucceed { queryCallback.querySucceed(it) } queryFailed { queryCallback.queryFailed(it) } } } fun getSubscribedProducts(queryCallback: QueryCallback){ payment.getSubscribedProducts { querySucceed { queryCallback.querySucceed(it) } queryFailed { queryCallback.queryFailed(it) } } } fun disconnect(){ connection?.disconnect() } interface ConnectionCallback{ fun connectionSucceed() fun connectionFailed(throwable:Throwable) fun disconnected() } interface PurchaseCallback{ fun purchaseFlowBegan() fun failedToBeginFlow(throwable:Throwable) fun purchaseSucceed(info: PurchaseInfo) fun purchaseCanceled() fun purchaseFailed(throwable:Throwable) } interface ConsumeCallback{ fun consumeSucceed() fun consumeFailed(throwable:Throwable) } interface QueryCallback{ fun querySucceed(items:List<PurchaseInfo>) fun queryFailed(throwable:Throwable) } } حالا توی جاوا به شکل زیر ازش استفاده کنید. مثلا برای اینشیالایز. PoolakeyWrapper poolakeyWrapper=new PoolakeyWrapper("publicKey",this); poolakeyWrapper.connect(new PoolakeyWrapper.ConnectionCallback() { @Override public void connectionSucceed() { } @Override public void connectionFailed(@NonNull Throwable throwable) { } @Override public void disconnected() { } }); و برای خرید PurchaseRequest purchaseRequest=new PurchaseRequest( "productId","payload","dynamicPriceToken" ); poolakeyWrapper.purchaseProduct(getActivityResultRegistry(), purchaseRequest, new PoolakeyWrapper.PurchaseCallback() { @Override public void purchaseFlowBegan() { } @Override public void failedToBeginFlow(@NonNull Throwable throwable) { } @Override public void purchaseSucceed(@NonNull PurchaseInfo info) { } @Override public void purchaseCanceled() { } @Override public void purchaseFailed(@NonNull Throwable throwable) { } }); بقیه متدها رو هم به راحتی میتونید استفاده کنید. مانا باشید 1 1 نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
DexterFstone 395 ارسال شده در 9 شهریور، ۱۴۰۲ اشتراک گذاری ارسال شده در 9 شهریور، ۱۴۰۲ . نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
berayan 90 ارسال شده در 31 فروردین اشتراک گذاری ارسال شده در 31 فروردین سلام . موقع کامپایل به این کلاس ایراد میگیره PoolakeyWrapper poolakeyWrapper = new PoolakeyWrapper("rsa_public_key",this); E:\android pro\ProAsli\poolke3\app\src\main\java\com\example\poolakey\MainActivity.java:20: error: cannot find symbol PoolakeyWrapper poolakeyWrapper; ^ symbol: class PoolakeyWrapper location: class MainActivity نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمدرضا شاهپیری 5,553 ارسال شده در 3 اردیبهشت سازنده اشتراک گذاری ارسال شده در 3 اردیبهشت در ۱۴۰۳/۱/۳۱ در ۲۲:۲۸، berayan گفته است: سلام . موقع کامپایل به این کلاس ایراد میگیره سلام و درود. شما باید کلاس PoolakeyWrapper رو ایجاد کنید مطابق راهنماییهای پست اول. اگه کلاس رو ایجاد کردید و هنوز خطا میده شاید از نسخه کاتلینتون باشه. کاتلین رو به نسخه آخر بروز کنید نقل قول لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ارسالهای توصیه شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .
توجه: strong> مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.