با سلام خدمت استاد عزيز
در بخش درگاه پرداخت طبق آموزشي كه براي زرين پال قرارداديم پيشرفتم جايگذاري هم انجام شده منتها به دو اشكال بر ميخورم
1- اگر چند محصول انتخاب شده باشد فقط يكي از اونها به درگاه ارسال ميشه
2- بعد از پرداخت موفق يا ناموفق به صفحه مورد نظر ارسال نميشه و خطاي Server Error in '/' Application.
ميده

در اين تصوير مبلغ نهايي 22000 هزار تومان است
ولي در مرحله پرداخت تست بشرح ذيل

مبلغ پرداختي 20000 هزار تومان است
و بعد از زدن پرداخت موفق يا ناموفق به خطاي زير برخورد ميكنم

To Do Online Payment قسمتي هست كه استاد عزيز فرموديد كدهاي درگاه در اينجا قرار مي گيرد
//To Do Online Payment
System.Net.ServicePointManager.Expect100Continue = false;
Zarinpal.PaymentGatewayImplementationServicePortTypeClient zp =
new Zarinpal.PaymentGatewayImplementationServicePortTypeClient();
string Authority;
int Status = zp.PaymentRequest("YOUR-ZARINPAL-MERCHANT-CODE",item.Sum, "تست درگاه پرداخت",
"aradcomputershop@gmail.com", "09190152106", "http://localhost:50657/Home/verify/"+order.OrderID, out Authority);
if (Status == 100)
{
Response.Redirect("https://Sandbox.zarinpal.com/pg/StartPay/" + Authority);
///*Response.Redirect("https://www.zarinpal.com/pg/StartPay/" + */
//Authority);
}
else
{
ViewBag.Error = "error: " + Status;
}
}
return View();
}
public ActionResult verify(int id)
{
var order= db.OrderDetail.Find(id);
if (Request.QueryString["Status"] != "" && Request.QueryString["Status"] != null && Request.QueryString["Authority"] != "" && Request.QueryString["Authority"] != null)
{
if (Request.QueryString["Status"].ToString().Equals("OK"))
{
int Amount = order.Price;
long RefID;
System.Net.ServicePointManager.Expect100Continue = false;
Zarinpal.PaymentGatewayImplementationServicePortTypeClient zp = new Zarinpal.PaymentGatewayImplementationServicePortTypeClient();
int Status = zp.PaymentVerification("YOUR-ZARINPAL-MERCHANT-CODE", Request.QueryString["Authority"].ToString(), Amount, out RefID);
if (Status == 100)
{
ViewBag.IsSuccess = true;
ViewBag.RefId = RefID;
//Response.Write("Success!! RefId: " + RefID);
}
else
{
ViewBag.Status = Status;
//Response.Write("Error!! Status: " + Status);
}
}
else
{
Response.Write("Error! Authority: " + Request.QueryString["Authority"].ToString() + " Status: " + Request.QueryString["Status"].ToString());
}
}
else
{
Response.Write("Invalid Input");
}
return View();
هرچي بالا پايين كردم متوجه نشدم راهنمايي بفرماييد ممنون ميشم
سلام دوست من وقتتون بخیر
دوست من در مورد مبلغ پرداختیتون یک بریک پوینت بزارید و ببینید قبل ورود به درگاه مبلغ شما درست محاسبه میشه یا نه احتمالا یک مشکل در نحوه محاسبه مبلغتون وجود داره
و درمورد لینک وریفای لطفا لینک وریفای رو چک کنید و پورت وارد شده رو بررسی کنید ببینید پروژتون موقع ران دقیقا روی همون پورت اجرا میشه یا نه؟
ممنون از راهنمایی شما
من اولین محصول داخل سبد خرید و اگر تعدادش رو افزایش بدم در مرحله پرداخت درست هست ولی بقیه محصولات که به سبد خرید اضافه شده را تشخیص نمیده
سلام مجدد از استاد عزیز خواهشمندم در خصوص استفاده از درگاه پرداخت که آموزش ش رو هم زحمت کشیدن تو سایت قرار دادن بزرگواری کنند در این آموزش که در بخش سبد خرید توضیح بفرمایند بتونیم استفاده کنیم قبلا از زحمات استاد کمال تشکر را دارم
دوست من شما وقتی ایتم دوم به سبد خریدتون اضافه میکنید لطفا چک کنید که دقیقا تمام مشخصات اون ایتم دومتون تو دیتابیس هم ذخیره میشه
احتمالا شما در ثبت ایتم داخل سبد خریدتون یک مشکلی دارید و به همین خاطر این اتفاق رخ میده
بزرگوار شما راهنمايي بفرماييد درقسمتي كه مبلغ قرارهست به درگاه فرستاده بشه رو من چطور بهش بفهمون از كجا بايد بگيره كدها دقيقا با كدهاي استاد يكي هست در بانك مشكلي نيست فقط تو درگاه مشكل دارم هرچي ميزنم متوجه نميشه كه مبلغ را بايد از sum بگيره
كدهاي زير مربوط به درگاه پرداخت هست كه استاد عزيز فرمودن و در بخشي هم كه مربوط به سبد خريد و درگاه پرداخت آموزش Mvc پيشرفته هست كه در قسمت 25 توضيح داده شده در همان قسمت قرارداده شده است فقط مبلغ را بلد نيست از كجا بايد بره بخونه
اين را راهنمايي بفرماييد اگر بلد نيستيد استاد مدائني عزيز خودشون قشنگ راهنمايي ميكنند به استاد سلام بنده را برسونيد و بفرماييد من چنين مشكلي دارم
//To Do Online Payment
System.Net.ServicePointManager.Expect100Continue = false;
Zarinpal.PaymentGatewayImplementationServicePortTypeClient zp =
new Zarinpal.PaymentGatewayImplementationServicePortTypeClient();
string Authority;
int Status = zp.PaymentRequest("YOUR-ZARINPAL-MERCHANT-CODE", order.sum , "تست درگاه پرداخت",
"aradcomputershop@gmail.com", "09190152106", "http://localhost:50657/ShopCard/verify/"+order.OrderID, out Authority);
if (Status == 100)
{
Response.Redirect("https://Sandbox.zarinpal.com/pg/StartPay/" + Authority);
///*Response.Redirect("https://www.zarinpal.com/pg/StartPay/" + */
//Authority);
}
else
{
ViewBag.Error = "error: " + Status;
}
return View();
}
public ActionResult verify(int id)
{
var order= db.OrderDetail.Find(id);
if (Request.QueryString["Status"] != "" && Request.QueryString["Status"] != null && Request.QueryString["Authority"] != "" && Request.QueryString["Authority"] != null)
{
if (Request.QueryString["Status"].ToString().Equals("OK"))
{
int Amount = order.Price * order.Count;
long RefID;
System.Net.ServicePointManager.Expect100Continue = false;
Zarinpal.PaymentGatewayImplementationServicePortTypeClient zp = new Zarinpal.PaymentGatewayImplementationServicePortTypeClient();
int Status = zp.PaymentVerification("YOUR-ZARINPAL-MERCHANT-CODE", Request.QueryString["Authority"].ToString(), Amount, out RefID);
int userId = db.Users.Single(u => u.UserName == User.Identity.Name).UserID;
Orders ord = new Orders();
if (Status == 100)
{
ord.IsFinaly = true;
db.SaveChanges();
ViewBag.IsSuccess = true;
ViewBag.RefId = RefID;
//Response.Write("Success!! RefId: " + RefID);
}
else
{
ViewBag.Status = Status;
//Response.Write("Error!! Status: " + Status);
}
}
else
{
Response.Write("Error! Authority: " + Request.QueryString["Authority"].ToString() + " Status: " + Request.QueryString["Status"].ToString());
}
}
else
{
Response.Write("Invalid Input");
}
return View();
}دوست عزیزم متاسفانه چون من دسترسی به کد شما ندارم به راحتی نمیتونم عملیات دیباگ رو انجام بدم باید با یک سری مسائل و ایده ها که ممکنه مشکل ساز شده باشه به شما پیشنهاد بدم که بررسی کنید کد رو
دوست عزیز مبلغ شما داره از order.sum برای درگاه سندباکس زرین پال فرستاده میشه ممکنه این مبلغ اشتباه باشه و فرستاده میشه به سمت درگاه
بیاین باهم پروسه این بخش رو یه مرور کنیم
ببینید شما یک سبد خرید دارید که order شما هست که داخل این order شما یک sum دارید هربار که به سبد خریدتون ایتمی اضافه کنید یا تعدادی رو کم زیاد کنید حتما باید sum اون order رو مجددا حساب کنید و تغییرات رو داخل دیتابیستون ذخیره کنید و بعد از همه این ها موقع فرستادن کاربر به درگاه پرداخت باید از order.sum مبلغ فاکتور رو بگیرید حالا اگر خطایی تو هر کدوم از این مراحل بیفته مبلغ نادرست به سمت درگاه ارسال میشه ، لطفا شما این مراحل رو بررسی کنید ببنید موقع درست کردن order و اضافه کردن ایتم یا تعداد به order همه محاسبات و ایتم ها به درستی داخل دیتابیس شما قرار میگیره یا نه
سلام شما رو هم حتما به استاد میرسونم لطف دارید دوست من
بازهم با تشکر از شما😊🌹
سلام و درود
نمونه دوره را برررسی میکنم اگر مشکلی داشته باشه حتما رفع میکنم و اطلاع میدم
ممنون از شما
سپاس فراوان از شما و استاد عزیز پیام استاد کلی به من انرژی خوب و مثبت داد داخل دیتابیس به درستی ذخیره میشه دیتابیس رو چک کردم فقط رو درگاه مشکل داره.یعنی مبلغ به درستی به درگاه ارسال نمیشه یعنی اونجا که باید item.sum را بخونه اصلا item.sum را شناسایی نمیکنه از شما هم بابت تند صحبت کردن عذرخواهی میکنم من ارادت خاصی به استاد دارم
سلامت باشید ، حتما نمونه را بررسی میکنم
سلام مجدد خدمت استاد عزیز باتوجه به اینکه شما مشغله کاری دارید و شاید فراموش کنید خواستم مشکلم را یاد آوری کنم عذرخواهی میکنم
سلام آقا من این کدها رو دوباره بررسی کردم همه چی دقیقا با کد استاد یکی هست من فکر میکنم کد ایراد داره چون
زمانی که سبد خرید میره برای پرداخت فقط جمع آیتم اول رو با خودش میبره درصورتی که سبد دارای چند محصول مختلف و تعداد مختلف هست در قسمت نمایش مبلغ نهایی درست است در دیتابیس به درستی ذخیره می شود تنها زمانی که درگاه پرداخت مبلغ نهایی را میخواهد حساب کند و از حساب مشتری کسر نماید تنها جمع آیتم اول ، اولین محصول در قسمت نمایش را به درگاه ارسال می شود.
لطفاً بررسی و راهنمایی بفرمایید
نمونه دوره را شخصا بررسی کزدم ، مشکلی نداشت دوست من