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

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


amze

سوال

با سلام

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

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

با تشکر:bigsmile:

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

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

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

در در 1397/02/30, 23:10:13، amze گفته است :

با سلام

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

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

با تشکر:bigsmile:

سلام

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

''سطرزیرجهت پرداخت درون برنامه ایران اپس است IranApps
 AddPermission(ir.tgbs.iranapps.permission.BILLING)

بعدش کتابخانه مربوطه رو فعال میکنید (billing-helper)

بعدش مطابق مثالهای زیر اکتیویتی های مربوطه رو با مشخصات محصول خودتان پر میکنید ، 

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

''محتویات اکتیویتی  SkuActivity 

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region

Sub Process_Globals  
	Dim lstSkus As List
	Dim pSku As Product
	
	Dim pardakht_Va_adame_pardakht_skuActivity As Int 
End Sub

Sub Globals
	Dim bmBillingManager As BillingManager
	Dim lvSku As ListView
	Private Panel1 As Panel
	Private Button1 As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("SkuLayout")
	bmBillingManager.init("bm")	
End Sub
'دریافت اطلاعات محصول درون پرداختی برنامه 		
'BillingManager is now connected to IranApps billing service
'and we can call it to get sku details
Sub bm_onConnected() 'بررسی پشتیبانی از پرداخت درون برنامه ایران اپس وبه پرداخت ایران اپس متصل می شود
 Msgbox ("دستگاه شما پرداخت درون برنامه ایران اپس را پشتیبانی می کند","")
	Dim lstSku As List
	lstSku.Initialize
	'اسم محصولاتت رو پشترسرهم دراین آرایه زیر قرار بده ("product 1", "product 2", "product 3", "product 4")
	lstSku.AddAll(Array As String("testinapp"))
	bmBillingManager.getSkuDetails(lstSku)
	
End Sub
'billing manager was unable to connect to IranApps billing service
'one reason could be that IranApps isn't installed on user's device
Sub bm_oncantconnect(strError As String)
	Msgbox(strError, "خطا:اتصال با پرداخت درون برنامه ای ایران اپس قطع شد")	
End Sub

'billing manager has lost its connection to IranApps billing service
Sub bm_onconnectionlost()
	Msgbox("connection lost", "title")
End Sub

'skud details are received from IranApps
'show items in a list
Sub bm_onGotSkus(lstSku As List )
	lstSkus = lstSku
	
 	lvSku.Initialize("lvSku")
	
	lvSku.SingleLineLayout.ItemHeight = 100dip
	
	For i = 0 To lstSku.Size - 1
		Dim pSku = lstSku.Get(i) As Product

	lvSku.Color= Colors.Blue
	
		'lvSku.AddSingleLine("ProductID: " & pSku.productId & Chr(10) ) ' لیست کردن  محصولات درون پرداختی' 
		Dim name_mahsol_ba_shenase As String
		If pSku.productId = "testinapp" Then name_mahsol_ba_shenase = " آموزش الفبای فارسی "
			'lvSku.SetLayout(10%x,35%y,60,70)
		'خرید آموزش حروف الفبای فارسی 
			lvSku.AddSingleLine(":خرید " & name_mahsol_ba_shenase  )
	Next 
	
  
	Panel1.AddView(lvSku, 10%x, 14%y,85%x, 20%y)

'Msgbox (pardakht_Va_adame_pardakht_skuActivity ,pardakht_Va_adame_pardakht_skuActivity )		
 If pardakht_Va_adame_pardakht_skuActivity <>1 Then 
 	
 '	 pSku = lstSkus.Get(0)  ''''درصورت وجود چندمحصول این سطر حذف شود
'	 StartActivity(BuyActivity)''''درصورت وجود چندمحصول این سطر حذف شود
	 End If
 
End Sub

'this methos calls when getSkuDetail fails
Sub bm_onFailedGettingSkus(error As InAppError)  'در صورتی که BillingManager نتواند اطلاعات محصولات را بگیرد این متد فراخوانی میشود.
           Msgbox(error.Message&"    اتصال به اینترنت خود را بررسی کنید           ", "خطایی که مانع دریافت محصول می شود از این قرار است::")
        End Sub
'Sub bm_onFailedGettingPurchases(error As InAppError)'در صورتی که BillingManager نتواند لیست محصولات خریده شده را بگیرد این متد فراخوانی میشود.
 '         Msgbox(error.Message, "برنامه نتوانست لیست محصولات را دریافت کند")
 'End Sub
 
'starts buy proccess
Sub lvSku_ItemClick (Position As Int, Value As Object)
	pSku = lstSkus.Get(Position)
    StartActivity(BuyActivity)
	
	
End Sub
Sub Button1_Click
	ExitApplication
End Sub

---------

''محتویات اکتیویتی BuyActivity
#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region

Sub Process_Globals
Dim pard1000 As Int
Dim kharid2 As String
Dim pardakht_Va_adame_pardakht As Int 
End Sub

Sub Globals
	'These global variables will be redeclared each time the activity is created.
	'These variables can only be accessed from this module.
	Dim bmBillingManager As BillingManager
	Dim lblTitle As Label
	Dim lblPrice As Label
	Dim btnBuy As Button
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("BuyLayout")
	bmBillingManager.init("bm")
	'shows title and price of sku given skuActivity 
	Dim pSku = SkuActivity.pSku As Product
	lblTitle.Color =Colors.White
    lblPrice.Color =Colors.White
	lblTitle.text="نام محصول" & " : " & pSku.title
	lblPrice.text="قیمت محصول" & " : " & pSku.price & " تومان"	
End Sub

'billing manager was unable to connect to IranApps billing service
'one reason could be that IranApps isn't installed on user's device
Sub bm_oncantconnect(strError As String)
	Msgbox(strError, "1خطا")
End Sub

'billing manager has lost its connection to IranApps billing service
Sub bm_onconnectionlost()
	Msgbox("اتصال با سرویس پرداخت قطع شد", "title")
End Sub

'executes buy proccess
Sub btnBuy_Click
   	bmBillingManager.buyProduct(SkuActivity.pSku.productId, "", False)
End Sub

'this method calls when buy proccess done succesfully
Sub bm_onBuyProductSucceed(purchase As PurchaseItem)
	Activity.TitleColor =Colors.Blue
	Msgbox(purchase.productId & " پرداخت باموفقیت انجام شده است", "Product Id")			
				
	'نوشتن پرداخت وایجادفایل جدیدنمایانگرپرداخت در گوشی
		If pard1000 <>1 Then	
		   File.WriteString(File.DirInternal ,"payok.txt",(pard1000) )
         End If 
    pard1000=1
	
	kharid2 =Msgbox2(" "," ","","از خرید شما متشکرم","",LoadBitmapSample(File.DirAssets,"pardakht1.jpg",45%y,45%x))
		
SkuActivity.pardakht_Va_adame_pardakht_skuActivity  = 1
	ExitApplication
End Sub
		
'  متد EventName_onBuyProductFailed:
'  اگر خرید با موفقیت انجام نشود این متد فراخوانی خواهد شد.
Sub bm_onBuyProductFailed(error As InAppError)
          ' Msgbox(error.Message, "خطا درپرداخت رخ داده است وپرداخت انجام نشد")
		   'ToastMessageShow("پرداختی انجام نشده است",True)

'If error.values= "BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWEND"	Then
If error.ErrorCode= 7 Then
''''' این ارور 7 یعنی اگر قبلا پرداخت شده باشد
		If pard1000 <>1 Then	
		   File.WriteString(File.DirInternal ,"payok.txt",(pard1000) )

         End If 
    pard1000=1
	
	kharid2 =Msgbox2(" "," ","","از خرید شما متشکرم","",LoadBitmapSample(File.DirAssets,"pardakht1.jpg",45%y,45%x))
		
SkuActivity.pardakht_Va_adame_pardakht_skuActivity  = 1
	ExitApplication
End If


If pard1000=0 Then	
	
	kharid2 =Msgbox2(" "," ","","؟متاسفانه پرداخت انجام نشد!","",LoadBitmapSample(File.DirAssets,"pardakht0.jpg",45%y,45%x))
	pard1000=0
	'Msgbox(error,error.ErrorCode)
	End If
	
SkuActivity.pardakht_Va_adame_pardakht_skuActivity  = 1
ExitApplication
End Sub

Sub Button1_Click

SkuActivity.pardakht_Va_adame_pardakht_skuActivity  = 1

	 If pard1000=0 Then
	 kharid2 =Msgbox2(" "," ","","متاسفانه پرداخت انجام نشد!","",LoadBitmapSample(File.DirAssets,"pardakht0.jpg",45%y,45%x))
		pard1000=0
		End If 
ExitApplication
End Sub

_______

''محتویات اکتیویتی PurchaseActivity

#Region  Activity Attributes 
	#FullScreen: False
	#IncludeTitle: True
#End Region

Sub Process_Globals
	Dim lstPurchases As List
	Dim pdPurchase As PurchaseData
	Dim getPurchasesLogin As Boolean
End Sub

Sub Globals
	Dim bmBillingManager As BillingManager
End Sub

Sub Activity_Create(FirstTime As Boolean)
	Activity.LoadLayout("PurchaseLayout")
	bmBillingManager.init("bm")		
End Sub

'this method calls when connected to iranApps Service
'then calls getPurchase method
Sub bm_onConnected()
	bmBillingManager.getPurchases()
End Sub

'this method calls when iranApps service connection failed
Sub bm_oncantconnect(strError As String)
	Msgbox(strError, "Error")
End Sub

Sub bm_onconnectionlost()
	Msgbox("connection lost", "Error")
End Sub

'if getPurchase execute successfully
'shows list of purchase 
Sub bm_onGotPurchases(lstPurchase As List)
	lstPurchases=lstPurchase
	Dim lvPurchase As ListView
 	lvPurchase.Initialize("lvPurchase")
	lvPurchase.SingleLineLayout.ItemHeight = 50dip
	
	For i = 0 To lstPurchase.Size - 1
		Dim pdSku = lstPurchase.Get(i) As PurchaseData
		lvPurchase.AddSingleLine("ProductID: " & pdSku.sku  )
	Next 
	
    Activity.AddView(lvPurchase, 0, 0, 100%x, 100%y)
End Sub

'this methos calls when getPurchase failed
Sub bm_onFailedGettingPurchases(error As InAppError)
	If error.ErrorCode = 9 Then
		getPurchasesLogin = True
		bmBillingManager.loginUser()
	Else
		Msgbox(error.Message, "Error")
	End If
End Sub

Sub bm_onLoginSucceed()
	'if getPurchases needed login now that user is login do it
	If getPurchasesLogin = True Then
		bmBillingManager.getPurchases()
	Else 'if consumeProduct needed login now that user is login do it
		bmBillingManager.consumeProduct(pdPurchase.PurchaseItem.purchaseToken)
	End If
End Sub

'for getPurchases and consumeProduct
'user should Logging In IranApps
'this method is called when login process is failed
Sub bm_onLoginFailed(error As InAppError)
	Msgbox(error.Message, "Error")
End Sub

Sub lvPurchase_ItemClick (Position As Int, Value As Object)
	pdPurchase = lstPurchases.Get(Position)
	bmBillingManager.consumeProduct(pdPurchase.PurchaseItem.purchaseToken)
End Sub

'calls if purchase consume done successfully
Sub bm_onConsumeSucceed()
	Msgbox("Consume Succeed", "Consume")
End Sub

Sub bm_onItemNotOwned()
	Msgbox("Item Not Owned", "Error")
End Sub

'calls when consume proccess faild 
Sub bm_onConsumeFailed(error As InAppError)
	If error.ErrorCode = 9 Then
		bmBillingManager.loginUser()
	Else
		Msgbox(error.Message, "Error")
	End If
End Sub

برای مشاهده لیست محصولات این اکتیویتی رو فعال کنید:

StartActivity(SkuActivity)

وبرای مشاهده لیست محصولات خریداری شده اکتیویتی زیر رو فعال کنید:

StartActivity(PurchaseActivity)

 

__ با همینها مشکلتون برطرف میشه ان شاءالله و نیازی به جاگذاری کلید RSA دربرنامه هم ندارید .

موفق باشید

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

بایگانی شده

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

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

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