رفتن به مطلب

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


mehrabmmp

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

سلام به همه دوستان و خسته نباشید :53:

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

اولش یه تشکر ویژه از اقا پژمان میکنم :heart: که روش بدست اوردن توکن رو بهمون گفتن :53:

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

خب اول اینو بگم که اولین بارمه دارم پست اموزشی میزارم :oops: اگه سوتی چیزی دادم یا اشتباهی شد ببخشید

خب بریم اموزش :

اول به یک هاستی سروری یه چیزی نیاز داریم که توش یه فایل php بسازیم تا بتونیم باهاش access code رو دریافت کنیم

میریم سایت بازار ورود میکنیم میریم پنل توسعه دهندگان بعد قسمت امور مالی و فروش میریم قسمت api بازار که نوشته client جدید که روش با محبت کلیک میکنیم یه دیالوگ میاد که نوشته Redirect URI (همون لینک فایل php)

میریم داخل هاست یا سرورمون تو بعد قسمت File Manager و تو پوشه public_html یه فایل php به اسم مثلا test میسازیم و توش چیزی نمینویسیم

بعد لینکشو برمیداریم که به این شکل میشه

http://اسم دامینتون/test.php

بعد میایم لینک رو اینجا میدیم

Untitled.png

 

دقت کنید که حتما باید اولش از http:// استفاده کنید بعد ارسال رو میزنیم :)

بعد اون یه کلاینت جدید به اینصورت اضافه میشه

Untitled.png

بعد اون طبق گفته بازار به این لینک میریم و مقادیرمون رو جایگزین میکنیم

https://pardakht.cafebazaar.ir/devapi/v2/auth/authorize/?response_type=code&access_type=offline&redirect_uri=<REDIRECT_URI>&client_id=<CLIENT_ID>
<REDIRECT_URI>    ======> اینجا لینک فایل پی اچ پی تون رو میزارید
<CLIENT_ID>       ======> و اینجا کلاینت ایدی که تو پنل بازار دریافت کردیم رو میزارید

و enter بعدش یه صفحه میاد که توش مینویسه مجوز دسترسی که تاییدش میکنید

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

Untitled.png

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

https://pardakht.cafebazaar.ir/devapi/v2/auth/token/

مثال

https://pardakht.cafebazaar.ir/devapi/v2/auth/token/کدمون

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

Untitled.png

 

تو فیلد اول این متن رو وارد میکنید :  authorization_code

تو فیلد دوم کدی که دریافت کردیم 

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

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

و اخری هم لینک فایل php ایمون

بعد هم که اون دکمه رو میزنیم :)

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

{
   "access_token": "GWObRK06KHLr8pCQzDXJ9hcDdSC3eV",
   "token_type": "Bearer",
   "expires_in": 3600000,
   "refresh_token": "yBC4br1l6OCNWnahJvreOchIZ9B6ze",
   "scope": "androidpublisher"
}

اولی کدی هستش که بخاطرش اینهمه سختی کشیدیم دومی هیچ سومی زمان اعتبار این کد به ثانیه که تقریبا میشه 41 روز بعد این مدت این کد میسوزه (:oops:) و دیگه کار نمیکنه و با کد چهارمی که داده همون رفرشن توکن باید از این لینک یکی دیگه بگیرین و استفاده کنین

https://pardakht.cafebazaar.ir/devapi/v2/auth/token/

و 

grant_type = refresh_token       =====> اینبار این متن رو میدین
client_id =                      =====> کلاینت ایدیتون
client_secret =                  =====> کلاینت سکرتتون
refresh_token =                  =====> و رفرش توکنی که دریافت کردید

و بعد این یه اکسس توکن دیگه بهتون میده که استفاده میکنید

 

خب کارمون اینطرف تموم شد و میریم سمت بیسیک 

 

بیسیکتون رو باز کنین :| اول نیت کنین

میریم تو کدای سمت پرداخت و من از ساب پرداختش شروع میکنم 

Sub pay_PurchaseCompleted (Success As Boolean, Product As Purchase)
	If Success Then
		Try
			Dim jo As JavaObject = Product
			Dim raw As String = jo.RunMethod("getOriginalJson", Null)
			Dim parser As JSONParser
			parser.Initialize(raw)
			Dim root As Map = parser.NextObject
			Dim packageName As String = root.Get("packageName")
			Dim purchaseToken As String = root.Get("purchaseToken")
			Dim productId As String = root.Get("productId")
			Dim accesstoken As String = "6ghOGaSdSf1QT5o6CZvaXvFCG3HlX"
			link = "https://pardakht.cafebazaar.ir/devapi/v2/api/validate/"&packageName&"/inapp/"&productId&"/purchases/"&purchaseToken&"/?access_token="&accesstoken
			Volley4.AddQueue(Volley4.CreateJsonRequest(link,Volley4.GET))
			Volley4.Start
		Catch
			ToastMessageShow("error : " & LastException,False)
		End Try
	Else
		ToastMessageShow("پرداخت انجام نشد",False)
	End If
End Sub

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

بعد یه متغییر از نوع استرینگ تعریف کردم به اسم link

مقدارش رو به اون صورت گذاشتم که شما هم باید اینکار رو بکنین

من واسه ارسال اطلاعات بجای httputils از AriaVolley اقای شاهدی استفاده کردم و دریافتش کنین و تیکشو بزنین

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

بعد دو تا ساب داریم برای اریا ولی :

Sub Volley4_OnError (Error As String)
	ToastMessageShow("لطفا برای هک برنامه تلاش نفرمایید :)",False)
End Sub

Sub Volley4_OnJsonResponse (JSON As AriaJsonObject)
	If JSON.Get("purchaseState") = 0 Then
		ToastMessageShow("پرداخت انجام شد",False)
	Else
		ToastMessageShow("پرداخت انجام نشد !!",False)
	End If
End Sub

که به اینصورت هستش

وقتی که ما درخواست رو فرستادیم یه جیسون به اینصورت میده

{
   "consumptionState": 1,
   "purchaseState": 0,
   "kind": "androidpublisher#inappPurchase",
   "developerPayload": "something",
   "purchaseTime": 1414181378566
}

اولی واسه پرداختای مصرفی یا غیر مصرفیه چیه از اوناس که هر بار میتونی پرداخت کنی مثل خرید سکه از فروشگا واسه بعضی برنامه ها که هرچقدر بخوای میتونی بخری که اگه مقدار این صفر باشه یعنی طرف مصرفش کرده یعنی خریده اگه 1 باشه که نه

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

بعد میایم تو ساب 

Sub Volley4_OnJsonResponse (JSON As AriaJsonObject)
	If JSON.Get("purchaseState") = 0 Then
		ToastMessageShow("پرداخت انجام شد",False)
	Else
		ToastMessageShow("پرداخت انجام نشد !!",False)
	End If
End Sub

میگیم اگه دومی برابر 0 بود توست بده خریده اگه نبود بگو نخریده :)

بعد یه ساب اضافه داریم واسه ارور

Sub Volley4_OnError (Error As String)
	ToastMessageShow("لطفا برای هک برنامه تلاش نفرمایید :)",False)
End Sub

طبق گفته بازار اگه طرف خرید رو انجام بده اون مقادیر برگشته میشن و ساب قبلی اجرا میشه اما اگه طرف نخره و با مثلا لاکی پچر پچ کنه وقتی ما میایم درخواست رو میفرستیم یه صفحه ارور 404 یا یه اروری تو شکل جیسون میاد که اریا ولی خطا میگیره یعنی میگه این صفحه وجود نداره و ساب ارورش اجرا میشه که ما میایم تو این ساب میگیم که نخریدی هک کردی ( که یه روز الاف اینجا بودم :|)

 

 

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

به اینصورت میتونین جلوی اون بزغاله هارو بگیرین

و یه نکته دیگه هست درباره access token که بعد مدتی میسوزه و باید یکی دیگه بگیرین پس به اینصورت نمیشه که هر 40 روز یه بار اپدیت بدین برنامتونو و کد جدید رو توش قرار بدین

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

یه قابلیتی هست به نام Cron Job که تو هر هاست یا سروری است که میاد یه لینکی یا یه چیزی رو تو یه زمان معینی اجراش میکنه مثلا میگین هر هفته یه بار یه لینک پی اچ پی رو اجراش کن . میتونین با این قابلیت بیاد بگید که هر 40 روز یه بار بیا اجرا کن و یه اکسس توکن جدید بگیر و جایگزین کن ( که باید کدای php ایشو بنویسین ) یا اینکه خودتون بیاین هر 40 روز دستی بگیرین و جایگزین کنین که امیدوارم یادتون بمونه و اگه با کرون جاب خواستین اموزششو تو همین پست میزارم

 

و فک کنم دیگه تموم شد و چیزی نموند

موفق باشید

 

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

سلام داداش. بابت زحمتتون ممنون ولی من بیشتر سردرگم شدم :unknown: 

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

بهتره یکی از دوستان زحمت ویدئو کار رو بکشن. حداقل نود و پنج درصد سوالات مرتفع میشه. 

 

پ ن : 

شرمنده خودم نمیتونم ویدئو رو بسازم چون خداییش هیچی سر در نیاوردم 

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

در 11 ساعت قبل، vistamobile گفته است :

سلام داداش. بابت زحمتتون ممنون ولی من بیشتر سردرگم شدم :unknown: 

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

بهتره یکی از دوستان زحمت ویدئو کار رو بکشن. حداقل نود و پنج درصد سوالات مرتفع میشه. 

 

پ ن : 

شرمنده خودم نمیتونم ویدئو رو بسازم چون خداییش هیچی سر در نیاوردم 

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

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

تشکر از آقا مهراب بابت آموزش.

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

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

در ۱ ساعت قبل، AMiN.M7892 گفته است :

تشکر از آقا مهراب بابت آموزش.

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

امین جان زحمتشو بکش. تچکر فراوان

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

در در 1395/12/11, 21:56:18، mehrabmmp گفته است :

Sub pay_PurchaseCompleted (Success As Boolean, Product As Purchase)

سلام

لطفا یکم بیشتر در مورد این ساب بالا توضیح بدید و اینکه accesstoken دقیقا چیکار میکنه؟

این روش چند درصد امنه و قابل اعتماد هست؟

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

از دوستان کسی میتونه به صورت خلاصه و جامع روند پرداخت درون برنامه ای رو توضیح بده؟ (فقط روند پرداخت درون برنامه ای) حالا بحث امن کردن پرداخت جدا.

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

در 18 ساعت قبل، Mehdi.s گفته است :

سلام

لطفا یکم بیشتر در مورد این ساب بالا توضیح بدید و اینکه accesstoken دقیقا چیکار میکنه؟

این روش چند درصد امنه و قابل اعتماد هست؟

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

از دوستان کسی میتونه به صورت خلاصه و جامع روند پرداخت درون برنامه ای رو توضیح بده؟ (فقط روند پرداخت درون برنامه ای) حالا بحث امن کردن پرداخت جدا.

سلام

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

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

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

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

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

در در 1395/12/15, 13:06:27، Mehdi.s گفته است :

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

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

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

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

در 8 ساعت قبل، mehrabmmp گفته است :

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

ببخشید، من این کتابخونه رو دارم  ( InAppBilling3 v 1.11 )

کار میکنه برای این پروژه یا حتما باید خرید کنم از فروشگاه؟

بیزحمت کدای php این  قسمت Cron Job رو هم بدید که خودکار token جدید بگیره و جایگزین کنه؟

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

این پروژه ای که آموزش دادید بعد 41 روز توکن چی میشه؟؟

چیکار کنیم برای این بخش؟؟

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

  • 1 ماه بعد...
  • 9 ماه بعد...

سلام قسمت کد json as ariajsonobject چرا واسه من قرمزه؟

یعنی میگه کتاب خونه ای رو فراموش کردی؟

و کتاب خانه ariavolley هم فعاله

میشه راهنماییم کنید

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

  • 1 ماه بعد...

سلام من چند روز پیش  دو برنامه داشتم  پرداخت درون برنامه ای به خوبی کار می کرد ولی دیروز ssl رو برای سایتم فعال کردم و متاسفانه کار نمیکنه.مشکل چیه

ببینید پرداخت انجام میگیره پول هم کم میشه و در تراکنش های بازار هم نشون میده ولی موقع چک کردن پرداخت مقدار خالی برمیگردونه

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

بایگانی شده

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

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

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