yayan85
جمعه 01 خرداد 1394, 00:33 صبح
سلام. بعد از انجام تراکنش زرین پال در سایت و بازگشت به صفحه سایت ، با اینکه تراکنش موفق انجام شده و شماره تراکنش رو هم کاربر میبینه ولی بعضی وقت ها کد های بعد که مربوط به درج اطلاعات تراکنش در جدول مربوطه هستند انجام نمیشه و قسمت catch (در روند ثبت اطلاعات مشکلی رخ داده است) اجرا میشه که همین باعث شارژ نشدن اتوماتیک حساب کاربر در سایت میشه. البته این اتفاق همیشه نمی افته. تقریبا از 150 کاربر شاید 20 تا این مشکل پیش میاد. برای همین هر چی خودم تست می کنم درسته .
کد ها:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.QueryString["Status"] != "" && Request.QueryString["Status"] != null && Request.QueryString["Authority"] != "" && Request.QueryString["Authority"] != null)
{
if (Request.QueryString["Status"].ToString().Equals("OK"))
{
int Amount = 2000;
long RefID;
System.Net.ServicePointManager.Expect100Continue = false;
zarinpal.PaymentGatewayImplementationService zp = new zarinpal.PaymentGatewayImplementationService();
int Status = zp.PaymentVerification("**************************", Request.QueryString["Authority"].ToString(), Amount, out RefID);
if (Status == 100)
{
try
{
//Response.Write("Success!! RefId: " + RefID);
verifyPM.Text = "پرداخت شما با موفقیت انجام شد.شماره تراکنش :" + RefID;
/////ثبت تراکنش در جدول پرداخت ها و فعال سازی اکانت
DateTime persianDate = DateTime.Now;
var Engheza = (persianDate.AddDays(30));
_newTBLpricelist.pricecode = RefID.ToString();
_newTBLpricelist.userID = Int32.Parse(Session["ID"].ToString());
_newTBLpricelist.pricemablagh = Amount;
_newTBLpricelist.enghezaDate = Persia.Calendar.ConvertToPersian(Engheza).ToString ();
_newTBLpricelist.priceDate = Persia.Calendar.ConvertToPersian(persianDate).ToSt ring();
db.TBL_priceLists.InsertOnSubmit(_newTBLpricelist) ;
db.SubmitChanges();
userPM.Text = "مبلغ پرداخت شده در حساب شما ذخیره شد و حساب کاربری شما به مدت 30 روز فعال گردید";
lbl_engheza.Text = "تاریخ انقضا حساب کاربری شما" + " " + Persia.Calendar.ConvertToPersian(Engheza).ToString ();
}
catch
{
userPM.Text = "در روند ثبت اطلاعات مشکلی رخ داده است";
}
}
else
{
try
{
verifyPM.Text = ".خطا: پرداخت شما انجام نشد" + Status;
//Response.Write("Error!! Status: " + Status);
//ثبت در جدول لاگ خطا عدم ارسال
TBL_priceLog _newTBL = new TBL_priceLog();
_newTBL.userID = Int32.Parse(Session["ID"].ToString());
_newTBL.Tdarj = Persia.Calendar.ConvertToPersian(DateTime.Now).ToS tring();
_newTBL.logName = Status.ToString();
db.TBL_priceLogs.InsertOnSubmit(_newTBL);
db.SubmitChanges();
}
catch
{
verifyPM.Text = ".خطا: پرداخت شما انجام نشد" + Status;
}
}
}
else
{
verifyPM.Text = ("Error! Authority: " + Request.QueryString["Authority"].ToString() + " Status: " + Request.QueryString["Status"].ToString());
}
}
else
{
verifyPM.Text = ("خطا : ورودی نا مشخص");
}
کد ها:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request.QueryString["Status"] != "" && Request.QueryString["Status"] != null && Request.QueryString["Authority"] != "" && Request.QueryString["Authority"] != null)
{
if (Request.QueryString["Status"].ToString().Equals("OK"))
{
int Amount = 2000;
long RefID;
System.Net.ServicePointManager.Expect100Continue = false;
zarinpal.PaymentGatewayImplementationService zp = new zarinpal.PaymentGatewayImplementationService();
int Status = zp.PaymentVerification("**************************", Request.QueryString["Authority"].ToString(), Amount, out RefID);
if (Status == 100)
{
try
{
//Response.Write("Success!! RefId: " + RefID);
verifyPM.Text = "پرداخت شما با موفقیت انجام شد.شماره تراکنش :" + RefID;
/////ثبت تراکنش در جدول پرداخت ها و فعال سازی اکانت
DateTime persianDate = DateTime.Now;
var Engheza = (persianDate.AddDays(30));
_newTBLpricelist.pricecode = RefID.ToString();
_newTBLpricelist.userID = Int32.Parse(Session["ID"].ToString());
_newTBLpricelist.pricemablagh = Amount;
_newTBLpricelist.enghezaDate = Persia.Calendar.ConvertToPersian(Engheza).ToString ();
_newTBLpricelist.priceDate = Persia.Calendar.ConvertToPersian(persianDate).ToSt ring();
db.TBL_priceLists.InsertOnSubmit(_newTBLpricelist) ;
db.SubmitChanges();
userPM.Text = "مبلغ پرداخت شده در حساب شما ذخیره شد و حساب کاربری شما به مدت 30 روز فعال گردید";
lbl_engheza.Text = "تاریخ انقضا حساب کاربری شما" + " " + Persia.Calendar.ConvertToPersian(Engheza).ToString ();
}
catch
{
userPM.Text = "در روند ثبت اطلاعات مشکلی رخ داده است";
}
}
else
{
try
{
verifyPM.Text = ".خطا: پرداخت شما انجام نشد" + Status;
//Response.Write("Error!! Status: " + Status);
//ثبت در جدول لاگ خطا عدم ارسال
TBL_priceLog _newTBL = new TBL_priceLog();
_newTBL.userID = Int32.Parse(Session["ID"].ToString());
_newTBL.Tdarj = Persia.Calendar.ConvertToPersian(DateTime.Now).ToS tring();
_newTBL.logName = Status.ToString();
db.TBL_priceLogs.InsertOnSubmit(_newTBL);
db.SubmitChanges();
}
catch
{
verifyPM.Text = ".خطا: پرداخت شما انجام نشد" + Status;
}
}
}
else
{
verifyPM.Text = ("Error! Authority: " + Request.QueryString["Authority"].ToString() + " Status: " + Request.QueryString["Status"].ToString());
}
}
else
{
verifyPM.Text = ("خطا : ورودی نا مشخص");
}