رفتن به مطلب

ارسال‌های توصیه شده

MyketInapp کتابخانه درون پرداخت مایکت

مشاهده فایل

با سلام. 

مایکت هم درون پرداختشو به روز کرده و طبق معمول برای b4a به روزرسانی نکرده که تصمیم گرفتیم برای دوستان آماده کنیم.امیدوارم مورد استفاده قرار بگیره.

نحوه استفاده. اول کد زیر رو به منیفست اضافه کنید.

CreateResourceFromFile(Macro, MyketBilling.Manifest)

متدها هم که به شکل زیر هست.

Private myketBilling As MyketBilling
myketBilling.initialize("myket",publicKey) اینیشیالایز کردن
====================================================================
result.isSuccessful بعد از اینیشیالایز این متد اجرا میشه چک کنید که موفق باشه با دستور
Private Sub myket_onIabSetupFinished(result As IabResult)     
	Log(result.isSuccessful)
	Log(result.ErrorMsg)
End Sub
==========================================================================
myketBilling.queryInventoryAsync    گرفتن لیست محصولات یا خریدها

این متد اجرا میشه
Private Sub myket_onQueryInventoryFinished(result As IabResult,inventory As Inventory)
	Log(inventory.AllProducts.As(List).Size ) 
End Sub
========================================================================
myketBilling.launchPurchaseFlow(sku,payload) خرید درون برنامه
myketBilling.launchSubscriptionPurchaseFlow(sku,payload) اشتراک

نتیجه خرید
Private Sub myket_onIabPurchaseFinished(result As IabResult,purchase As Purchase)
	Log(result.isSuccessful)
	Log(result.ErrorMsg)
End Sub
=============================================================================
myketBilling.consumeAsync(purchase) مصرف کردن خرید

نتیجه
Private Sub myket_onConsumeFinished(result As IabResult,purchase As Purchase)
	
End Sub

 

دانلود سورس

source.zip


 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • پاسخ 53
  • ایجاد شده
  • آخرین پاسخ

بیشترین ارسال‌ها در این موضوع

ارسال‌های محبوب

MyketInapp کتابخانه درون پرداخت مایکت مشاهده فایل با سلام.  مایکت هم درون پرداختشو به روز کرده و طبق معمول برای b4a به روزرسانی نکرده که تصمیم گرفتیم برای دو

سلام و درود. کتابخانه به روز شد نسخه جدید رو دریافت کنید

سلام. نسخه جدید رو به همراه سورس پیوست شده تست کنید

تصاویر ارسال شده

سلام.
ممنون از شما .
فقط  روی حال دیباگ مشکلی نداره ولی روی release این خطا رو میده.
اندروید 12
 

shop_myket_oniabpurchasefinished (java line: 938)
java.lang.NullPointerException: Attempt to read from field 'anywheresoftware.b4a.BA com.t.shop.activityBA' on a null object reference
	at com.t.shop._myket_oniabpurchasefinished(shop.java:938)
	at java.lang.reflect.Method.invoke(Native Method)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
	at com.myketbilling.core.MyketBilling$3.onIabPurchaseFinished(MyketBilling.java:67)
	at ir.myket.billingclient.util.IAB$1.onReceiveResult(IAB.java:115)
	at android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:50)
	at android.os.Handler.handleCallback(Handler.java:938)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loopOnce(Looper.java:226)
	at android.os.Looper.loop(Looper.java:313)
	at android.app.ActivityThread.main(ActivityThread.java:8669)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
** Activity (shop) Resume **

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۱/۷/۲۵ در 06:18، mz elecom گفته است:

سلام.
ممنون از شما .
فقط  روی حال دیباگ مشکلی نداره ولی روی release این خطا رو میده.
اندروید 12

سلام. نسخه جدید رو به همراه سورس پیوست شده تست کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام و تشکر از آقای شاهپیری عزیز

نسخه جدید تست شد ولی متاسفانه در اندروید 11 و  شیائومی نوت 8 با ارور زیر برخورد میکنیم

java.lang.NullPointerException: Attempt To read from field 'anywheresoftware.b4a.BA test.tt.com.main.activityBA' on a null object reference
    at test.tt.com.main._myket_oniabpurchasefinished(main.java:54021)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:348)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:146)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
    at com.myketbilling.core.MyketBilling$3.onIabPurchaseFinished(MyketBilling.java:67)
    at ir.myket.billingclient.util.IAB$1.onReceiveResult(IAB.java:115)
    at android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:50)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.Loop(Looper.java:236)
    at android.app.ActivityThread.main(ActivityThread.java:8057)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)

 

 

تشکر از زحمات شما

لینک ارسال
به اشتراک گذاری در سایت های دیگر

2 ساعت قبل، sadegh77 گفته است:

سلام و تشکر از آقای شاهپیری عزیز

نسخه جدید تست شد ولی متاسفانه در اندروید 11 و  شیائومی نوت 8 با ارور زیر برخورد میکنیم

تشکر از زحمات شما

من روی گوشی Redmi note 9s با اندروید 11 تست کردم موردی نبود.سورسی که پیوست شده رو تست کنید. 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

14 ساعت قبل، محمدرضا شاهپیری گفته است:

سلام. نسخه جدید رو به همراه سورس پیوست شده تست کنید

سلام ، مهندس موقعی که میخوای لیست برنامه ها و خرید هارو بگیری تو حالت ریلیز همون ارور بالایی رو میده اجرا نمیشه 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

این کد های منه تنها مشکلی که دار اینه که موقعی که میخوام  لیست خرید هارو بگیرم تا ببینم قبلا خریده یا نه ارور بالایی رو میده .همون attemp to read ... 

Private Sub mypay_onIabSetupFinished(result As IabResult)
	If result.isSuccessful = True Then
		Try
			InAppBilling.launchPurchaseFlow("sku",DeveloperPayload)
		Catch
			Log(LastException)
		End Try
	Else 
		Log(result.ErrorMsg)
	End If
End Sub

Private Sub mypay_onIabPurchaseFinished (result As IabResult , purchase As Purchase)
	If result.isSuccessful = True And purchase.DeveloperPayload = DeveloperPayload Then
		ToastMessageShow("خرید شما با موفقیت انجام شد",True)
	Else 
		InAppBilling.queryInventoryAsync
	End If
End Sub

Private Sub mypay_onQueryInventoryFinished (result As IabResult,inventory As Inventory)

	If result.isSuccessful = True And purchase.hasPurchase("sku") = True Then
		ToastMessageShow("نسخه کامل قبلا خریداری شده است",True)
	Else
		ToastMessageShow("پرداخت ناموفق بود",True)
	End If
    
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

12 دقیقه قبل، sinam443 گفته است:

سلام ، مهندس موقعی که میخوای لیست برنامه ها و خرید هارو بگیری تو حالت ریلیز همون ارور بالایی رو میده اجرا نمیشه 

۱:فقط برای لیست خریدها این خطا هست؟

۲: خطا رو پیوست کنید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

10 دقیقه قبل، محمدرضا شاهپیری گفته است:

۱:فقط برای لیست خریدها این خطا هست؟

۲: خطا رو پیوست کنید

بله خود خرید بالا میاد منتهی وقتی که کنسل میشه از طرف کاربر یا به هر علت دیگه ای و میخوام لیست خرید هاشو بگیرم ببینم قبلا خریده یا نه ارور پایینی رو میده 

main_mypay_oniabpurchasefinished (java line: 847)
java.lang.NullPointerException: Attempt to read from field 'com.myketbilling.core.MyketBilling com.َnameFree.SAM.main._inappbilling' on a null object reference
	at com.nameFree.SAM.main._mypay_oniabpurchasefinished(main.java:847)
	at java.lang.reflect.Method.invoke(Native Method)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
	at com.myketbilling.core.MyketBilling$3.onIabPurchaseFinished(MyketBilling.java:67)
	at ir.myket.billingclient.util.IAB$1.onReceiveResult(IAB.java:130)
	at android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:50)
	at android.os.Handler.handleCallback(Handler.java:873)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:193)
	at android.app.ActivityThread.main(ActivityThread.java:6730)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:860)

 

 تو حالت دیباگ هم ارور رو از این خط میگیره 

InAppBilling.queryInventoryAsync
لینک ارسال
به اشتراک گذاری در سایت های دیگر

25 دقیقه قبل، sinam443 گفته است:

بله خود خرید بالا میاد منتهی وقتی که کنسل میشه از طرف کاربر یا به هر علت دیگه ای و میخوام لیست خرید هاشو بگیرم ببینم قبلا خریده یا نه ارور پایینی رو میده 

main_mypay_oniabpurchasefinished (java line: 847)
java.lang.NullPointerException: Attempt to read from field 'com.myketbilling.core.MyketBilling com.َnameFree.SAM.main._inappbilling' on a null object reference
	at com.nameFree.SAM.main._mypay_oniabpurchasefinished(main.java:847)
	at java.lang.reflect.Method.invoke(Native Method)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
	at com.myketbilling.core.MyketBilling$3.onIabPurchaseFinished(MyketBilling.java:67)
	at ir.myket.billingclient.util.IAB$1.onReceiveResult(IAB.java:130)
	at android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:50)
	at android.os.Handler.handleCallback(Handler.java:873)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at android.os.Looper.loop(Looper.java:193)
	at android.app.ActivityThread.main(ActivityThread.java:6730)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:860)

 

 تو حالت دیباگ هم ارور رو از این خط میگیره 

InAppBilling.queryInventoryAsync

سورسی که پیوست کردم رو تست کردین؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

9 دقیقه قبل، محمدرضا شاهپیری گفته است:

سورسی که پیوست کردم رو تست کردین؟

بله توی سورس شما هم وقتی که myketbilling.queryInventoryAsync رو میخوایم بگیریم همون ارور بالایی رو میده ، غیر فعالش کنیم کامل کار میکنه منتهی دیگه نمیشه اونایی که قبلا خرید کردن رو شناسایی کرد باید دوباره بخرن 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

4 ساعت قبل، sadegh77 گفته است:

سلام و تشکر از آقای شاهپیری عزیز

نسخه جدید تست شد ولی متاسفانه در اندروید 11 و  شیائومی نوت 8 با ارور زیر برخورد میکنیم

java.lang.NullPointerException: Attempt To read from field 'anywheresoftware.b4a.BA test.tt.com.main.activityBA' on a null object reference
    at test.tt.com.main._myket_oniabpurchasefinished(main.java:54021)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:732)
    at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:348)
    at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:255)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:146)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
    at com.myketbilling.core.MyketBilling$3.onIabPurchaseFinished(MyketBilling.java:67)
    at ir.myket.billingclient.util.IAB$1.onReceiveResult(IAB.java:115)
    at android.os.ResultReceiver$MyRunnable.run(ResultReceiver.java:50)
    at android.os.Handler.handleCallback(Handler.java:938)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.Loop(Looper.java:236)
    at android.app.ActivityThread.main(ActivityThread.java:8057)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656)

 

 

تشکر از زحمات شما

 

2 ساعت قبل، محمدرضا شاهپیری گفته است:

من روی گوشی Redmi note 9s با اندروید 11 تست کردم موردی نبود.سورسی که پیوست شده رو تست کنید. 

دقیقا از کدای شما استفاده کردم ولی متاسفانه بعد از خرید خطا میده یا حتی وقتی کاربر کنسل می‌کنه باز خطا میاد،ممکنه یبار درست انجام بشه ولی دوباره که بخواب همون محصول بخری کلا اون ساب برگشت خطا میده 

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

59 دقیقه قبل، sadegh77 گفته است:

 

دقیقا از کدای شما استفاده کردم ولی متاسفانه بعد از خرید خطا میده یا حتی وقتی کاربر کنسل می‌کنه باز خطا میاد،ممکنه یبار درست انجام بشه ولی دوباره که بخواب همون محصول بخری کلا اون ساب برگشت خطا میده 

 

 

کدهای منیفست رو گذاشتین؟

لینک ارسال
به اشتراک گذاری در سایت های دیگر

۱ ساعت قبل، محمدرضا شاهپیری گفته است:

کدهای منیفست رو گذاشتین؟

بله،کلا همونارو کپی کردم و اجرا گرفتم

 

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

آقای شاهپیری مشکلو فهمیدم

به کد myketBilling.consumeAsync(purchase) ارور میده

یعنی زمانی که خرید میزنه کاربر و این کد باید بیاد اون خریدو رفرش کنه ارور میده

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۱/۷/۲۸ در 18:32، sadegh77 گفته است:

آقای شاهپیری مشکلو فهمیدم

به کد myketBilling.consumeAsync(purchase) ارور میده

یعنی زمانی که خرید میزنه کاربر و این کد باید بیاد اون خریدو رفرش کنه ارور میده

 

متد consumeAsync رو توی یه تابع جداگونه بنویسید و دستور CallSubDelayed اونو صدا بزنید. تو متد onIabPurchaseFinished مستقیم از myketBilling استفاده نکنید. تست کنید و نتیجه رو اعلام کنید

 

لینک ارسال
به اشتراک گذاری در سایت های دیگر

در ۱۴۰۱/۷/۲۸ در 00:08، محمدرضا شاهپیری گفته است:

سلام. نسخه جدید رو به همراه سورس پیوست شده تست کنید

سلام.
باز هم همون خطا رو میده فرقی نکرد

گوشی هم سامسونگ هست

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 1 ماه بعد...

این کتابخونه یه مشکلی داره! روی بعضی از اندرویدها مثل اندروید 7 تا وقتی که خود مایکت باز نباشه (یعنی بازش کنیم و بعد دکمه Home رو بزنیم و بعد برنامه خودمونو باز کنیم) ریکوئست ارسال نمیشه!

Try
	myket.launchPurchaseFlow(product.Trim,idstring(1))
Catch
	module_lib.ShowCustomToast("درخواست با خطا مواجه شد",False)
End Try

الان اگه برنامه مایکت خودش بسته باشه و از برنامه کدهای بالارو اجرا کنیم میره توی Catch و میگه درخواست با خطا مواجه شد! برنامه های دیگه رو تست کردم چنین مشکلی نداشتند پس مشکل از خود مایکت نیست.

اگه از Try Catch استفاده نکنیم فورس کلوز رخ میده:

main_buy_click (java line: 370)
java.lang.IllegalStateException: IAB helper is not set up. Can't perform operation: launchPurchaseFlow
	at ir.myket.billingclient.IabHelper.checkSetupDone(IabHelper.java:534)
	at ir.myket.billingclient.IabHelper.launchPurchaseFlow(IabHelper.java:381)
	at ir.myket.billingclient.IabHelper.launchPurchaseFlow(IabHelper.java:352)
	at com.myketbilling.core.MyketBilling.launchPurchaseFlow(MyketBilling.java:60)
	at com.b4a.inapp.main._buy_click(main.java:370)
	at java.lang.reflect.Method.invoke(Native Method)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:213)
	at anywheresoftware.b4a.BA.raiseEvent2(BA.java:197)
	at anywheresoftware.b4a.BA.raiseEvent(BA.java:193)
	at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
	at android.view.View.performClick(View.java:5675)
	at android.view.View$PerformClick.run(View.java:22641)
	at android.os.Handler.handleCallback(Handler.java:836)
	at android.os.Handler.dispatchMessage(Handler.java:103)
	at android.os.Looper.loop(Looper.java:203)
	at android.app.ActivityThread.main(ActivityThread.java:6251)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
--------- beginning of crash

یه چنین خطایی رو اینجا هم مطرح کردن: https://stackoverflow.com/questions/31035222/iab-helper-is-not-set-up-cant-perform-operation-queryinventory

لطفا درستش کنین، من یه خورده عجله دارم برنامم همینجوری مونده و به خاطر این انتشارش ندارم! ممنونم

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ویرایش: احتمالا مشکل از خود مایکت بوده، امروز باز تست کردم درست کار کرد و مشکلی نداشت. اون یکی برنامه هاهم که میگفتم تست کردم دیروز درست کار میکردن احتمالا از نسخه قدیمی کتابخونه مایکت استفاده میکنن.

بنابراین دوستان باخیال راحت استفاده کنن.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .
توجه: مطلب ارسالی شما پس از تایید مدیریت برای همه قابل رویت خواهد بود.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.

×
  • اضافه کردن...