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

درون پرداخت


fileman

سوال

سلام.

من یه برنامه ساختم که میخوام فقط مثلا 10 آیتمش فعال باشه و بقیه بعد از پرداخت درون برنامه فعال بشن. همه ی کاراش هم کردم فقط یه مشکلی که برخوردم اینه که چجوری میشه این پرداخت رو یه بار انجام داد . یعنی وقتی که کاربر یک بار خرید کرد ، برای دفعات بعد دیگه لازم نباشه خرید کنه و اون آیتم ها براش فعال باشه؟!

چیزی که به ذهن خودم رسید این بود که اومدم گفتم وقتی که کاربر پرداخت رو انجام داد بیا یه فایل تکست بساز و اگه دوباره روی اون آیتم کلیک کرد اگه اون فایل تکست وجود نداشت یعنی دفعه اول هست و صفحه پرداخت رو باز کن و اگه فایل وجود داشت یعنی قبلا خرید کرده پس آیتم رو براش باز کن. :write:

ولی این ترفند جواب نداد؟!!!!!!!! :S:roomNemishe:

لطفا کمک کنید.

خیلی ضروریه.

ممنون :)

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

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

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

دوست عزیز کد 

bil.ConsumeProduct(Product)

رو بردارید تا محصول مصرفی شناخته نشه و پرداخت رو فقط یه بار بشه انجام داد

من این کد رو برداشتم.تا حدودی درست شد. حالا وقتی که یک بار پرداخت انجام میشه ، برای بار دوم که روی همون آیتم لیست ویو کلیک میشه دوباره این مسیج باکس نشون داده میشه :

r = Msgbox2("تنها برای یکبار و با پرداخت  500 تومان این بخش که شامل 80 ضرب المثل جدید است ، برای همیشه باز خواهد شد.","پرداخت","پرداخت میکنم","بازگشت","",Null)

ولی زمانی که روی دکمه پرداخت این مسیج باکس کلیک میشه ، پرداختی انجام نمیشه و آیتم لیست ویو باز میشه. حالا من میخوام این مسیج باکس فقط برای بار اول نشون داده بشه و دفعه های بعدی نشون داده نشه!

دوستان کمک کنید.

ممنون :gol:

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

اگه می خوای از لیست ویو استفاده کنی

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

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

Sub ListView1_ItemClick (Position As Int, Value As Object)

	If (Position>9) And (File.Exists(File.DirInternal,".txt") =False) Then
    Msgbox("نیاز به فعال سازی کامل برنامه","توجه")
    Else
    Main.khandan=Value
    StartActivity()
    End If
	
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

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

کد های مربوط به آیتم لیت ویو:

If Position = 1 Then
	Dim r As Int
	Dim p1 As PhoneId
	If File.Exists(File.DirInternal,"bil.txt") =  True Then
	StartActivity("sms2")
	Else
	r = Msgbox2("تنها برای یکبار و با پرداخت  500 تومان این بخش که شامل 80 ضرب المثل جدید است ، برای همیشه باز خواهد شد.","پرداخت","پرداخت میکنم","بازگشت","",Null)
	If (r = DialogResponse.POSITIVE) Then
	bil.RequestPayment("masal","inapp",p1.GetDeviceId)
	Else If (r = DialogResponse.CANCEL) Then
	Return
	End If
	End If
	End If

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

Sub bil_PurchaseCompleted (Success As Boolean, Product As Purchase)
	Dim r As Int
	If Success = True Then
	If Product.ProductId = "masal" Then
	File.WriteString(File.DirInternal,"bil.text","")
	r = Msgbox2("با تشکر از خرید شما ، میتوانید وارد این بخش شوید","ورود","ورود","بازگشت","",Null)
	If (r = DialogResponse.POSITIVE) Then
	ToastMessageShow("لطفا چند لحظه صبر کنید.",False)
	StartActivity(sms2)
	Activity.Finish
	Else If (r = DialogResponse.CANCEL) Then
	Return
	End If
	End If
	bil.ConsumeProduct(Product)
	End If
End Sub
لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوست عزیز کد 

bil.ConsumeProduct(Product)

رو بردارید تا محصول مصرفی شناخته نشه و پرداخت رو فقط یه بار بشه انجام داد

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

درود

دوستان در ضمن تاپیک که آقای شاهدی پاسخش رو دادن  نکته ای عرض کنم:

ایجاد یک فایل تکست اصلا امن نیست!

چرا؟

چون اگه گوشی روت باش کاربر خیلی راحت میتونه بیاد و اون فایل رو ایجاد کنه!

پس چیکار کنیم؟

http://answercenter.ir/topic/6018-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D9%85%D9%84-%D8%A7%D9%85%D9%86%DB%8C%D8%AA-%D8%AF%D8%B1%D9%88%D9%86-%D9%BE%D8%B1%D8%AF%D8%A7%D8%AE%D8%AA/

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

بایگانی شده

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

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

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