PDA

View Full Version : مشکل با کد برگشت درگاه بانکی



nimamidos
چهارشنبه 01 بهمن 1393, 20:27 عصر
سلام دوستان

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

مشکل از کجاست؟




namespace FinalWebApp
{
public partial class payback : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["uid"] != null && Session["oprice"] != null)
{
NameValueCollection nvc = Request.Form;
string trans_id = "", id_get = "";
if (!string.IsNullOrEmpty(nvc["trans_id"]))
{
trans_id = nvc["txtUserName"];
}


if (!string.IsNullOrEmpty(nvc["id_get"]))
{
id_get = nvc["txtPassword"];
}


var request = (HttpWebRequest)WebRequest.Create("http://www.payline.ir/payment/gateway-result-second");
string api = ss.api;
string redirect = "http://1234.com/payback.aspx?lang=fa";
var postData = "api=" + api;
postData += "&id_get=" + id_get + "&trans_id=" + trans_id;
var data = Encoding.ASCII.GetBytes(postData);


request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;


using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}


var response = (HttpWebResponse)request.GetResponse();


var responseString = new StreamReader(response.GetResponseStream()).ReadToE nd();


if (responseString.Contains("-1"))
{
lblstatus.Text = "<div class=\"error_message\">کد شناسائی ارسالی با نوع کد تعریف شده در درگاه پرداخت سازگار نیست.</div>";
}
else if (responseString.Contains("-2"))
{
lblstatus.Text = "<div class=\"error_message\">کد تراکنش ارسال شده معتبر نیست.</div>";
}
else if (responseString.Contains("-3"))
{
lblstatus.Text = "<div class=\"error_message\">کد دریافتی ارسال شده معتبر نیست.</div>";
}
else if (responseString.Contains("-4"))
{
lblstatus.Text = "<div class=\"error_message\">چنین تراکنشی در ثبت نشده است و یا پرداخت مورد نظر موفقیت آمیز نبوده است.</div>";
}
else if (responseString.Contains("1"))
{
db cs = new db();
string exp = "";
string ptype = "ریال";
decimal price = 0;
price = Convert.ToDecimal(Session["oprice"].ToString());


exp += "پرداخت آنلاین";
exp += '\n' + "پیگیری : " + trans_id;
exp += '\n' + "شماره دریافتی : " + id_get;
exp += '\n' + "مبلغ تراکنش : " + price.ToString() + " " + ptype;


if (cs.AddPayment(0, Session["uid"].ToString(), Session["uname"].ToString(), exp, price.ToString(), 1))
{
lblstatus.Text = "<div class=\"info_message\">پرداخت شما با موفقیت ثبت گردید.</div>";
Response.Redirect("UserPayments.aspx#chapter1");
}
else
{
lblstatus.Text = "<div class=\"warning_message\">پرداخت شما موفقیت آمیز نبود.</div>";
}


}
}
else
lblstatus.Text = "<div class=\"warning_message\">به علت کند عمل نمودن باید مجددا وارد حساب کاربری خود شوید.</div>";


}
}
}