PDA

View Full Version : راهنمایی در پیاده سازی درگاه بانک



hharddy
سه شنبه 07 شهریور 1396, 14:35 عصر
سلام روز بخیر
داخل یک برنامه نیازدارم که درگاه پرداخت اینترنتی استفاده کنم برای تست از سرویس وبسایت pay استفاده کردم طبق مستندات پیش رفتم و بعد از ارسال اطلاعات ب سرور و گرفتن transid کاربر و با وب ویو یا مرورگر گوشی از داخل برنامه درگاه پرداخت و نمایش میدم سوالی که هست بعد از پرداخت فایل جیسون نمایش داده میشه که اطلاعاتی نظیر کد پیگیری و موفق یا ناموفق بودن پرداخت میده
خواستم بدونم چجوری محتویات جیسون و از داخل وب ویو یا مرورگر بگیرم و داخل برنامه استفاده کنم که کاربر دیگه این قسمت و مشاهده نکنه.

hharddy
پنج شنبه 09 شهریور 1396, 22:14 عصر
:افسرده::افسرده::افسرده: هیچ کس؟؟!!

#root#
جمعه 10 شهریور 1396, 10:37 صبح
پرداخت در WebView که توصیه نمیشه، بهتره از مرورگر استفاده بشه(بخاطر امنیت و اعتماد کاربر)،
بعد شما یاید یه وب سروس داشته باشید که پرداخت از طریق اون اونجام بشه و وب سرویس با توجه به اون json لینکی رو برگردونه که برنامه شما به اون حساس باشه،
مثلا شماره پیگیری جزو لینک باشه و شما بعد از دریافتش بتونید اعتبار اون رو از طریق وب سرویستون بسنجید،
مثل لینک های تلگرام که از مرورگر میشه وارد کانالی شد، که برای این مبحث هم راجب deep linking تحقیق کنید.

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

محمد رضا فاتحی
شنبه 11 شهریور 1396, 13:37 عصر
پرداخت در WebView که توصیه نمیشه، بهتره از مرورگر استفاده بشه(بخاطر امنیت و اعتماد کاربر)،
بعد شما یاید یه وب سروس داشته باشید که پرداخت از طریق اون اونجام بشه و وب سرویس با توجه به اون json لینکی رو برگردونه که برنامه شما به اون حساس باشه،
مثلا شماره پیگیری جزو لینک باشه و شما بعد از دریافتش بتونید اعتبار اون رو از طریق وب سرویستون بسنجید،
مثل لینک های تلگرام که از مرورگر میشه وارد کانالی شد، که برای این مبحث هم راجب deep linking تحقیق کنید.

البته سوالای مشابهی قبلا تو انجمن دیدم که دوستان راهنمایی کردن.
سلام
مي تونيد يه نمونه كد يا مرجع خوب معرفي كنيد؟

hharddy
شنبه 11 شهریور 1396, 19:12 عصر
پرداخت در WebView که توصیه نمیشه، بهتره از مرورگر استفاده بشه(بخاطر امنیت و اعتماد کاربر)،
بعد شما یاید یه وب سروس داشته باشید که پرداخت از طریق اون اونجام بشه و وب سرویس با توجه به اون json لینکی رو برگردونه که برنامه شما به اون حساس باشه،
مثلا شماره پیگیری جزو لینک باشه و شما بعد از دریافتش بتونید اعتبار اون رو از طریق وب سرویستون بسنجید،
مثل لینک های تلگرام که از مرورگر میشه وارد کانالی شد، که برای این مبحث هم راجب deep linking تحقیق کنید.

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

ممنون دوست عزیز Deep Linking و فعال کردم .

محمد رضا فاتحی
دوشنبه 13 شهریور 1396, 17:58 عصر
سلام
مي تونيد يه نمونه كد يا مرجع خوب معرفي كنيد؟

من الان مشکلی با نمایش صفحه پرداخت توی مرورگر خود گوشی و پردازش اطلاعات بازگشتی ندارم!
فقط یه مشکلی که هست و هرچه گشتم نبود بحث post‌اطلاعات از برنامه به مرورگره با webview مشکلی نیست ولی با intent نمیشه!
ممنون میشم راهنمایی کنید

Nevercom
دوشنبه 13 شهریور 1396, 18:52 عصر
من الان مشکلی با نمایش صفحه پرداخت توی مرورگر خود گوشی و پردازش اطلاعات بازگشتی ندارم!
فقط یه مشکلی که هست و هرچه گشتم نبود بحث post‌اطلاعات از برنامه به مرورگره با webview مشکلی نیست ولی با intent نمیشه!
ممنون میشم راهنمایی کنید
وقتی قراره یک وب پیج (مثلاً صفحه‌ی پرداخت بانک) در مرورگر باز بشه و نیاز هست اطلاعاتی به اون وب پیج بصورت POST ارسال بشه، یکی از راه ها این هست که وب پیج واسط داشته باشید که اطلاعات بصورت GET و در Query String براش ارسال بشه و اون صفحه عملیات POST رو انجام بده. این تنها روشی بوده که بدون مشکل جواب داده برام.

چندسال پیش که مرورگر پیشفرض گوشی ها Chrome نبود و مرورگر خود اندروید پیشفرض بود، امکان این وجود داشت که ساختاری برای URL تعیین کرد تا مرورگر دیتا رو پست کنه، اما در کروم جواب نمیده.

محمد رضا فاتحی
دوشنبه 13 شهریور 1396, 22:39 عصر
ممنون جواب دادین...راستش من خیلی با وب آشنایی ندارم...میشه یکم بیشتر توضیح بدین

Nevercom
سه شنبه 14 شهریور 1396, 16:46 عصر
به عنوان مثال این کد رو در نظر بگیرید:


<html>
<head>


</head>
<body>


<script>
function getParameterByName(name) {
name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));
}
(function () {
var jsondata = getParameterByName("data");
var obj = JSON.parse(jsondata);
var form = document.createElement("form");
form.setAttribute("method", "POST");
form.setAttribute("target", "_self");
form.setAttribute("action", getParameterByName("url"));


var len = count = Object.keys(obj).length;


for (var key in obj) {
var hiddenField1 = document.createElement("input");
hiddenField1.setAttribute("name", key);
hiddenField1.setAttribute("value", obj[key]);


form.appendChild(hiddenField1);


}
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
})();




</script>
</body>

کاری که می کنه این هست که دو پارامتر از Query String میخونه:

url: همون آدرسی که باید اطلاعات بهش POST بشه
data: اطلاعاتی که باید پست بشن به فرمت JSON String


این اطلاعات رو میخونه و بعد یک Form درست می کنه، که action رو برابر مقدار url قرار میده و به ازای هر کلید در JSON Object یک input درست می کنه.

نهایتاً هم این فرم رو Submit می کنه.

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

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

مثلاً:

http://your-site.com/poster.html?url=http://bpm.shaparak.ir&data={"RefId":"AFGFGSHHHS64456555GSG"}

محمد رضا فاتحی
سه شنبه 14 شهریور 1396, 17:38 عصر
خيلي عاليه فقط از نظر امنيت چكار ميشه كرد؟

Nevercom
سه شنبه 14 شهریور 1396, 18:05 عصر
امنیت در چه بخشی منظورتون هست ؟

محمد رضا فاتحی
سه شنبه 14 شهریور 1396, 18:17 عصر
منظورم توي آدرس url ارسالي توسط اژليكيشنه كه يه چيزي پيدا كردم براي رمزنگاري توي php و اندرويد كه احتمالا كارم رو راه ميندازه....بازم خيلي خيلي ممنون خيلي كمك كردي!

Nevercom
سه شنبه 14 شهریور 1396, 22:28 عصر
البته همونطور که فرمودید میشه اطلاعات رو Encrypt کرد و فرستاد، اما در این مورد خاص نیاز به اینها نیست و جای نگرانی نیست چون اطلاعات مخفی ای وجود نداره و یوزر هم نمیتونه با دستکاری اطلاعات ارسالی مثلاً مبلغ کمتری پرداخت کنه.