ورود

View Full Version : راهنمایی برای اتصال مستقیم برنامه به درگاه پرداخت بانک



slr560
جمعه 16 آبان 1393, 12:31 عصر
سلام دوستان
سیاستی که پیش گرفتیم توی یکی از برنامه هامون اینه که درگاه بانک ملت یا شاپرک رو توی webView بیاریم بالا و پرداخت رو انجام بدیم
از لحاظ گرفتن مجوز مشکلی نداریم . درگاه همین الان برای دسکتاپ موجود هست. فقط میخوایم همینو بیاریم روی گوشی
حالا چنتا سول:
من از الگوریتم سیستم پرداخت آنلاین اطلاعی ندارم .
۱ - میخوام ببینم دقیقا چه اتفاقی میوفته و چه مراحلی طی میشه تا یه پرداخت انجام بشه و نتیجش برگرده؟
۲- چطوری مقدار مبلغ پرداختی رو به webView پاس بدم تا اونم به درگاه بانک انتقال بده؟
۳- چجوری میتونم نتیجه پرداخت رو از طریق webView بگیرم و توی برنامه استفاده کنم؟

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

slr560
جمعه 16 آبان 1393, 17:36 عصر
کسی نمیدونه؟:متفکر:

hamedjj
جمعه 16 آبان 1393, 19:47 عصر
slr560 (http://barnamenevis.org/member.php?182252-slr560) جان خوب سرچ کردی؟؟
از این دست تاپیک ها چند تا قبلا ایجاد شده بود

slr560
جمعه 16 آبان 1393, 19:50 عصر
slr560 (http://barnamenevis.org/member.php?182252-slr560) جان خوب سرچ کردی؟؟
از این دست تاپیک ها چند تا قبلا ایجاد شده بود

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

hamedjj
جمعه 16 آبان 1393, 21:14 عصر
اره بابا سرچ کردم
همه فقط درباره اینکه شدنی هست یا نه تاپیک زدن
کسی در رابطه با کلاس ها و متدها توضیح نداده
یا الگوریتم
یه توضیح کامل توی بخش توسعه دهندگان وب پیدا کردم که واسه ی دامون بانک ملی بود.
من بانک ملت رو میخوام. میگن کلا فرق داره
حالا دریافت و ارسال مقادیرش توی وب ویو پیش کش

حالا حتما باید بانک ملی باشه
همراه پی نمیشه؟

slr560
جمعه 16 آبان 1393, 21:19 عصر
حالا حتما باید بانک ملی باشه
همراه پی نمیشه؟

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

البته همراه پی هم باشه اشکال نداره. روند کار باید شبیه باشه
میشه توضیح بدید؟

hamedjj
جمعه 16 آبان 1393, 22:31 عصر
من هنوز باهاش کار نکردم
پروژه سمپل را میتونی از سایتش دانلود کنی :

http://hamrahpay.com/modules

slr560
جمعه 16 آبان 1393, 23:23 عصر
مرسی داداش ولی اینو قبلا دیده بودم. خیلی ساده و مبتدی پیاده سازی کرده
دقت کرده باشی ایتم های مورد نظری که میخواستم رو توی ارسال و دریافت به وب ویو قرار نداده

hamedjj
جمعه 16 آبان 1393, 23:43 عصر
مرسی داداش ولی اینو قبلا دیده بودم. خیلی ساده و مبتدی پیاده سازی کرده
دقت کرده باشی ایتم های مورد نظری که میخواستم رو توی ارسال و دریافت به وب ویو قرار نداده

یکی از دوستان درگاه پرداخت بانک را برای اندروید پیاده سازی کرده بود که در این پست یه چیزایی دربارش گفت اما هنوز آموزش کامل نداده:
http://answers.uncocoder.com/question/2597/

امیدوارم بدردت بخوره

hamedjj
جمعه 16 آبان 1393, 23:45 عصر
یه سری توضیحات هم تو یه تاپیک دیگه داده که چون شما کاربر ویژه نیستید امکان دسترسی به این مطالب را ندارید
به همین خاطر در اینجا قرار میدم :



گرفتن درگاه پرداخت آنلاین از بانک و به نام خودتون اصلا اصلا (حداقل واسه من) به صرفه به نظر نمیاد
باید سند ملک مسکونی و... و... و... به عنوان ضامن گرو بدی !
در عوض کار راحت تر استفاده از درگاه های واسط هست ، مثلا همین ساین که از درگاه زین پال (http://zarinpal.com/)استفاده می کنه
درگاه های واسط ، با کسر کارمزد کمی (بین 1 تا 4 درصد ) به شما یک درگاه میدن ، که پرداخت رو راحت انجام بدید

اما پیشنهاد من درگاه جهان پی (http://jahanpay.com/)هست چرا که کارمزد کمتری نسب به بقیه میگره ، امکانات بهتری تعبیه کرده
مثلا میتونید ، کاربر رو مستقیم به درگاه پرداخت وصل کنید ، و متوجه درگاه واسط نشه ، و حتی سرویس جدیدی که گذاشته درگاه اختصاصی هست ، که نام شما به عنوان فروشنده درج میشه (+ لوگوی سایت یا برنامه ) که توی سایر درگاه ها - فروشنده زرین پال - پی پال - پارس پال و .. هست

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


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

slr560
جمعه 16 آبان 1393, 23:50 عصر
مشکلی برای گرفتن درگاه وجود نداره
یکی از کاربرا کامل تو لینک زیر توضیح داده. فکر نکنم کامل تر از این کسی توضیح داده باشه
http://barnamenevis.org/showthread.php?317958-%D9%86%D8%AD%D9%88%D9%87-%D9%BE%DB%8C%D8%A7%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-%DA%A9%D8%A7%D9%85%D9%84-%D9%BE%D8%B1%D8%AF%D8%A7%D8%AE%D8%AA-%D8%A2%D9%86%D9%84%D8%A7%DB%8C%D9%86-%D8%A8%D8%A7%D9%86%DA%A9-%D9%85%D9%84%DB%8C-%D8%A7%DB%8C%D8%B1%D8%A7%D9%86-(%D8%AF%D8%A7%D9%85%D9%88%D9%86)-%D8%8C-%D8%A7%D8%B2-%D8%A7%D8%A8%D8%AA%D8%AF%D8%A7-%D8%AA%D8%A7-Verification-%D9%86%D9%87%D8%A7%DB%8C%DB%8C

ولی خب من کار با متدهای وب ویو رو میخوام . چجوری POST میکنیم اطلاعات رو و بعدش میگیریمشون از وب ویو

Nevercom
شنبه 17 آبان 1393, 00:34 صبح
قبلاً در تاپیک های مختلف این موضوع رو توضیح داده بودم.
علاوه بر اون دوستی در پیغام خصوصی سوال رو مطرح کرده بودن که پاسخم رو براتون اینجا می نویسم:

سلام

یک دیاگرام برای تشریح عملیات پرداخت براتون آماده کردم، از اینحا دانلودش کنید: http://bayanbox.ir/id/6318064219744214358

در ۷ قسمت علامت گذاری شده:



اینجا به وب سرویس که آماده کردید اطلاع می دید که فلان مبلغ رو می خوام پرداخت کنم پس آماده کن اطلاعات رو و برام پس بفرست

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


اینجا باید اطلاعات خرید رو به بانک بفرستید و پاسخ بانک رو دریافت کنید

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


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

Verify عملی هست که چک می کنید که آیا پول وارد حسابتون شده (بصورت موقت)
Settle عملیاتی هست که شما پول رو وارد حساب خودتون می کنید، یعنی به بانک میگید محصول رو به کاربر دادم و حالا پول رو کاملاً وارد حسابم کن (همه ی بانک ها این تابع رو ندارن، من در بانک ملت دیدم فقط، به هرحال اگر Settle نکنید، چند ساعت بعد از Verify پول Settle خواهد شد - البته اگر در این زمان پول رو به حساب کاربر برگشت ندید)
Reverse: تو فلوچارت یادم رفته بنویسم، این تابع پول رو برگشت می زنه، مثلاً پرداخت موفق بوده اما شما اون محصول رو ندارید یا خطایی رخ داده و...، در این شرایط شما پول رو برگشت می زنید به حساب کاربر
شما می تونید اطلاعات رو به روشی که گفتم (URLScheme) به اکتیویتی انتقال بدید، یا کار ساده تر این هست که این صفحه یک ظاهر گرافیکی مخصوص موبایل داشته باشه که اطلاعات نهایی رو در مرورگر نمایش بده (اگر نیاز نیست اکتیویتی اطلاعات رو دریافت کنه)
درصورتی که روشی که بالا گفتم رو استفاده کردید، اینجا کار تموم هست و بقیه ی قسمت های دیاگرام حذف میشه.


همونطور که تو خود دیاگرام هم نوشتم، اینجا مرحله ای هست که لینک URLScheme لود میشه (مرحله ی 5 و 6 چندان از هم جدا نیستند، فقط خواستم نشون بدم تا کجا مرورگر درگیر هست

مثلاً شما به مرورگر میگید که برو به آدرس: {...com.app://?status=1&data={...JSON
قبلاً در اپلیکیشن اون آدرس خاص رو برای اکتیویتی خودتون رجیستر کردید، پس با باز شدن لینک اکتیویتی شما باز میشه که می تونید به اطلاعات ارسالی مثل status و data دسترسی داشته باشید (http://stackoverflow.com/questions/4023273/android-custom-url-scheme)


​خب اینجا با لود شدن لینک، اکتیویتی باز شده. باید اطلاعات ارسالی رو دریافت کنید و ازش استفاده کنید


توضیحات تکمیلی:

روش کار با بانک اینه که اول درخواست پرداخت رو براش ارسال می کنید، در مستندات وب سرویس بانک نام متد و پارامترهای ورودی توضیح داده شده
خروجی این متد اطلاعات لازم برای انجام پرداخت هست. این اطلاعات شامل آدرس صفحه ای هست که باید اطلاعات بهش POST بشه و سایر پارامترها
بعد از اینکه اطلاعات رو به اون صفحه پست کردید، به صفحه ی پرداخت بانک Redirect میشه.
پس از اینکه عملیات خرید صورت گرفت، درگاه بانک اطلاعات رو به صفحه ای که براش تعیین کردید (و بهش میگیم Callback) می فرسته
تو اون صفحه اول باید صحت اطلاعات رو چک کنید، که پرداخت صورت گرفته یا خیر، آیا مبلغ پرداختی با قیمت محصول همخوانی داره یا خیر
پس از تایید صحت اطلاعات، عملیات verify رو انجام میدید، با verify کردن پول آماده ی واریز به حسابتون هست
در این مرحله هر خدماتی که باید رو ارائه میدید (مثلاً فروش اون محصول یا هرچی) و بعد پول رو Settleمی کنید، این یک متد هست و معنیش اینه همه چی به خوبی انجام شده و پول به حسابتون واریز بشه.
اگر مشکلی پیش اومد از طریق متد reverse پول رو به حساب کار بر برگردونید
توجه کنید که پس از verify کردن، اگر هم settle نکنید، پول بعد از گند ساعت میره به حسابتون (و settle میشه) و احتمالاً اگر verify نکنید کلاً برگشت می خوره.

نحوه ی ارسال اطلاعات به مرورگر اندروید رو هم توضیح دادم بالاتر.

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

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

slr560
شنبه 17 آبان 1393, 00:45 صبح
مثل همیشه عالی. ممنون جناب nevercom بابت Sequence و توضیحات
دارم میخونمش

skkhossein
پنج شنبه 29 آبان 1393, 03:15 صبح
.................................................. ..

hosseinaryai
پنج شنبه 04 دی 1393, 21:30 عصر
من الان یه چیزو دقیق متوجه نشدم ..
من با جهان پی به درگاه وصل میشم .. خرید می کنم و به صفحه ی دوم میرم که مثلن می نویسه خرید با موفقیت انجام شد ..
خب حالا از اینجا به بعدشو گیر دارم .. چطور اطلاعاتو از مرورگرم بگیرم و توی برنامه ازش استفاده کنم ؟

Nevercom
شنبه 06 دی 1393, 01:43 صبح
من روش کار جهان پی رو نمیدونم، اما ایده اینه که درنهایت مرورگر رو به یک آدرس ساختگی مثل myApp://?myData=data هدایت کنیم، با هدایت مرورگر به این صفحه، اکتیویتی ما که تنظیم شده این درخواست رو مدیریت کنه (درست مثل مارکت ها که به آدرس market://something واکنش نشون میدن) باز بشه و داده ها رو دریافت کنه

hosseinaryai
شنبه 06 دی 1393, 12:10 عصر
اوووممم راستش دقیقن متوجه نشدم .. می تونی یه مثال بزنی ؟

hosseinaryai
یک شنبه 07 دی 1393, 17:48 عصر
اپلیکیشن چطور می تونه به یک همچین آدرسی بطور مثال myApp://?myData=data واکنش نشون بده ؟ چطور باید کاری کنم اکتیویتی به این درس واکنش بده؟

Nevercom
یک شنبه 07 دی 1393, 18:19 عصر
اپلیکیشن چطور می تونه به یک همچین آدرسی بطور مثال myApp://?myData=data واکنش نشون بده ؟ چطور باید کاری کنم اکتیویتی به این درس واکنش بده؟
در پست های قبل که توضیح داده بودم، برای اون قسمت لینک به StackOverflow داده بودم: http://stackoverflow.com/questions/4023273/android-custom-url-scheme

bia2joker
دوشنبه 08 دی 1393, 00:35 صبح
اپلیکیشن چطور می تونه به یک همچین آدرسی بطور مثال myApp://?myData=data واکنش نشون بده ؟ چطور باید کاری کنم اکتیویتی به این درس واکنش بده؟





WebView webView = (WebView) findViewById(R.id.syncinstagram_webview);


webView.setWebViewClient(new AuthWebViewClient());
webView.loadUrl("http://xxxx.ir/redirect.php");


public class AuthWebViewClient extends WebViewClient{

@Override
public boolean shouldOverrideUrlLoading(WebView view, final String url) {
String parts[] = url.split("=");
mydata = parts[1];
return true;
}


return false;
}
}

hosseinaryai
دوشنبه 08 دی 1393, 17:01 عصر
ممنونم از هر دوتاتون .. ولی من بازم نتونستم هم کدو درک کنم .. هم نحوه ی پیاده سازیشو بفهمم ..

Nevercom
دوشنبه 08 دی 1393, 17:42 عصر
همه اینها خیلی ساده هست...

روش دوستمون مربوط به زمانی هست که از WebView استفاده می کنید، در این حالت میتونید روی URL ها کنترل داشته باشید.
روشی که من خدمتتون عرض کردم مربوط به زمانی هست که وب سایت در مرورگر گوشی باز شده باشه.

توی مانیفست، در تگ activity موردنظر این کدها رو وارد کنید:

<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="com.your.scheme" />
</intent-filter>


در این حالت هر URLی که با //:com.your.scheme شروع شده باشه، وقتی مرورگر به اون لینک منتقل بشه، اکتیویتی شما باز خواهد شد.

حالا فرض کنیم این آدرس باز شده: com.your.scheme://?data=hello&status=1
برای دریافت مقادیر data و status از کد زیر در اکتیویتی استفاده کنید

final Uri data = getIntent().getData();
final String tmpData = data.getQueryParameter("data");
final String tmpState = data.getQueryParameter("status");


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

تنها کاری که لازمه بکنید اینه که در صفحه ی آخر عملیات بانکی یک URL بسازید و تمام داده ها رو در URL جا بدید و مرورگر رو به اون URL خاص Redirect کنید.

hosseinaryai
دوشنبه 08 دی 1393, 18:26 عصر
ممنونم دوست خوبم .. الان متوجه شدم کل ماجرا چی شده .. مرسی که وقت گذاشتی و جواب دادی :قلب:

maryam.nop
سه شنبه 12 اسفند 1393, 00:38 صبح
سلام درگاه پرداخت برای نسخه 3.5 nopcommerce میخوام اگر دارید ممنون میشم به اشتراک بزارید

hadi\m
شنبه 12 اردیبهشت 1394, 23:22 عصر
همه اینها خیلی ساده هست...

روش دوستمون مربوط به زمانی هست که از WebView استفاده می کنید، در این حالت میتونید روی URL ها کنترل داشته باشید.
روشی که من خدمتتون عرض کردم مربوط به زمانی هست که وب سایت در مرورگر گوشی باز شده باشه.

توی مانیفست، در تگ activity موردنظر این کدها رو وارد کنید:

<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="com.your.scheme" />
</intent-filter>


در این حالت هر URLی که با //:com.your.scheme شروع شده باشه، وقتی مرورگر به اون لینک منتقل بشه، اکتیویتی شما باز خواهد شد.

حالا فرض کنیم این آدرس باز شده: com.your.scheme://?data=hello&status=1
برای دریافت مقادیر data و status از کد زیر در اکتیویتی استفاده کنید

final Uri data = getIntent().getData();
final String tmpData = data.getQueryParameter("data");
final String tmpState = data.getQueryParameter("status");


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

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

Nevercom
یک شنبه 13 اردیبهشت 1394, 00:37 صبح
درود
از قرار اینها برای وب ویو نیست من از طریق وب ویو یه فراخوانی دادم و قبلا به بانک وصا میشد ولی اکنون در حال ارسال و اتصال مانده و وصل نمیشود
ولی خود صفحه بصورت عادی از طریق مرورگر بدون مشکل کار میکند میشود راهنمایی کنید
درست متوجه سوال نشدم، لطفاً دقیقتر مشکل رو شرح بدید

hadi\m
یک شنبه 13 اردیبهشت 1394, 20:54 عصر
درست متوجه سوال نشدم، لطفاً دقیقتر مشکل رو شرح بدید

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

Nevercom
دوشنبه 14 اردیبهشت 1394, 19:22 عصر
خطای خاصی دریافت می کنید ؟
کدهای سمت سرور رو بررسی کردید که مشکلی نداشته باشه ؟
از درگاه ملت روی دامنه ی شاپرک استفاده می کنید دیگه ؟

برای بررسی مشکل اطلاعات بیشتری نیازه

hadi\m
پنج شنبه 17 اردیبهشت 1394, 18:13 عصر
130995
خطای خاصی دریافت می کنید ؟
کدهای سمت سرور رو بررسی کردید که مشکلی نداشته باشه ؟
از درگاه ملت روی دامنه ی شاپرک استفاده می کنید دیگه ؟

برای بررسی مشکل اطلاعات بیشتری نیازه
درود
خطایی نمیده
کدها کامل کار میکنه و د رسایت و مستقیم بدون مشکل وصل میشه از دامنه شاپرک هم استفاده میکنم
ولی زمای که از طریق وب ویو استفاده میکنم میگه در حال اتصال به بانک ولی وارد نمیشه
از قرار کلا توی همچین وضعیتی(وب ویو) نمیتونه وارد بانک بشه در حالی که قبلا مشکلی نداشت
حال به ssl مربوط میشه یا تغییرات شاپرک نمیدانم
======= ویرایش ===========
با یه گوشی که روت نبود امتحان کردم و ارور زیر را داد (یعنی با گوشی روت شده کار نمیکند؟؟)

slr560
پنج شنبه 17 اردیبهشت 1394, 18:24 عصر
جناب nevercom من یه سوالی واسم پیش اومده
توی سیستم های پرداخت بانکی معمولا باید یه آی پی سرور به بانک معرفی کنی
یک آیپی برای ارسال درخواست و یکی برای دریافت پاسخ. که هر دوش میتونه یکی باشه
سرور در دسترس هست و میتونیم یک وبسرویس واسش بنویسیم
سوالم اینجاس چجوری باید صفحه پرداخت رو از سرور به موبایل ارسال کنیم؟ چون بانک فقط درخواست های اون آیپی رو قبول میکنه؟؟؟

hadi\m
پنج شنبه 17 اردیبهشت 1394, 20:49 عصر
جناب nevercom من یه سوالی واسم پیش اومده
توی سیستم های پرداخت بانکی معمولا باید یه آی پی سرور به بانک معرفی کنی
یک آیپی برای ارسال درخواست و یکی برای دریافت پاسخ. که هر دوش میتونه یکی باشه
سرور در دسترس هست و میتونیم یک وبسرویس واسش بنویسیم
سوالم اینجاس چجوری باید صفحه پرداخت رو از سرور به موبایل ارسال کنیم؟ چون بانک فقط درخواست های اون آیپی رو قبول میکنه؟؟؟
دوست عزیز آی پی که معرفی کردید برای یک سروری هست که بدون موبایل کار میکنه و مشکلی هم نداره
وزمانی که شما نیاز دارید به بانک وصل بشید باز هم از همان سرور وصل میشید حالا با هر چیز دیگری موبایل تبلت و لپ تاپ
برنامه ای هم که مینویسید همون سرور و صفحه اش را میتونید فراخونی کنید چه با وب سرویس چه با لود یک سایت که من بالا درخواست راهنمایی دادم

برای نمونه می تونید برنامه مایکت را دریافت کرده و شیوه اتصال به بانکش راببینید (احتمالا وب سرویس یا وب ویو هست)
و برنامه giftgift را هم بگیرید و نصب کرده و نمونه اتصالش را ببینید (با فراخوانی یه مرورگر داخلی وصل میشه)

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

Nevercom
شنبه 19 اردیبهشت 1394, 12:05 عصر
جناب nevercom من یه سوالی واسم پیش اومده
توی سیستم های پرداخت بانکی معمولا باید یه آی پی سرور به بانک معرفی کنی
یک آیپی برای ارسال درخواست و یکی برای دریافت پاسخ. که هر دوش میتونه یکی باشه
سرور در دسترس هست و میتونیم یک وبسرویس واسش بنویسیم
سوالم اینجاس چجوری باید صفحه پرداخت رو از سرور به موبایل ارسال کنیم؟ چون بانک فقط درخواست های اون آیپی رو قبول میکنه؟؟؟

فرض می‌کنیم دو فایل با نام های request.php و callback.php داریم که وظیفه ی ارتباط با بانک رو دارن. همونطور که می‌دونید تمام درخواست ها به بانک (صدا زدن متدهای وب سرویس بانک) باید از روی سرور صورت بگیره.

در مرحله ی اول از برنامه ی موبایل درخواست پرداخت رو به request.php ارسال می کنیم، این اسکریپت درخواست رو به بانک میفرسته و پاسخ بانک رو به ما برمی‌گردونه، در این مرحله (در اپلیکیشن موبایل) اطلاعاتی رو که بانک بهمون داده به url بانک POST می کنیم. البته در مرورگر این اتفاق باید بیفته.

درنهایت وقتی پرداخت تموم شد، بانک اطلاعات رو به callback.php میفرسته، اونجا هم وضعیت پرداخت چک میشه و اگر محصولی قرار هست ارائه بشه، تحویل داده میشه. این صفحه هم میتونه یه صفحه ی وب باشه که نتیجه رو نمایش بده و یا هم اون اطلاعات رو به اپلیکیشن بفرسته و اونجا نمایش بدید.

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

dalmif
شنبه 26 اردیبهشت 1394, 10:16 صبح
سلام
ببخشید منم می خوام چنین کاری رو پیاده کنم.
و پیاده کردم اما وقتی روی گزینه ارسال کلیک میکنم دقیقا مثل
http://barnamenevis.org/attachment.php?attachmentid=130995&d=1431023970
میشه ولی وقتی توی مروگر باز میکنم درست میاره (البته توی مروگر یک ارور امنیتی میده ولی بعد باز میشه) فکر می کنید برای چی باشه؟؟؟؟

ezareie
دوشنبه 28 اردیبهشت 1394, 12:25 عصر
من مرحله اول رو انجام دادم یعنی صفحه پرداخت بانک رو به گوشی ارسال می کن، به این شکل که اپلیکیشن با وب سرویس درخواست پرداخت رو می فرسته و آدرس صفحه پرداخت بانک رو از سرور می گیره. اما نمی دونم چطور باید از صفحه callback.php اطلاعات پرداخت رو به اپلیکیشن ارسال کنم، چون اپلیکیشن که آدرس وب نداره که بشه چیزی رو بهش ارسال کرد.
اگر بیشتر توضیح بدید یا نمونه کدش رو قرار بدید ممنون میشم.

samanmari
سه شنبه 19 خرداد 1394, 11:54 صبح
به خاطر مشکل certificate این پیام میاد
با این کد اوکی میشه:
webView.setWebViewClient(new WebViewClient() {


@Override
public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
});
ولی از لحاظ امنیتی مطمئن نیستم

samanmari
سه شنبه 19 خرداد 1394, 11:54 صبح
به خاطر مشکل certificate این پیام میاد
با این کد اوکی میشه:

webView.setWebViewClient(new WebViewClient() {


@Override
public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) {
handler.proceed();
}
});
ولی از لحاظ امنیتی مطمئن نیستم


سلام
ببخشید منم می خوام چنین کاری رو پیاده کنم.
و پیاده کردم اما وقتی روی گزینه ارسال کلیک میکنم دقیقا مثل
http://barnamenevis.org/attachment.php?attachmentid=130995&d=1431023970
میشه ولی وقتی توی مروگر باز میکنم درست میاره (البته توی مروگر یک ارور امنیتی میده ولی بعد باز میشه) فکر می کنید برای چی باشه؟؟؟؟

sadegh arfa
شنبه 09 مرداد 1395, 00:35 صبح
سلام دوستان
من نیاز به درگاه سامان دارم و تمامی تاپیک هارو زیر و رو کردم و بهترین نتیجه ای که پیدا کردم همین تاپیک هست
اگر راه حل نهایی پیدا شده ممنون میشم دوستان اشتراک بذارن و یا اینکه ادامه کار رو با هم دیگه انجام بدیم تا یه راه حل صحیح پیدا کنیم

sadegh arfa
شنبه 09 مرداد 1395, 02:11 صبح
فکر کنم راه حل این مشکل اینجا باشه :
http://farnabaz.ir/content/%D8%A7%D8%AA%D8%B5%D8%A7%D9%84-%D8%A8%D9%87-%D8%AF%D8%B1%DA%AF%D8%A7%D9%87-%D8%A8%D8%A7%D9%86%DA%A9-%D8%AF%D8%B1-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%B1%D8%AF%D8%B3%D8%B1/

iranlotus
پنج شنبه 22 شهریور 1397, 23:48 عصر
http://iranlotus.com

arianroben
پنج شنبه 24 بهمن 1398, 11:16 صبح
همه اینها خیلی ساده هست...

روش دوستمون مربوط به زمانی هست که از WebView استفاده می کنید، در این حالت میتونید روی URL ها کنترل داشته باشید.
روشی که من خدمتتون عرض کردم مربوط به زمانی هست که وب سایت در مرورگر گوشی باز شده باشه.

توی مانیفست، در تگ activity موردنظر این کدها رو وارد کنید:

<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="com.your.scheme" />
</intent-filter>


در این حالت هر URLی که با //:com.your.scheme شروع شده باشه، وقتی مرورگر به اون لینک منتقل بشه، اکتیویتی شما باز خواهد شد.

حالا فرض کنیم این آدرس باز شده: com.your.scheme://?data=hello&status=1
برای دریافت مقادیر data و status از کد زیر در اکتیویتی استفاده کنید

final Uri data = getIntent().getData();
final String tmpData = data.getQueryParameter("data");
final String tmpState = data.getQueryParameter("status");


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

تنها کاری که لازمه بکنید اینه که در صفحه ی آخر عملیات بانکی یک URL بسازید و تمام داده ها رو در URL جا بدید و مرورگر رو به اون URL خاص Redirect کنید.


سلام خیلی ممنون از توضیحاتتون میشه این قسمت آخرشم که چه جوری یه URL بسازیم که اینارو داخلش جا بدیم یه مثال بزنید