رفتن به مطلب
  • 0

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


saeed120m

سوال

سلام

یه دیتابیس داریم با مثلا یه ستون به اسم premium

مطالبی که در دیتابیس هستن 5تای اول با premium    با مقدار 1   باز هستن و قابل استفاده

بقیه مطالب با premium   با مقدار 0 قفل هستن

حالا ما باید بعد از پرداخت درون برنامه و خرید تمام مطالب 0 رو به 1 تغییر بدیم تا باز بشن

فعلا کاری به آپدیت دیتابیس بعد از خرید نداریم

 

 

 

تو اکتیویتی main اینارو داریم

Sub Process_Globals
Private key As String ="*********"
	
	Dim PREMIUM As String = "premium"
	
	Dim oBillingManager As BillingManager3           
End Sub


Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
		Log("Initialize billing manager")
		oBillingManager.Initialize("BillingManager", key)
		
		oBillingManager.DebugLogging = True 
	End If
End Sub


Sub Button_premium_Click
	oBillingManager.RequestPayment("premium", "inapp", "Developer Payload")
End Sub


Sub BillingManager_PurchaseCompleted (Success As Boolean, Product As Purchase)
	If Success=True Then
		ToastMessageShow("خرید انجام شد.",False)

	Else If Success=False Then
			ToastMessageShow("خرید انجام نشد" , True)
	End If
End Sub

 

بعد از تو main  با یه دکمه میریم تو اکتیویتی onvanha

 

اونجا هم اینارو داریم

 

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("l_onvan")
	afrazlab.DatabesCopy(s,"nafas.db",True)

	onvanMatnha(ScrollView_onvanha)
End Sub


Sub onvanMatnha(ScroollNeme As ScrollView)
	afrazlab.DatabesCopy(s,"nafas.db",True)
	Activity.Color=0xFF586A60

	cur=s.ExecQuery("select * from tbl_xxx WHERE mozo = 2 ")

	Dim h As Int=1%y

	For i =0 To cur.RowCount-1
		cur.Position=i

		Dim p1 As Panel
		p1.Initialize("p1")
		p1.LoadLayout("l_panel_onvan")
		p1.Color=0xFF586A60

		ImageView_onvan.Bitmap=LoadBitmap(File.DirAssets,cur.GetString("aks")&".png")
		Label_onvan.Text=cur.GetString("onvan")
		Label_onvan.TextColor=Colors.Black
		Label_onvan.TextSize=20
		Label_onvan.Gravity=Bit.Or(Gravity.CENTER,Gravity.RIGHT)
		Label_onvan.Tag=cur.GetInt("id")

		Dim b As Bitmap
		b.Initialize(File.DirAssets,"fav"&cur.GetString("fav")& ".png")
		Image_fav.Bitmap=b
		Image_fav.Tag=cur.GetString("id")

		ani.ScaleCenterIn("ani",1500)
		ani.StartAnim(Image_fav)

		Dim aniInt As Int
		aniInt=Rnd(0,1)
		If aniInt=0 Then
			ani.ScaleFromRight("ani",1500)
			ani.StartAnim(p1)
		Else
			ani.ScaleFromLeft("ani",1500)
			ani.StartAnim(p1)
		End If
	
		ScroollNeme.Panel.AddView(p1,0,h,100%x,100%y)
		h=h+14%y
	
	
	Next

	ScroollNeme.Panel.Height=h+5%y
	
End Sub





Sub Panel_onvan_Click
	
End Sub

Sub Label_onvan_Click                    'اینجا مشکل دارم

	If cur.GetInt("premium") = 0 Then
		ToastMessageShow("باید نسخه کامل را خریداری کنید",True)
		
	End If
	
	
	If cur.GetInt("premium") = 1 Then
	
	Dim l As Label
		l=Sender
		idonvan=l.Tag
		StartActivity(matnha)
		
	End If
	
	
End Sub

 

با کلیک کردن Label_onvan  اگر premium  برابر 1 بود که مطلب باید باز بشه

ولی اگر 0 بود پیغام (خرید کن) رو بده و مطلب رو باز نکنه

 

با این کدها هر کدوم از مطالب رو که کلیک میکنم (باید نسخه کامل را خریداری کنید)  نشون میده .

چه premium اون مطلب 1 باشه چه 0 باشه

چیکار کنم که شرط دوم درست کار کنه

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

7 پاسخ به این سوال تاکنون داده شده است

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

این مقدار رو لوگ بگیرید ببینید مقدارش چی باید باشه و الان چی هست!

cur.GetInt("premium") 

این مقدار در واقع همیشه اخرین مقدار خوانده شده از دیتابیس توش ذخیره شده

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

یعنی هر لیبل به صورت جداگانه داخل خاصیت تگش نوع permium رو ذخیر کنه

موقع کلیک میاد چک میکنید که label.tag اگر 0 بود پیغام خرید کن رو بده وگرنه اگر 1 بود مثلا مطلب رو باز کنه

 

Sub Label_onvan_Click         
      Dim l As Label
		l=Sender
		pr=l.Tag
		
	If pr = 0 Then
		ToastMessageShow("باید نسخه کامل را خریداری کنید",True)
		
	
	
	else
	  
	 startactivity(matnha)
		
	End If
	
	
End Sub

 

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

یا روش دوم اینکه مثلا قبل عمل میکنید داخل اسکرول ویوو

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

بعد شرط میذاری

اگر 0 بود فلان کار کن اگر 1 بود فلان کار کن !


Sub Label_onvan_Click         
      Dim l As Label
		l=Sender
		pr=l.Tag
		
cur=s.ExecQuery("select * from tbl_xxx WHERE id = pr ")
cur.possition=xx 'مشخص کردن محل خواندن از دیتابیس

	If cur.getint("permium") = 0 Then
		ToastMessageShow("باید نسخه کامل را خریداری کنید",True)
		
	
	
	else
	  
	 startactivity(matnha)
		
	End If
	
	
End Sub

 

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

ممنون بابت راهنماییتون

برای اولین کد که نوشتید

لوگ گرفتن که گفتید رو بلد نیستم

-----------------------

هر کد رو کلی کم و زیاد کردم ولی به هیچ صراطی مستقیم نمیشن

 

ممنون میشم بیشتر راهنمایی کنید

 

یه سوال

اون pr چی هست

 

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

در در 1397/10/06, 21:58:41، saeed120m گفته است :

لوگ گرفتن که گفتید رو بلد نیستم

منظورشون از لاگ گرفتن اینه که بدونید مقدارش چی هستش.به این صورت

Log(cur.GetInt("premium"))

هر دو روشو راحت میتونی استفاده کنی

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

همون روش اولو استفاده کنین

اون pr  هم یک متغییر Int  هست.

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

ممنون بابت راهنمایی دوستان

ولی من هر کاری میکنم درست نمیشه

فقط این پیام رو میده

(باید نسخه کامل را خریداری کنید)

 

کل اکتیویتی رو براتون میزارم

لطفا کد درست و کامل رو بهم بدید

اینم عکس دیتابیسم

میخام اگه premium    یک بود مطلب باز بشه اگه 0 بود پیغام بده

New_Bitmap_Image.bmp

 

 

#Region  Activity Attributes 
	#FullScreen: false
	#IncludeTitle: false
#End Region

Sub Process_Globals
	Dim s As SQL
	Dim idonvan As String
	Dim pr As Int
End Sub

Sub Globals
	Dim cur As Cursor
	Private ListView1 As ListView
	Dim ani As ICOSScaleAnimation


	Private ScrollView_onvanha As ScrollView
	Private Label_onvan As Label
	Private ImageView_onvan As ImageView
	Private Panel_onvan As Panel
	Private Image_fav As ImageView
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("l_onvan")
	afrazlab.DatabesCopy(s,"nafas.db",True)

	onvanMatnha(ScrollView_onvanha)


End Sub

Sub Activity_Resume

End Sub

Sub Activity_Pause (UserClosed As Boolean)

End Sub


Sub Activity_KeyUp (KeyCode As Int) As Boolean
	If KeyCode=KeyCodes.KEYCODE_BACK Then
		StartActivity(attari)
		Activity.Finish
	End If
	
	
End Sub



Sub onvanMatnha(ScroollNeme As ScrollView)
	afrazlab.DatabesCopy(s,"nafas.db",True)
	Activity.Color=0xFF586A60

	cur=s.ExecQuery("select * from tbl_khavas WHERE mozo = 2 ")

	Dim h As Int=1%y

	For i =0 To cur.RowCount-1
		cur.Position=i

		Dim p1 As Panel
		p1.Initialize("p1")
		p1.LoadLayout("l_panel_onvan")
		p1.Color=0xFF586A60

		ImageView_onvan.Bitmap=LoadBitmap(File.DirAssets,cur.GetString("aks")&".png")
		Label_onvan.Text=cur.GetString("onvan")
		Label_onvan.TextColor=Colors.Black
		Label_onvan.TextSize=20
		Label_onvan.Gravity=Bit.Or(Gravity.CENTER,Gravity.RIGHT)
		Label_onvan.Tag=cur.GetInt("id")

		Dim b As Bitmap
		b.Initialize(File.DirAssets,"fav"&cur.GetString("fav")& ".png")
		Image_fav.Bitmap=b
		Image_fav.Tag=cur.GetString("id")

		ani.ScaleCenterIn("ani",1500)
		ani.StartAnim(Image_fav)

		Dim aniInt As Int
		aniInt=Rnd(0,1)
		If aniInt=0 Then
			ani.ScaleFromRight("ani",1500)
			ani.StartAnim(p1)
		Else
			ani.ScaleFromLeft("ani",1500)
			ani.StartAnim(p1)
		End If
	
		ScroollNeme.Panel.AddView(p1,0,h,100%x,100%y)
		h=h+14%y
	
	
	Next

	ScroollNeme.Panel.Height=h+5%y
	
End Sub





Sub Panel_onvan_Click
	
End Sub

Sub Label_onvan_Click
'	Dim l As Label
'	l=Sender
'	idonvan=l.Tag
'	StartActivity(matnha)

	Log(cur.GetInt("premium"))
	
	Dim l As Label
	l=Sender

	pr=l.Tag
	
	If pr = 1 Then
	
		StartActivity(matnha)
		
	Else
	
		ToastMessageShow("باید نسخه کامل را خریداری کنید",True)
	
	End If
	
End Sub

Sub Image_fav_Click

	Dim img As ImageView
	img=Sender


	cur=s.ExecQuery("select * from tbl_khavas ")
	cur.Position=img.Tag

	If cur.GetInt("fav")=1 Then
		Dim b As Bitmap
		b.Initialize(File.DirAssets,"fav0.png")
		img.Bitmap=b
		s.ExecNonQuery("UPDATE tbl_khavas SET fav =0 WHERE id ="&cur.GetInt("id"))

	Else if cur.GetInt("fav")=0 Then
		Dim b As Bitmap
		b.Initialize(File.DirAssets,"fav1.png")
		img.Bitmap=b

		s.ExecNonQuery("UPDATE tbl_khavas SET fav =1 WHERE id ="&cur.GetInt("id"))

	End If

End Sub

 

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

سلام

کدهات تقریبا درسته الا یه جا که رو ویرایش کن

جایی که به تگ لیبل مقدار دادی

باید فیلد premium  رو به تگ لیبل میدادی که شما اشتباها رفتی فیلد id  رو نسبت دادی

توی تابع onvanMatnha شما این کد رو تغییر بده :

Label_onvan.Tag=cur.GetInt("id")

بجاش اینو بنویس :

Label_onvan.Tag=cur.GetInt("premium")

 

بدرود

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

بایگانی شده

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

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

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