PDA

View Full Version : سوال در مورد ساخت صفحه پرداخت اینترنتی در mvc



matrix3749
پنج شنبه 29 آبان 1393, 16:27 عصر
سلام خسته نباشید
من یه قظعه کدی برای پرداخت اینترنتی در asp web form دارم اما یه قسمتی از اون در mvc کار نمیکنه که به صورت زیر :

(ClientScript.RegisterStartupScript(typeof(Page), "ClientScript", "<script language='javascript' type='text/javascript'> postRefId('" + resultArray[1] + "');</script> ", false

قسمت ClientScript را نمیشناسه هرچی هم سرچ کردم به جوابی نرسیدم.
حالا سوال اولم اینه معادل ClientScript در mvc چیه؟
ثانیا اگر کسی روش پرداخت آنلاین تو mvc را کار کرده یه راهنمایی به من بکنه؟

با تشکر

mehdin69
پنج شنبه 29 آبان 1393, 18:28 عصر
منظورتون رو نفهمیدم چی هست از این قطعه کد

HOSSEINONLINE7
جمعه 30 آبان 1393, 19:59 عصر
سلام خسته نباشید
من یه قظعه کدی برای پرداخت اینترنتی در asp web form دارم اما یه قسمتی از اون در mvc کار نمیکنه که به صورت زیر :

(ClientScript.RegisterStartupScript(typeof(Page), "ClientScript", "<script language='javascript' type='text/javascript'> postRefId('" + resultArray[1] + "');</script> ", false

قسمت ClientScript را نمیشناسه هرچی هم سرچ کردم به جوابی نرسیدم.
حالا سوال اولم اینه معادل ClientScript در mvc چیه؟
ثانیا اگر کسی روش پرداخت آنلاین تو mvc را کار کرده یه راهنمایی به من بکنه؟

با تشکر

سلام اینا برای وب فرم جواب میده . برای mvc باید با جیکوئری درخواست ارسال بشه .

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

RIG000
جمعه 30 آبان 1393, 22:15 عصر
HOSSEINONLINE7 (http://barnamenevis.org/member.php?243086-HOSSEINONLINE7)

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

HOSSEINONLINE7
یک شنبه 02 آذر 1393, 22:49 عصر
HOSSEINONLINE7 (http://barnamenevis.org/member.php?243086-HOSSEINONLINE7)اگر با ملت به نتیجه رسیدید نمونه ای به طور مقاله اگر شد بزارید تا خود من هم نگاهی عمیق به بانک ملت داشته باشم. متشکرم

سلام ابتدا کاربر روی دکمه ی پرداخت کلیک میکنه که یک درخواست ایجکسی میفرسته به کنترلر برای ارسال request به بانک :

<script language="javascript" type="text/javascript">
$(document).ready(function () {

$('#btnPayment').click(function (e) {
e.preventDefault();

$.ajax({
url: '/Payment',
type: 'Post',
cache: false,
success: function (refIdValue) {
var form = document.createElement("form");
form.setAttribute("method", "POST");
form.setAttribute("action", "https://pgw.bpm.bankmellat.ir/pgwchannel/startpay.mellat");
form.setAttribute("target", "_blank");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", "RefId");
hiddenField.setAttribute("value", refIdValue);
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
});
});
});
</script>

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

var result = bpService.bpPayRequest(TerminalId,
UserName,
Password,
orderId,
Total,
PayDate,
PayTime,
"",
"http://" + Request.Url.Authority + "/PaymentVerify",
0);

String[] resultArray = result.Split(',');
string refIDValue = "";
if (resultArray[0] == "0")
refIDValue = resultArray[1];

return Json(refIDValue, JsonRequestBehavior.AllowGet);

بعدش بانک طبق داکیومنت خودش که گفته یک result برمیگردونه که از 2 قسمت تشکیل شده . اگر قسمت اولش برابر صفر بود یعنی خطایی نیست و باید قسمت دوم که refid هست را پاس بدیم به View.

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

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

برای mvc نکته اش همین بود و بقیه ی موارد شبیه وب فرم هست .

sanay_esh
دوشنبه 03 آذر 1393, 10:00 صبح
دوست عزیز الان همه درگاهها باید با شاپرک انجام شوند که همان تکنولوژی بانک ملت را در پیش گرفتند.
از طرفی هیچ تفاوتی بین web form و MVC در ایجاد چنین صفحه ای وجود ندارد.

ali_72
دوشنبه 03 آذر 1393, 12:19 عصر
قطعه کد script که در سمپل کد ملت بود رو تو view صفحه پرداخت بذارید


<script language="javascript" type="text/javascript"> function postRefId(refIdValue) {
var form = document.createElement("form");
form.setAttribute("method", "POST");
form.setAttribute("action", '@ViewBag.PgwSite');
form.setAttribute("target", "_self");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", "RefId");
hiddenField.setAttribute("value", refIdValue);
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
</script>

با submit فرم تابع bpPayRequest فراخوانی کنید (که در سمپل کد ملت هست)

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

تفاوتی بین سمپل کد web form ملت و اجرا در mvc وجود نداره

EhsanAvr
سه شنبه 18 آذر 1393, 10:19 صبح
به جای ClientScript در MVC از Viewbag استفاده میشه.
آموزش کامل ارتباط با درگاه بانک ملت در ASP.NET Web Forms و ASP.NET MVC (http://git.ir/15646/videography/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%B1%D8%AA%D8%A8%D8%A7%D8%B7-%D8%A8%D8%A7-%D8%AF%D8%B1%DA%AF%D8%A7%D9%87-%D8%A8%D8%A7%D9%86%DA%A9-%D9%85%D9%84%D8%AA-%D8%AF%D8%B1-asp-net/)