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

اتصال برنامه اندرویدی به درگاه پرداخت ePayBank.ir

epaybank  10 سال پیش  6 سال پیش
+32 0

با سلام و احترام خدمت دوستان عزیز برنامه نویس

اینجانب مدیر سایت ePayBank.ir هستم. با توجه به درخواست یکی از دوستان برنامه نویس مبنی بر ارایه درگاه پرداخت درون برنامه ای، خواهشمندم که نیازمندیهای خود در مورد این موضوع را اعلان فرمایید تا زیرساخت به بهترین صورت ممکن و در عین حال ساده ترین حالت ممکن برای برنامه نویسان عزیز فراهم شود.

در صورتیکه فایل راهنمای گام به گام در زمینه درگاه پرداخت درون برنامه ای دارید ، اینکه چگونه و چه چیزهایی را پاس می کنید و در ازای پارامترهای پاس شده به سایت چه جواب و answer ای تمایل دارید دریافت کنید.

در صورتیکه توانایی نوشتن کتابخانه اندرویدی نیز در مورد همین موضوع دارید لطفا اعلان فرمایید تا از توانایی های شما عزیزان بهره مند شویم و سیستمی منعطف و بدور از سیاست های مارکت های اندرویدی ایرانی فراهم سازیم تا برنامه نویس اندرویدی مجبور نباشد بفرض مثال 40% از مبلغ برنامه خویش را به این مارکت ها در ازای تسویه حساب ارایه دهد.

درگاه پرداخت ePayBank.ir بصورت وب سرویس برنامه نویسی شده است و درخواستهای HTTP POST / HTTP GET و SOAP را پردازش میکند که سورس کد اینجانب برای برنامه نویسان جاوا و اندرویدی بصورت HTTP ارایه شده بود یعنی برنامه نویس در داخل برنامه خویش یک درخواست HTTP برای اتصال به یک سایت فراهم میساخت که در نهایت میتوانست به درگاه بانکی متصل شود و پرداخت را انجام دهد.

در صورتیکه تمایل به همکاری خصوصی نیز داشته باشید میتوانید با ePayBank.ir در ارتباط باشید .

موفق و پایدار باشید

مرتضی صاحب

+1 0
واقعا جا داره از شما تشکر کنم، ممنون به خاطر این همکاری بزرگ (10 سال پیش)
0 0
+ (ـمشترکـ) (10 سال پیش)
0 0
بسیار از شما بسیار ممنونیم. هرکاری از دستمون بر بیاد دریغ نمیکنیم (10 سال پیش)
0 0
تشکر ویژه من (10 سال پیش)
0 0
سلام راهی که مارکتها برای پرداخت درون برنامه ای استفاده میکنند معمولا کپی برداری از گوگل پلی است و مستنداتش موجوده ولی من پیشنهاد میکنم با توجه به اینکه وب سرویس Http را آماده دارید از همین طریق به راحتی میتوانیم در اندروید هم استفاده کنیم. ولی یک کلاس Helper برای کار با اون باید بنویسیم که در قالب یک فایل jar به کاربران داده بشه و برنامه نویس درگیر کار خاصی برای پرداخت نشه موفق باشید (10 سال پیش)
0 0
مشترکـــــ (10 سال پیش)
0 0
این لینک هم میتونه به دوستانی که میخوان مستقیما به درگاه بانک متصل بشن مفیده لینک (6 سال پیش)
 برای این سوال 14 پاسخ وجود دارد.
پاسخ به سوال 
حامد  10 سال پیش
+10 0

با سلام خدمت تمام کاربران سایت

من برای مدیریت سایت ePayBank.ir پیام دادم و ایشان قبول کردند که سیستم پرداخت درون برنامه ای را برای ما پیاده سازی کنند تا ما از زیر ظلم مارکت های ایرانی بیرون بیاییم

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

ممنون

0 0
در خدمتم حامد جان (10 سال پیش)
0 0
خیلی خیلی ممنون (10 سال پیش)
0 0
خیلی ممنون، واقعا خوشحال شدم از این خبر، عالیه (10 سال پیش)
0 0
اینکه عالیه از یک طرف حق برنامه نویس بیشتر حفظ میشه چون واقعا درصد مارکتها بالاست! از یک طرف هم سیستم پرداختت مستقل از مارکت باشه انعطاف برنامه بیشتر میشه بدون ویرایش هرجا میشه گسترش داد :) (10 سال پیش)
0 0
چند تا سایت مثل این سایت وجود داره که میتونه خدماتی که این سایت قصد ارائه اونارو به برنامه نویس ها داره رو ساپورت کنه ؟برای اولین بار این امکان به وجود اومده ؟. فقط همینجا این کارو قبول کرده یا به چند جا دیگه هم درخواست داده بودی hamedjj جان؟ (10 سال پیش)
0 0
من چند جا درخواست دادم که فعلا فقط epaybank جواب من را داد و پیگیری کرد .... دستش درد نکنه (10 سال پیش)
0 0
مرسی حامد جان و مرسی epayBank واقعا همچین چیزی لازم بود (10 سال پیش)
0 0
تشکر فقط نحوه همکاری را بفرمایید (10 سال پیش)
پاسخ به سوال 
uncocoder  10 سال پیش
+9 0

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

  • عدم توانایی نظارت بر برنامه ها
  • شکایت کاربران از برنامه شما
  • خطا در پرداخت در برنامه شما
  • و ...

می تواند دلایل بسته شدن برنامه شما باشد ( حالا چه دروغ و چه راست )

پس این موضوع در کل پسندیده است ولی ممکن است در شرایط «بازار» برای شما مفید نباشد و حتی ضرر هم داشته باشد.

چنانچه از این نظر برای دوستانی که همفکری می کنند و مدیریت محترم ePayBank.ir مشکلی نباشد، ادامه این تاپیک مفید به نظر می رسد.

0 0
استاد برای کسی که بخاید مستقل عرصه کنه فکر نکنم مشکلی وجود داشته باشه (10 سال پیش)
0 0
درسته، مطمئناً برنامه های مستقل از مارکت بازار مشکلی ندارند. اما دقت کنید که اگر بخواهید در بازار هم عرضه کنید یا باید دو نسخه با دو پرداخت درون برنامه ای متفاوت بسازید یا اینکه خیالتان از سمت بازار راحت باشد. (10 سال پیش)
0 0
درسته همن کار را میکنیم ..... دو تا apk با سیستم پرداخت جدا درست میکنیم .... فقط برنامه را در گوگل پلی قرار بدیم به اندازه بازار کاربر ایرانی روزانه بهش سر میزنند (10 سال پیش)
0 0
مگه میشه الان در گوگل پلی هم برنامه گذاشت ؟ (10 سال پیش)
0 0
طاهر جان قبلا هم میشد. بحث سر برنامه های غیر رایگان بود (10 سال پیش)
0 0
یعنی الان با یک اکانت ایرانی میشه برنامه رایگان در گوگل پلی ثبت کرد یا اینکه نیاز به ف شکن هست (10 سال پیش)
0 0
نه که ایرانی .... میتونی در هنگام انتشار برنامه کشور ایران را انتخاب کنی که دانلودش برای آی پی ایرانی ها هم باز بشه ... اکانت باید fake باشه.. این چیزا مسئله خاصی نیست (10 سال پیش)
0 0
سری به License Agreement اندروید مارکت هم بزنید، بد نیست. شاید نظرتون عوض شد :) (10 سال پیش)
0 0
قبلا زیاد سر میزدم ..... چی شده ؟ (10 سال پیش)
0 0
من هم منظورم همون قبلن هست. کلاً گوگل شاید باز بشه یا رفع فیلتر بشه یا شده باشه، اما صراحتاً در License Agreement نوشته که اگر مشخص بشه توسعه دهنده برنامه از کشورهای ممنوعه ( که ما هم شاملش می شیم ) باشه، برنامه از مارکت حذف میشه و اگر پولی باشه تمام فروشش به نفع گوگل ضبط میشه. حالا چون پرداخت درون برنامه ای هست، پس احتمالاً فقط حذف میشه و این خودش خیلی بده دیگه. حالا از کجا می فهمند ایرانیه؟ اینقدر بیکارن؟ مطمئناً اطلاعاتی که شما بهشون میدید، مثل اینکه برای کشور ایران باز باشه! یا لیست IP هایی که دانلود می کنن، یا گزارش دشمنان شما در خصوص ایرانی بودنش. این رو توجه کنید که قویترین BOT های دنیا رو گوگل نوشته تاحالا :) (10 سال پیش)
0 0
کاملا درسته (10 سال پیش)
0 0
اتفاقا دوستان من برنامه ها خودشون را در گوگل پلی منتشر کردند اونم به زبان فارسی و توضیحات فارسی .... هنوز هم که هنوزه بعد از چندین ماه هیچ مشکلی براشون پیش نیامده .... دیگه اون bot باید خیلی ابله باشه که این برنامه که همه چیزش فارسیه را تشخیص نده ... خود گوگل به تمام برنامه نویسها اعلام کرد که کشور ایران را جزو لیست دانلود برنامه های خود اضافه کنید ... مشکلی پیش نمیاد (10 سال پیش)
0 0
برنامه های رایگان مشکلی ندارن چون بحث تجاری نیست. ما هم تحریم تجاری هستیم. پس وقتی برنامه ای پرداخت داخلش انجام میشه گوگل بهش حساس میشه. (10 سال پیش)
0 0
من به شخصه اینطور فکر نمیکنم ... گوگل با سیستم پرداخت خودش کار داره و رو برنامه هایی که از سیستم پرداخت درون برنامه ای خودش استفاده کنند حساس میشه که البته ما که نمیتونیم از این سیستم استفاده کنیم ..... حالا مشکلی نیست امتحان میکنیم ببینیم چی میشه .. اول بزارین سیستم پرداخت درست بشه تا بعد دربارش صحبت میکنیم ... اول هم خودم برنامه میزارم تو گوگل پلی (10 سال پیش)
پاسخ به سوال 
مجتبی یگانه  10 سال پیش
+6 0

سلام 

این روش پرداخت روش مفیدی هست ، مثلا دیگه نباید نگران این باشیم که برنامه ی غیر رایگان ما ، در اینترنت به رایگان عرضه شده ، چرا که یک کاربر اون رو از مارکت دانلود کرده و در وبسایت خودش آپلود کرده (حامد چند وقت پیش لینک داده بود به چند تا از  این وبسایت ها  ! )

اما در مورد شیوه ی پرداخت  :

حجم کتابخانه کم باشه !
راه اندازی کم دردسر باشه !

الان برای پرداخت درون برنامه ای بازار ، هزار تا آموزش اینور اونور هست اما هنوز که هنوزه ، خیلی ها مشکل دارن !

به نظرم من پرداخت به این شکل باشه خوبه (اگه با دیزاین پترن بیلدر باشه که بهترهم میشه) 

epaybank.requestPayment(SellerID,CleintID,ProductID,MyWebView,listener) 

اگر قبلا کاربر برای اون محصول خرید انجام داده بود و محصول از جنس غیر مصرف شدنی بود ، به عنوان پاسخ Token پرداخت قبلی برگشت داده بشه + وضعیت خرید که میشه مثلا 1 یعنی موفق در غیر اینصورت باید پرداخت انجام بشه 

وقتی شما برنامه اندرویدی برای فراخوانی intent اون برای پرداخت ندارید ( مثل بازار که صفحه ی پرداخت اش باز میشه ! )  پس طبعا باید پرداخت رو از طریق صفحه ی وب انجام بدید ! ، این کار در اندروید باید در WebView انجام بشه که برای برنامه نویس قابل کنترل باشه ، کتابخانه ی شما باید یک Listener برای رویداد onPurchasFinished (اتمام عملیات ، موفق یا ناموفق ! ) داشته باشه ، پس باید به این شکل تعریف میشه  :)

epaybank.onPurchaseFinishedListener listener = new epaybank.onPurchaseFinishedListener(){

	@Override
	public void onPurchaseFinished() {
		int Result = epaybank.getPurchaseResult(clientID,ProductID);
		switch(Result){
			case 1:
			
			break;
			
			....
			....
		}
	}
			
};

این چیزی بود که تو چند دقیقه به ذهن من بی سواد رسید و فکر کنم راه اندازیش برای کاربر ساده باشه ، اما بازم نیاز به برسی داره که آیا عملی هست یا نه ( و یادمون باشه که کار نشد نداره D: ) 

موفق یاشید

پاسخ به سوال 
uncocoder  10 سال پیش
+15 0

این کار باید خیلی اصولی انجام بشه. و باید یک API صحیح درست کنیم. قول نمی دم اما سعی میکنم که API رو براش Design کنم و حتی Lib برای Android رو هم بسازم.

برای مشخص تر شدن قضیه لطفاً دوستان یک لیست از امکانات بازار در پرداخت درون برنامه ای رو بذارن که همش رو API کنیم.

حتی جزئی ترین امکانات رو هم بذارید. لطفاً تو نظر همین جواب درج کنید. اگر هم چند تا نظر نیاز بود هیچ ایرادی نداره.

0 0
like +++++++++ مهم ترین چیزش امنیتش هست .پیشنهاد میدم تا حد امکان طوری طراحی بشه که انجام مهندسی معکوس روش سخت باشه. کدهای API ای که درست می کنید نباید عمومی بشه و تا میتونید نزد خودتون محفوظ نگه داریدشون . ما فقط در حد پیشنهاد یه پیشنهاداتی میدیم. (10 سال پیش)
0 0
اتفاقاً بر عکس، کد های API باید منتشر بشن که همه بتونن استفاده کنن. مهم این هست که در هسته قابل نفوذ نباشه، هسته هم فقط سمت سرور هست. (10 سال پیش)
0 0
اگر API عمومی نشه چطور در برنامه ازش استفاده کنیم؟! (10 سال پیش)
0 0
ببخشید منظورم لایبراری بود (احتمالا لایبراری jar برای توسعه دهندگان فراهم میکنید یا نه این که مثل کدهای پرداخت درون برنامه ای بازار کد ها رو منتشر میکنید ؟). میشه لایبراری jar برای توسعه دهندگان فراهم کرد و یه سری مستنداتی برای استفاده ازش در اختیار توسعه دهندگان قرار بگیره.(چون لایبراری های jar رو فکر کنم میشه obfuscate کرد که مهندسی معکوس روش سخت تر میشه).حالا نمی دونم اطلاعاتم زیاد نیست فقط در حد پیشنهاده. ببخشید javac منظورم لایبراری jar بود.خیلی برنامه ها وسرویس ها دیدم که اینطوری کار میکنن. (10 سال پیش)
0 0
کل این مجموعه در حقیقت گزارش گیری از سروره که خیلی امنیتی نیست (10 سال پیش)
0 0
استاد توانستید یک آموزش از این پرداخت درون برنامه بذارید (10 سال پیش)
0 0
البته اگه کد ها رو منتشر کنید برنامه نویسان بیشتر اعتماد می کنن. (10 سال پیش)
پاسخ به سوال 
epaybank  10 سال پیش
+6 0

با سلام و عرض ادب و احترام خدمت دوستان گرامی

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

نحوه ارسال پارامتر ها به چه صورت بهتر است باشد ؟

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

گزینه دوم : پردازش درخواستهای POST یا GET شده بر روی HTTP به آدرس خاصی در ePayBank.ir

گزینه سوم :  پیشنهاد شما 

نحوه پردازش جواب  ارسالی از ePayBank.ir به منظور استعلام وضعیت پرداخت به چه صورت میخواهید باشد؟

گزینه اول ) بعد از پرداخت موفق / ناموفق برنامه با استفاده از پروتکل SOAP درخواست استعلام را به وب سرویس ارسال نماید و در نهایت با توجه به پاسخ وب سرویس نسبت به ارایه خدمات خویش به کاربر اقدام نماید.

گزینه دوم ) بعد از پرداخت موفق یا ناموفق ، با استفاده از درخواست POST یا GET بر روی HTTP به آدرس خاصی در ePayBank.ir جواب را در برنامه اندرویدی پردازش کند که آیا پرداخت موفق بوده است یا خیر ؟

سوال سوم ) بنده سه پارامتر یونیک فعلا در ذهن دارم که برنامه اندرویدی به جانب ePayBank.ir پاس کند. لطفا در انتخاب پارامتر سوم مرا راهنمایی نمایید اینکه کدام گزینه میتواند راحت تر باشد و در ثانی یونیک بودن را نیز لحاظ فرمایید.

الف ) کدپذیرندگی + کد انحصاری اختصاصی برنامه نویس برای بخشی از برنامه خویش در ePaybank.ir + شماره موبایل کاربر

ب) کد پذیرندگی + کد انحصاری اختصاصی برنامه نویس برای بخشی از برنامه خویش در ePaybank.ir + کد imei گوشی

ج) کد پذیرندگی + کد انحصاری اختصاصی برنامه نویس برای بخشی از برنامه خویش در ePaybank.ir + کد انحصاری مشتری که برنامه نویس برایش در ePaybank.ir تعریف کرده است  تا مشخص شود که خدمات برای چه کسی ارایه شده است و یا نشده است؟ 

با پارامتر سوم که یکتا می باشد میخواهیم بدانیم که مثلا مشتری 1 برای اپلیکیشن 1 پذیرنده خاص پرداخت کرده است یا نه؟

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

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

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

موفق باشید

ePayBank.ir

0 0
پیشنهاد من ارسال درخواستهای POST به آدرسه + خروجی Json (10 سال پیش)
0 0
شماره موبایل کاربر جزو حریم خصوصی کاربر شناخته میشه و باید از طریق خودش وارد بشه که جالب نیست. چندین نفر میتونن یه شماره تکراری رو وارد کنن (10 سال پیش)
0 0
پارامتر سوم باید از طریق واسط اندرویدی که نوشته میشه تولید بشه. کد یونیک گوشی و یا اگه مقدور نبود GUID انحصاری برای کلاینت (10 سال پیش)
0 0
در مورد صفحه وب شدنیه. منظور ارجاع کاربر به صفحه بانکه؟ شما مجوز پرداخت بدون نمایش صفحه بانک رو دارید؟ (10 سال پیش)
پاسخ به سوال 
uncocoder  10 سال پیش
+9 0

در جواب دوست عزیز ePayBank:

JSON یا XML :

استفاده از JSON بر XML - SOAP به چند دلیل بهتر است:

  • JSON بسیار کوتاه تر است و Optimize ( از نظر پهنای باند ) است
  • JSON برای برنامه نویسی Javascript که بسیار در این مورد مفید است، Native است
  • JSON به راحتی در اندروید/جاوا Parse می شود
  • JSON کمتر دچار خطا می شود
  • JSON به راحتی در Java/Android قابل ساختن است

 

UUID چیست ( جواب یکی از سئوالات ) :

کد یکتایی است که توسط ما قابل تولید است. توجه داشته باشید که:

  • شماره سیم کارت در ایران قابل برداشتن نیست ( به آن دسترسی نداریم ).
  • کد IMEI همیشه وجود ندارد ( در خیلی از Tablet ها )
  • کد Android ID هم خیلی جاها وجود ندارد.
  • MAC ADDRESS قابل جعل شدن است

پس UUID ترکیب این سه عبارت است ( به هر شکل ترکیب شود مهم نیست ):

imei-android_id-mac_address

حتی می تواند ترکیب Encode شده غیر قابل بازگشتی مثل sha1 آن باشد.

 

امنیت :

برای امنیت حتماً باید از الگوریتم های مناسب مثل AES برای Encode کردن خروجی از Client و خروجی از Server استفاده شود. الگوریتم AES پیشنهاد می شود چرا که iv می تواند همان UUID باشد. به این شکل محتوای خارج شده از Client و Server به هیچ عنوان قابل جعل نیست ( چون IV در تغییر است )

 

POST, GET, JSON, XML کدام به عنوان ورودی استفاده شود؟

دو گزینهPOST, GET مردود هستند، چون قابل ویرایش و تفکیک پذیری هستند.

XML هم به دلایل بالا ضعیف تر از JSON عمل می کند.

نیاز به امنیت اطلاعات داریم پس AES Encoded JSON پاسخ خوبی است.

 

از صفحه وب استفاده شود؟

تا آنجا که من می دانم، هیچ بانکی اجازه پرداخت بانکی از IP غیر از خود را نمی دهد و این یعنی باید وارد صفحه بانک شویم ( IP بانک ) ، پس تنها راه حل استفاده از WebView برای نمایش صفحه پرداخت بانک است. منتها از آنجاییکه ارتباط پذیرنده ها می تواند با بانک ها متفاوت باشد و قرار باشد پرداخت از طریق درگاه پذیرنده واسطه صورت گیرد، می شود بدون ورود به درگاه بانک، پرداخت صورت گیرد.

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

 

صحت تراکنش و ورود:

نیاز نیست که ابتدا کاربر پرداخت کننده یا صاحب وجه حضور خود را اعلام کند و پرداخت صورت گیرد. بلکه در یک ارسال، صاحب وجه، پرداخت کننده ( مشخصاتش ) و بسته قابل خرید، به سرور ارسال می شود و منتظر خروجی خواهیم ماند. چنانچه خروجی بدست آید و دارای خطا نباشد، دوباره باید درخواستی مبنی بر دیدن خروجی توسط پذیرنده وجه ( صاحب وجه ) انجام شود ( که می شود نرم افزار ). در این شرایط کد یکتای خرید که در مرحله قبل برگشته است و مبلغ ( برای جلوگیری از جعل مبلغ ) به سرور ارسال می شود. دوباره منتظر پاسخ خواهیم بود. چنانچه جواب مثبت باشد، تراکنش ( از هر دو طرف درگاه و پذیرنده ) مورد تأیید قرار گرفته.

مطمئناً امکان ارسال اطلاعات اضافی دلخواه برنامه و برگشت آن نیاز است که می تواند توسط redirectUrl ها انجام شود.

 

0 0
"POST, GET, JSON, XML کدام به عنوان ورودی استفاده شود" رمز نگاری Json درست. ولی دیتا از برنامه به آدرس سرور یا پست میشه و ریسپانس رو سرور تشکیل میده یا Url رو گت میکنیم و ریسپانس تشکیل میشه. این دو تا ورب های اصلین. درسته؟ (10 سال پیش)
0 0
منظور من ارسال اطلاعات به شکل مرسوم POST بود که مردود است. البته روش سومی هم هست که منظور من نبود ( آنهم Stream ). اما در نهایت GET که نمی شود چون URL محدود است. POST می شود اما به این شکل: data: all fields as AES Encoded JSON (10 سال پیش)
0 0
نحوه رمز نگاری باید با کد سرور ساید یکسان باشه. یه سوال پیش میاد. اگه api رو غیر از سرویس دهنده کسی بنویسه، مشکلات حقوقی احتمالی بعدی رو نویسنده api باید به عهده بگیره یا درگاه پرداخت؟ فکر کنم ما فقط نیازمندی ها رو باید مشخص کنیم و طراحی api رو دوستان تو epaybank به عهده بگیرن (10 سال پیش)
0 0
هیچ مشکلی در منتشر شدن اطلاعات رمز نگاری هم نیست حتی. رمز نگاری این اطلاعات به این منظور انجام می شود که: 1-اطلاعات قابل Sniff نباشد. 2-با تغییر خصوصیات درخواست نشود از عمد یا سهو درخواست صحیحی به سرور ارسال کرد. 3-برای بازگشایی رمز نیاز به اطلاعات سوم ( Key ) وجود دارد که در اختیار سرور قرار دارد و همه پذیرندگان می توانند آنرا پس از ثبت نام شدن نرم افزار/فرد در سیستمشان بصورت اختصاصی به فرد مورد نظر اطلاع دهند. (10 سال پیش)
0 0
راستی در خصوص اینکه چه کسی API رو بنویسه، من از خودام هست که شخص دیگری پیدا بشه و بنویسه، اما به این مورد حتماً باید توجه بشه که کوچکترین تغییری در API ( همه API های دنیا ) باید حساب شده باشه. پس در ابتدای امر برای تولیدش خیلی باید وسواس به خرج داد. (10 سال پیش)
0 0
پس اگه موافقید فوکوس رو روی پارامتر ها و نوع درخواست های مورد نیاز بزاریم - مرحله بعد این موارد باشه (10 سال پیش)
0 0
دقیقاً کلیاتی که در بالا نوشته شد، بستر پیاده سازی بود، اما چی قراره روش پیاده شه، اول از همه نیاز به لیست امکانات پرداخت درون برنامه ای مثل «بازار» داره. پس باید اینها رو لیست کرد. (10 سال پیش)
0 0
یه چیزی من بگم؟ : الان ما(منظورم شما) این سیستم رو راه انداختیم ، بعد یه نفر اومد از لحاظ ظاهری چنین سیستمی راه انداخت ، و برنامه ای رو منشتر کرد تو اینترنت ، حالا با این سیستمی که راه انداخته بیاد اطلاعات مربوط به کارت بانکی و اینجور چیزا رو بدزده ، حالا دردسرش میمونه واسه ما(شما) ، و کاربر باید چجوری اعتماد کنه؟ بازم به نظرم میرسیم به چیزی مثل بازار که مرجع دریافت این برنامه ها باشه ، اشتباه فکر میکنم؟ (10 سال پیش)
0 0
این درگاهها معادل غیر بومی زیاد دارن و توجیه شدن. اطلاعات کارت بانکی هم طبق سوال دوستان در مورد وب ویو به نظر میاد از طریق وب سایت بانک انجام بشه (هنوز مشخص نکردن) (10 سال پیش)
0 0
تشکر البته من کوچکتر از آنم که نظر بدم اما این تایپک موافقم (10 سال پیش)
پاسخ به سوال 
epaybank  10 سال پیش
+4 0

با سپاس از دوستان گرامی

لطفا برای راهنمایی دقیق اینجانب اعلان نمایید که واقعا دسترسی به شماره سیم کارت و Imei امکان پذیر نیست؟

http://www.learn-android-easily.com/2013/05/getting-imei-number-and-other-details.html

http://www.yogeshblogspot.com/getting-phone-numberimei-number-and-sim-card-id-in-android/

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

پیاده سازی api طبق درخواست دوستان طرف ePayBank.ir خواهد بود و پیاده سازی کتابخانه اندرویدی برای پوشش برنامه نویسان اندرویدی بنظرم بهتر است طرف یکی از دوستان برنامه نویس باشد چون در سمت تیم فنی ما اولویت مهم بودن روی  پارامتر ورودی و خروجی و امنیت و نحوه تولید آنها چه در سمت client و چه در سمت سرور می باشد.

لطفا امکانات بازار را نیز برای اینجانب اعلان نمایید. اینکه پرداخت ماهیانه بصورت اشتراکی نیز وجود خواهد داشت؟

0 0
شماره سیم کارت دست اپراتورهاست ، یعنی اونا این امکان رو محدود کردن تو کشورمون ، IMEI هم مربوط به سیم کارت هستش یعنی اگه دستگاهی سیم کارت نخوره IMEI هم نخواهد داشت (10 سال پیش)
0 0
ممنونم بابت پاسخ سریع. تبلت که سیم کارت خور نباشد چگونه میتواند به اینترنت و خود صفحه بانک دسترسی داشته باشد؟ (10 سال پیش)
0 0
سیم کارت نمیخوره، دیگه معلول که نیست. wifi (10 سال پیش)
0 0
درسته ممکن سیم کارت هم بخوره اما فقط برای Data یعنی SMS و 3G . به قول دوستمون Wifi هم داریم دیگه. کلاً Tablet ها دو نوع بودن، Tablet Wifi و Tablet 3G که جدیداً من Tablet Z2 سونی خریدم که Voice هم داره. (10 سال پیش)
0 0
درسته. wifi از خاطرم رفته بود. هدف از کد سوم این هست که مثلا مشتری ادعا کرد که پرداخت کرده ام ولی برایم سرویس ارایه نشده است و پول برگشت داده شود از طریق این کد بتوان متوجه شد که آیا این شخص پرداخت داشته است یا خیر؟ راه حل ساده و غیرقابل جعل بدین صورت بود که برنامه پیامکی به سازنده اش ارسال کند و سازنده براساس شماره پیامک موبایل که دریافت می کند یک کد منحصر به فرد برای آن شخص تولید کند و ارسال کند. حال در خورد برنامه نیز صحت آن کد براساس الگوریتم تعیینی برنامه نویس چک شود و جانب درگاه پرداخت ارسال شود و همچنین در درگاه پرداخت نیز بررسی شود که ایا چنین کدی توسط پذیرنده تعریف شده است یا خیر و برای چه موبایلی می باشد؟ اگر راه حل بهتری سراغ (10 سال پیش)
0 0
لطفا روال بازار را برای این کار توضیح دهید که اگر مشتری یا همان دانلود کننده نرم افزار. سرویس نگیرد راه حلش به چه صورتی است؟ آیا مبلغ برگشت داده می شود ؟ برچه اساسی این مبلغ برگشت داده می شود و .... (10 سال پیش)
0 0
استناد به SMS برای صحت پرداخت، عجیبه، چون خود SMS مشکلات فراوان دارد. در مورد لیست کسانی که پرداخت کرده اند هیچ نیازی به این کارها نیست، قبل از کم شدن پول از حساب، شما رکورد را در بانکتان ثبت می کنید، پس اگر پولی کم شود حتماً رکورد ثبت شده است. بعد هم که طبق نوشته من، وقتی Verify شود یعنی صاحب نرم افزار هم آنرا دریافت کرده است و قبل از هر کاری باید آنرا داخل بانکش ثبت کند. منبغ استناد می شود بانک سرور شما. اگر هم تا 24 ساعت یا 48 ساعت Verify نشد ( که معمولاً زیر 10 ثانیه باید Verify شود ) شما باید پول را به حساب پرداخت کننده برگردانید. این کاملاً مرسوم است. (10 سال پیش)
0 0
تا اونجایی که من میدونم اگر مشتری سرویس نگیرد مبلغی برگشت داده نمیشود .... چون برنامه توسط بازار تست میشود و بدون مشکل انتشار پیدا میکند (10 سال پیش)
0 0
اوکی. چون آقا حامد بیان کرده بودند که مثلا پرداخت کرد و سپس برنامه را حذف کرد. بعد از نصب مجدد نباید پرداخت مجددی انجام شود چون قبلا پرداخت صورت گرفته است. پارامتر سوم بیشتر برای این موضوع هستش که ما برنامه نویس با استناد بدان تشخیص دهد که این شخص قبلا برای استفاده کردن از نرم افزار پرداخت موفق داشته است یا خیر؟ البته میتوان رویکرد دیگری نیز داشت اینکه اگر حذف کرد مجدد باید لایسنس استفاده را پرداخت کند که این امر دیگر احتیاجی به پارامتر سوم نخواهد داشت. باز اگر راه حل بهتری بنظرتان می رسد لطفا بیان نمایید تا مورد بحث قرار گیرد. ممنون (10 سال پیش)
0 0
خیلی ساده است، می شود خرید تعداد نسخه برای هر ایمیل ثبت شود. یعنی هر شخص مشخصه اش می شود ایمیلش. این هم در هر برنامه ای قابل پیاده سازیست. اگر گوشی هم عوض شود کار می کند. (10 سال پیش)
0 0
بازار هم بر اساس حساب کاربری عمل میکنه، ولی این نوع پرداخت ها حداقل تو وب سایت ها بر اساس حساب کاربری خود وب سایت انجام میشه. یعنی درگاه هیچ دخالتی تو تولید کد نداره. حالا اگه بنا باشه پرداخت من با یه ایمیل تایید بشه، خوب بقیه پرداختها رو دیواس های دیگه هم با همین ایمیل تایید میشه (10 سال پیش)
0 0
یا یه واسطه برای ثبت حسابهای کاربری لازمه که میشه خود بازار یا این کد نباید توسط کاربر تولید بشه (شماره موبایل یا ایمیل) (10 سال پیش)
0 0
بنده یک پیشنهاد بهتر و غیرقابل جعل دارم من بفرض مثال کاری ندارم که این client تبلت هست یا گوشی و کاری % من فقط کد پذیرندگی و کد خرید و مبلغ را دریافت میکنم بصورت وب سرویس و یا HTTP و یا هر روش دیگری. در نهایت بعد از اینکه کاربر به صفحه وب بانک مراجعه کرد و پرداخت را انجام داد یا نداد درگاه پرداخت ePayBank.ir یک کد رسید 20 رقمی یکتا تولید می نماید. برنامه نویس در برنامه خویش این کد رسید را دریافت می کند و در بخشی از گوشی که میتواند حافظه داخلی یا خارجی باشد تحت عنوانی که خودش مشخص می کند ذخیره می نماید. برای اینکه متوجه شود که کد رسید پرداخت کرده است یا خیر؟ کافیست کد رسید را برای ePaybank.ir بهمراه کدپذیرندگی و مبلغ ارسال کند و اگر پیغام تاییدیه را دریافت کرد خدمات خویش را ارایه دهد. این روش به هیچ عنوان قابل جعل نیست زیرا کد پذیرندگی در سیستم درگاه پرداخت ePayBank.ir یونیک هست و در ثانی ما کاری نداریم که شما در یک بخش برنامه پرداخت وجه دارید یا در چند بخش از برنامه خویش. برای ما مهم نتیجه تراکنشهای پرداخت می باشد که به برنامه اعلام کنیم. فلذا دوستان میتوانند با عضویت در درگاه پرداخت ePayBank.ir و دریافت کد پذیرندگی یا MerchentID عملیات اتصال به درگاه بانکی را در برنامه های خویش فراهم آورند. کافیست مستندات زیر را مطالعه فرمایید. epaybank.ir/help.pdf epaybank.ir/weblog.pdf در وب سرویس جدید که راایه خواهد شد برنامه نویس در برنامه خویش محتویات آدرس خاصی از ePayBank.ir را که در هنگام برگشت کد رسید فقط تولید کرده است را خواهد خواند و سپس در گوشی یا تبلت یا هر device دیگری با روش های خاص خویش رمزنگاری و رمزگشایی خواهد کرد و سپس کافیست استعلام با متد وریفای بگیرد. بهمین سادگی. در مورد اینکه email بعنوان شناسه تایید عنوان شد نیز طبق فرمایشات آقای حسین زاده روی Device های دیگر نیز با همین ایمیل پرداخت کننده برنامه های بازار قابل نصب می باشند و عملا این باگ بازار هست. (10 سال پیش)
0 0
راستش شما ها خودتون استادید و حتما راه حل منظقی رو پیدا خواهید کرد ، اما منم یه نظری دارم که در سرویس های گوگل دیدم ! ، برنامه نویس برنامه اندرویدی برای استفاده از سرویس های گوگل ابتدا باید فرایند ثبت دستگاه کاربر رو انجام بده ! ، اما نکته ی جالب اینجاست : حتی اگر 100 بار با 100 سیم کارت یا شبکه ی مختلف ( اما دستگاه یکسان ) درخواست ثبت دستگاه بدیم ، همیشه کد واحدی برای اون دستگاه تولید میشه ، به نظر میرسه این کد شماره ی سخت افزار خاص و غیر قابل تعویضی باشه (چون گوگل کارش درسته D: ) مثلا شماره پردازنده دستگاه ، این شماره به سرور ارسال میشه ، با یک الگوریتم دائمی و یکسان یک Client ID تولید میشه ، پس ما برای هر دستگاه یک کد یکسان داریم ، کد خریدار هم که چون سمت سرور تولید میشه ، به سادگی کد واحدی خواهد بود ، محصولات کد واحدی دارند ، اما به این نیاز دارند که با دو نوع مصرف شدنی و غیر مصرف شدنی ساخته بشن ، برای محصول مصرف شدنی باید یک API جهت مصرف کردن در نظر گرفت ، مثلا خرید سوخت برای خودرو در بازی که باید سوخت مصرف شود ، اما فرضا کاربر قصد خرید همزمان 10 واحد سوخت را دارد ، پس باید بتونیم یکی یکی مصرفشون کنیم که با داشتن Token یا ProductId کار سختی نیست ، اما محصولات مصرف نشدنی هم که در هر زمان که خواستیم واسشون پرداخت داشته باشیم باید برسی بشه ، اگر قبلا خریداری شده بود ، اطلاعات خرید قبلی برگشت داده بشه ، در مورد نحوه ی پرداخت بازار ، در یک WebView (کنترل نمایش صفحات وب در اندروید ) اجرا میشه ، در هر مرحله ما میتونیم برسی کنیم ببینیم تو چه URL ای هست (برای دوستانی که تست نکردن : باید روی عکس قفل در هنگام پرداخت کلیک کرد ) ، پس برای ما هم میتونه تو وب ویو انجام بشه ، حتی میتونیم برسی کنیم مثلا وقتی به Response.php رسید ، مقدار Result رو از Header اون صفحه بخونه (تا حالا در اندروید پیاده نکردم :| ) - چیزی که لازمه دوباره بگم ، اینه که به نظرم این یونیک بودن ClientID رو خیلی سخت گرفتید ! ، ارسال SMS و.. و.. هزینه بر هست و ما نباید فراموش کنیم هدف اصلی این پروژه ، کاهش کارمزد های کلان سیستم های پرداخت هست - با تشکر (10 سال پیش)
0 0
سپاسگزارم از توجه دوستان عزیز آیا شماره پردازنده یا شماره سریال بخشی از سخت افزار گوشی یا تبلت ، امکان استخراج اطلاعات مربوطه اش در اندروید هست ؟ لطفا ویژگی های این چنینی را از نظر انعطاف پذیری برای برنامه نویس و ممکن بودن استخراج اطلاعات در تبلت و گوشی بیان نمایید. درضمن تایید پیامکی رد شده می باشد و صرفا به عنوان یک راه حل ممکن بیان گردیده شده بود. (10 سال پیش)
0 0
استخراج همچین اطلاعاتی در صورتی امکان پذیره که شما یه برنامه بر روی دستگاه طرف نصب کرده باشید که مجوزهای لازم را داشته باشه .. مثل برنامه مارکت و پرداخت هم از داخل همون برنامه مارکت انجام میشه دیگه ... با یه صفحه وب خالی که نمیشه تمام جزئیات گوشی را بدست اورد .... (10 سال پیش)
0 0
نه دیگه حامد ؛ وقتی یه لایبرری داریم ، احتمالا میتونیم به یه سری توابع دسترسی داشته باشیم - الان سرچ میکنم ! (10 سال پیش)
0 0
بله ، دقیقا این کد واحد در دستگاه اندرویدی تعبیه شده ! لینک (10 سال پیش)
0 0
اینجوری که باید امنیت اندروید را بریزی تو سطل آشغال که (10 سال پیش)
0 0
خوب شد گفتم مجوز : (10 سال پیش)
0 0
uses-permission android:name="android.permission.READ_PHONE_STATE (10 سال پیش)
0 0
البته دسترسی به این کد به مجوز نیاز داره ! ، نهایتا میشه به برنامه نویس گفت اون 2 خط رو به کلاس در سطح Application اش اضافه کنه ! (10 سال پیش)
0 0
خوب من که اطلاعات درباره سایت ندارم ولی یه صفحه پرداخت چطور میتونه به این اطلاعات دسترسی داشته باشه ... این که کد اندرویده (10 سال پیش)
0 0
بیا چت توجیهت کنم D: (10 سال پیش)
0 0
ANDROID_ID seems a good choice for a unique device identifier آیا پارامتر سوم ANDROID_ID باشد مشکل یونیک بودن دستگاه ها چه در تبلت چه در گوشی حل می شود؟ (10 سال پیش)
0 0
ببینید ما یک api خواهیم ساخت که سه پارامتر از برنامه اندرویدی خواهد گرفت 1- کد پذیرندگی merchentid که epaybank.ir صادر می کند و یونیک هست 2- appcode که برنامه نویس اندروید برای برنامه خویش در epaybank.ir وارد می سازد و یونیک هست. 3- بفرض مثال ANDROID_ID که برای هر دستگاه یونیک بنظر هست . وقتی میخواهیم پرداخت نیز انجام دهیم ابتدا استعلام گرفته می شود که قبلا پرداخت نکرده باشد درخواست خرید با همنین سه پارامتر ارسال می شود و روند پرداخت طی می شود و سپس مجدد استعلام می شود که پرداخت موفق بوده است یا خیر و خدمات ارایه می شود. حال وقتی استعلام پرداخت میخواهیم بگیریم دقیقا همین سه پارامتر ارسال خواهد شد و وضعیت پرداخت در یک صفحه وب که برنامه اندرویدی باید آن را بتواند بخواند اعلان خواهد شد. (10 سال پیش)
0 0
این Android ID هم در صورتی که دستگاه Factory-reset بشه عوض میشه (10 سال پیش)
0 0
میگم آدرس بلوتوث را بگیر ... تو همه دستگاه ها هم که هست و هیچ وقت تغییر نمیکنه .... حالا نمیدونم الان دستگاه اندرویدی وجود داره که بلوتوث نداشته باشه ؟؟؟؟ فکر نمیکنم : لینک (10 سال پیش)
0 0
دستگاهی هم وجود نداره که بلوتوث نداشته باشه ... چه باحال خخخخخ : لینک (10 سال پیش)
0 0
آقا نتیجه این بلوتوث چی شد .... هر دستگاهی که سخت بلوتوث دارد یه کد استریک یونیک برای آدرس بلوتوث در خودش دارد که هیچ وقتی تغییر نمیکند .. تنها مشکل اینه که اگر دستگاهی سخت افزار بلوتوث نداشته باشد این کد را ندارد که فکر کنم هیچ دستگاهی وجود داشته باشد که بلوتوث را ساپورت نکنه (10 سال پیش)
0 0
کد دریافت : BluetoothAdapter m_BluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); String m_bluetoothAdd = m_BluetoothAdapter.getAddress(); (10 سال پیش)
0 0
دوستان همین بلوتوث خوبه (10 سال پیش)
0 0
دوستان عزیز پس پارامتر سوم رو بلوتوث انتخاب کنیم؟ همه موافق هستند؟ شماره اش چند رقمیه و فرمتش به چه صورتیه؟ (10 سال پیش)
0 0
خیلی عالیه ..... هر دستگاهی یه آدرس بلوتوث سخت افزاری جدا داره که به این شکله : 00:43:A8:23:10:F0 (10 سال پیش)
0 0
ok ما پارامتر سوم رو 25 کاراکتری یونیک تعریف میکنیم. کار برنامه نویسی چنین امکانی شروع شده است و تا اواسط مرداد ماه جهت تست خدمت دوستان عزیز ارایه خواهد شد. (10 سال پیش)
0 0
ممنون (10 سال پیش)
0 0
با سلام و احترام خدمت دوستان گرامی درگاه پرداخت درون برنامه ای طراحی - پیاده سازی شد. خواهشمندیم تست فرمایید و نظرات خویش را برای ما اعلان فرمایید. مستندات درگاه پرداخت درون برنامه ای در سایت epbank.ir که انعکاس دهنده اخبار ePayBank.ir می باشد منتشر شده است. لینک اکانت تست برای دوستان عزیز username:mycityads password:123 کد پذیرندگی : 123 رمز پذیرندگی : 321 منتظر تست دوستان عزیز هستیم. موفق و پایدار باشید مرتضی صاحب (10 سال پیش)
0 0
فعلا درگاه بانک اقتصاد نوین را بر روی درگاه پرداخت درون برنامه ای ePayBank.ir فعال ساخته ایم تا روال مشخص و تست شود و سپس درگاه های بانکی دیگر نیز در صورت نیاز به این سیستم ملحق شوند. (10 سال پیش)
0 0
به نظر من بهتره به جای خروجی متنی در صفحه callback_novin.php یک آرایه JSON از مقادیر به ما بدید (10 سال پیش)
پاسخ به سوال 
epaybank  10 سال پیش
+5 0

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

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

برای اینکه موضوع روشن تر شود میتوانید به وبلاگ mortezasaheb.mihanblog.com مراجعه نمایید و صفحه بانکی را مورد بررسی قرار دهید. درگاه پرداخت ePayBank.ir فقط تنها شماره 16 رقمی کارت یا شماره شبا را جهت انتقال وجه بهنگام تسویه حساب دریافت می کند .

پاسخ به سوال 
مجتبی یگانه  10 سال پیش
+7 0

با تشکر تمام موارد تست شد ، پشنهاد ها /  باگ ها از این قرار هستند !

1 - پنل کاربری سایت ضعیف به نظر میرسه ،

2 - من 550 تومان پرداخت کردم ( حداقل مبلغ در کافه بازار 100 تومان هست :| ، ممکنه ما بخوایم یه تصویر رو به کاربر بفروشیم  پس شاید این مبلغ مانع باشه ! ) با موفقیت انجام شد.

3 - همانطور که در کامنت بالا گفتم در صفحه ی callback_novin.php به جای یک متن فارسی که پردازش اش کار سختی هست ، بهتره یک رشته ی JSON به ما بدید ، روال فعلی که نمایش متن فارسی و در صفحه ی بعد کد مرجع هست حرفه ای به نظر نمیرسه ! ، اما اگه JSON باشه ما هم برسی می کنیم وقتی وارد این صفحه شد ، اتوماتیک روند پرداخت رو خاتمه میدیم و با پردازش رشته پیام مناسب رو به کاربر میدیم و دسترسی کاربر رو تغییر میدیم :)

4 - وقتی کاربری یک بار پرداخت داشت ، دوباره سعی کرد پرداخت کنه ، شما باید همون پرداخت قبلی رو برگردونید ، مگر اینکه خرید قبلی رو مصرف کرده باشه ، اما در روال فعلی ، دوباره به صفحه ی پرداخت هدایت میشه !

 5 - پس باید یک روال هم برای مصرف خرید در نظر بگیرید !

6 - چرا همه ی عملیات رو با یک وبسرویس انجام نمیدید ؟ ، الان یک بار درخواست به verify2.php و یک بار به payment2.php ارسال میشه ، با این حساب برای مصرف هم باید یک صفحه consume2.php در نظر بگیرید ؟! ، میشه به این شکل عملیات رو هدایت کرد که البته شاید به نظرتون مهم نباشه ، اما کار رو حرفه ای تر نشون میده :)

paymentManager.php?Action=consume
paymentManager.php?Action=pay
paymentManager.php?Action=verify

7 - ممکنه برنامه های ما دیتابیس سمت سرور نداشته باشن ، پس ما چطور این کد مرجع رو ذخیره کنیم ؟ ، در واقع نیازی نبوده ذخیره ی این کد رو به ما بسپارید ! ، ما فقط اطلاعت پذیرنده + کد یکتا ای که برای کاربر ساختیم + شناسه محصول رو بدیم ( که همه ی اینها همیشه در برنامه هستن ) و  شما بگید محصول مصرف نشده با این مشخصات داره یا نه ! ، بهتر نیست ؟

8 - یه موضوع خیلی جالب واسم این merchentpass بود ! ، آخه چرا باید پسورد رو تو برنامه ی سمت کاربر قرار بدیم ؟ ، شما باید یک API Key برای ما در نظر بگیرید (که از نظر امنیتی بهتر بود برای هر برنامه امکان تعریف محصول جداگانه باشه ، و این key برای هر برنامه ی ما متفاوت باشه ) ، اما حداقل کاری که میشه انجام داد ، اینه که شما با الگوریتم RSA برای ما public / private key تعریف کنید تا تبادل اطلاعات و روند پرداخت امن تر باشه.

9 - به نظر همه ی اینها دلیل های قانع کننده ای می اومدن که من برنامه ی اندروید اش رو ننویسم ! ، پس تا رفع اش منتظر میمونم :)

در کل از پرداخت مارکت ها بهتر بود ، اما این شاپرک این وسط پشت سر هم میپرسه ، درسته ؟ ، پرداخت همین بود ؟ مبلغ همین بود ؟ ، پراخت انجام شد ، تکمیل رو بزن و کلی گیر دیگه :)) 

اما نکته ی مثبت دیگه هم در شاپرک ، تقریبا رسپانسیو بودن اش هست :)

مجدد تشکر میکنم :)

پاسخ به سوال 
epaybank  10 سال پیش
+6 0

با سپاس از توجه و تست شما

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

پیش فرض سیستم ما مبلغ 500 تومان برای پردازش می باشد زیرا این سیاست باعث کاهش ارسال تراکنشهای تستی می گردد  که این مورد در سیستم ما به جهت حجم زیاد تستهای انجامی پذیرندگان اتخاذ شده است.

در صفحه callback_novin.php رسید جهت یادداشت کاربر اعلان می شود که بعدا بتواند پیگیری کند و البته وقتی بر روی لینک کلیک میکنید در صفحه webans.php امکان خروجی json هست، البته اگر مایل باشید روال نمایش کد رسید فارسی و ... را در سیستم حذف می نماییم و فقط خروجی json را در صفحه تولید می کنیم.

مدیریت پرداختها برعهده برنامه نویس هست نه سرویس درگاه پرداخت، چون بفرض مثال طبق مکاتبات قبلی، برنامه نویس ابتدا باید استعلام بگیرد که این device برای محصول x پرداخت کرده است یا خیر؟ در صورت عدم پرداخت ایشان را به صفحه پرداخت ارجاع دهد و وقتی پرداخت انجام شد نیز باید کد رسید را استعلام نماید و سپس سرویس مورد نظر را به کاربر ارایه دهد.

برای تفکیک پذیری موضوع پرداختهای درون برنامه ای و جلوگیری از پیچیدگی کدها و debugging آسان فایلهای جداگانه ای در نظر گرفته شده اند و  برای ما بحث امنیت و سادگی انجام تراکنشها و دقت کار مهم می باشد. بهرحال فعلا برنامه ای مبنی بر تغییر این فرایند نداریم

روال مصرف شدگی همان روال وریفای هست و Verify2.php همان استعلام می باشد.

برای هر تراکنش خرید برای هر محصولی از هر Device ای در درگاه پرداخت یک کد رسید یکتا تولید می شود و این کدی هست که بهمراه کد پویای دستگاه امکان تقلب را از بین می برد. اگر بفرض مثال شما فقط کد پذیرندگی + کد یکتا برای کاربر + شناسه محصول را ارسال نمایید و برنامه بگوید که این پرداخت کرده است یا خیر ؟ براحتی میتوان این شیوه را دور زد از طریق Decompile کردن سورس برنامه، که همان قضایای crack پیش می آید البته برای کاربران حرفه ای این مورد امکانپذیر هست،بعبارتی کافیست اطلاعات همان کاربر و همان شناسه را در سورس کد جایگذاری کرد مثل همین شیوه ای که سریال ویندوز مایکروسافت را Crack می نمایند. شما با وارد کردن شناسه سریال خاصی که قبلا پرداخت شده است ویندوز خود را اورجینال می کنید و از آن استفاده می نمایید. بهرحال تولید و ارسال کد یکتا دو طرفه باید باشد تا امنیت کافی برقرار باشد، روال اینکه کد رهگیری epaybank.ir را شما برای استعلام ارسال ننمایید نیز میتوان در سیستم لحاظ کرد یعنی فقط کد پذیرندگی ، رمز پذیرندگی، کد شناسه یکتای دستگاه و کد محصول را ارسال نمایید و روال استعلام اینگونه باشد بعبارتی در این حالت دیگر ذخیره کردن کد رهگیری را نیز نخواهید داشت و برنامه نویسی برای برنامه نویس آسان میگردد.  ePayBank.ir  برای هر تراکنش خرید در سیستم کد رهگیری یکتایی را صادر می کند و از روی کد رهگیری که صادر می شود و مشخصات دیگری که دریافت می کند بررسی می کند که این کاربر برای فلان محصول پذیرنده ای پرداخت انجام داده است یا خیر؟ در ثانی در تراکنش انجامی شما بنده مشاهده کردم که شما پارامتر شناسه یکتا برای دستگاه را بصورت پویا یا داینامیک ارسال ننموده بودید یعنی یک رشته ثابت را ارسال کرده بودید که این باعث میشد اگر به شیوه ای که شما بصورت رشته ثابت ارسال کردید پیاده سازی میشد یک کاربر پرداخت را انجام میداد و باقی کاربران سودش را میبردند مثل باگی که الان در مارکت بازار هست ولی خوب سیاست پیاده سازی ما، عین روال بازار نیست.

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

در مورد شاپرک نیز کل پرداختهای بانکی PSP های کشور با این شرکت انجام می پذیرند

در ضمن بنظرم بهتر است بجای استفاده کردن از کلمه باگ ، پیشنهاد یا انتظار عنوان میشد چون کارکرد برنامه درست هست و آوردن کلمه باگ مناسب نمی باشد.

-  در پایان از توجه شما سپاسگزارم و منتظر پاسخ شما هستم.

پاسخ به سوال 
مجتبی یگانه  10 سال پیش
+3 0

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

1- اگه حداقل کف مبلغ برای افراد با مکاتبه قابل تغییر باشه بهتر میشه ، مثلا ممکن هست که برنامه 500 تومانی روزی 10 بار نصب شود ، اما یک برنامه برای فروش محتوای دیجیتال به قیمت 100 تومان روزانه 100 بار فروش داشته باشه که در مجموع سود آور تر هست :)

2- زیاد شدن مراحل پرداخت برای کاربر خسته کننده است ، من به شخصه اطلاعات پرداخت قبض مصرفی هم یادداشت نمیکنم ، چه برسه به یه برنامه ! ، در کل نظر من این بود که JSON در همون مرحله کاربردی تر هست :)

3- شما گفتید "طبق مکاتبات قبلی، برنامه نویس ابتدا باید استعلام بگیرد که این device برای محصول x پرداخت کرده است یا خیر؟ در صورت عدم پرداخت ایشان را به صفحه پرداخت ارجاع دهد" پس ما نگفتیم که کد مرجع رو ما نگه داریم ! ، فقط گفتیم بگیم آیا کاربر user1 برای Product1 پرداخت داشته ؟ و اینکه شما خودتون هم فرمودید "در صورت عدم پرداخت ایشان را به صفحه ی پرداخت ارجاع دهد ، پس یعنی اگه پرداخت شده بود ، اطلاعات پرداخت مصرف نشده ی قبلی را به عنوان خروجی JSON برگردونه و در صورت عدم پرداخت ایشان را ارجاع دهد !

4 - خیر ! ، روال مصرف شدن همان روال Verfiy نیست ، به این روال Consume میگن ، شما زحمت کشیدید و این سیستم رو پیاده کردید ، اما مثل پرداخت تحت وب ، پس درواقع تا اینجا فقط یک کار اضافه نسبت به سایر درگاه ها انجام دادید و اون ذخیره ی شناسه ی یکتای کاربر هست که خودش خیلی عالیه و باعث میشه برنامه ی ما سرور نخواد ! ، اما نکته ی اصلی اینجاست :

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

  1. سیستم شناسه ی یکتا رو ذخیره کنه ( که شما خیلی عالی کار کردید و دست ما رو برای ساخت شناسه باز گذاشتید ، و کاملا انجام شده )
  2. امکان مصرف محصول وجود داشته باشه (که پیاده کردنش کار سختی نیست ، چون خودم پیاده کردم ! ، کافیه برای هر پرداخت یک ستون isConsume در نظر بگیرید ، و وقتی درخواست پرداخت یا تایید اعتبار اومد ، برسی کنه اگه مصرف نشده بود [isConsume=0] اطلاعات همین پرداخت رو برگردونه)

اگه این مورد پیاد نشه ، تفاوت عمده ای با پرداخت های معمولی نداره :|

5- تمام 14 خط توضیح شما ، مربوط به این میشه که شما برنامه نویس اندروید نیستید ، توجه کنید ، ما داریم واسه کاربر کد یکتا میسازیم ، این کد Run Time ساخته میشه پس کاربر حتی با دیکامپل نمیتونه خرابکاری کنه ! این مسئاله تراکنش جعلی کلا منتفی هست ، مگر اینکه سرور شما حفره ای برای ایجاد تراکنش داشته باشه ، مشکل لایسنس های ویندوز هم همین هست ، رفع این مشکلات برای میکروسافت کار سختی نیست ، اما به دلایلی این کار رو انجام نمیده :)

6- وقتی شما بخش مصرف خرید رو پیاده کنید ، با این الگوریتم امنیتی به مشکل می خورید ، اون موقع بنده برای اثبات باگ این الگوریتم و تست نفوذ در خدمتتون هستم :)

7- در مورد شاپرک مسئله ای نبود و من کاملا تائید کردم .

8 - معمولا کلمه ی باگ برای هرکسی تفسیر مختلفی داره ، من وقتی برنامه ام Error میده میگم ، Bug داشت و باعث سقوط | کرش برنامه شد ! ، در واقع من زمانی از باگ استفاده میکنم که خروجی ، خروجی مورد انتظار من نباشه ، و این اختلاف نظر ، به خاطر نقطه ی دید متفاوت ما هست :)

9   - نکته ای که در بازخورد قبلی فراموش کرده بودم ذکر کنم ، مستندات شما هست ، من به اون ها نمیگم مستند ، میگم چند صفحه توضیح ! ، وقتی شما می تونید اون صفحه رو به عنوان مستند معرفی کنید که تک تک موارد استفاده شده ، خطا ها ، ریدایرکت شدن ها ، ارور کد ها و خلاصه همه چیز شرح داده شده باشه ، مثلا من در شروع پروژه به دلیلی به eCode=-1 هدایت میشدم ! ، حالا این -1 چی هست و چر این اتفاق افتاد رو احتمالا فقط شما می دونید :) ، توصیه میکنم مستندات گوگل برای توسعه دهندگان اندروید رو مطالعه کنید.

10 - تمام موارد که من مطرح کردم ، به عنوان پیشنهاد مطرح میشه ، شما وقتی میرید سوپر مارکت ماست بخرید ، اگه ماست ترش باشه به سوپر مارکت نمیگید چرا ترشه ! ، خوب معلومه شرکت این طور تولید کرده ، دوست ندارید برند دیگه ای بخرید ! ، من هم صرفا قصدم کمک به شما هست.

پاینده باشید :)

0 0
سلام اساتید این قصه به کجا رسید ؟ (8 سال پیش)
0 0
سلام واقعا به کجا رسی آیا میشه استفاده کرد . آیا مشتندات کامل شده... دوستان کسی استفاد کرده feedback بده (8 سال پیش)
0 0
سلام این پرداخت درون برنامه مستقل از مارکت ها به کجا رسید؟ آموزشی چیزی براش هست؟ (8 سال پیش)
0 0
من ک همرااه پی رو قوی تر دیدم بنظرم بهتر به اون فکر کنم (8 سال پیش)
پاسخ به سوال 
red_sky  8 سال پیش
0 0

 

 

پاسخ به سوال 
امید  8 سال پیش
0 0

آقا لطفا یکی بگه این قضیه به کجا رسید؟؟؟

به غیر از پرداخت درون برنامه مارکت ها راه کار دیگه ای برای پرداخت درون برنامه ای وجود داره که مستقیم به حساب خودمون ریخته بشه و کسی ازش درصد برنداره؟؟؟

پاسخ به سوال 
Zabih  6 سال پیش
0 0

سلام دوستان 

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

خیلی راحت ...

لینک http://androidpower.ir/index.php/product/pt_payment_bitpay/

 


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .