bftarane
شنبه 14 تیر 1393, 11:17 صبح
1
طبق مستندات به این نتیجه رسیدم که تابع bpPayRequest باید در صفحه رفت
و توابع
bpVerifyRequest
bpSettleRequest
در صفحه برگشت از بانک باید فراخوانی بشوند، درسته؟
............................
2
در یک قسمت از مستندات گفته شده
همچنین اگر به هر دلیلی پذیرنده مقدار بازگشتی از bpVerifyRequest را دریافت ننماید (وضعیت تایید خرید برایش مشخص نباشد) باید از متد bpInquiryRequest برای استعلام آن استفاده نماید.
حالا می خواستم بدونم چطور چک کنیم bpVerifyRequest مقدار بازگشتی نداشته؟ مقدار بازگشتی از
به این شکل درسته؟ یعنی اگه برگشتی نداشته باشه null هست؟
if (result==null)
...............................................
3
در یک قسمت از مستندات گفته شده:
نكته: در صورتي كه مقدار بازگشتي تابع bpSettleRequest برابر " 45 " باشد به منزله موفق بودن عمليات
واريز مي باشد. در واقع تراكنش واريز، قبلا ارسال شده و موفق بوده است. به عبارت ديگر، كليه تراكنشهايي كه
مقدار بازگشتي " 0" و يا " 45 " داشته باشند به حساب واريز مي شوند.
خوب ما درخواست واریز رو هم دادیم و فرضاً نتیجه رویداد bpSettleRequest هم صفر یا 45 اومده و خوب این یعنی به حساب واریز خواهد شد، ولی اینکه صددرصد اومده تو حساب آیا راهی داره این چک بشه؟
لطفاً راهنمایی کنید.
این کل کدهای صفحه برگشت هم که من نوشتم لطفاً چک کنید ببینید درسته؟ البته خودم با 1000 ریال چک کردم به درگاه میره موقع برگشت هم ظاهراً همه چی اوکی هست ولی من که نمی تونم مطمئن بشم پول صد در صد به حساب کارفرما واریز شده.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;
using System.Text;
using System.Configuration;
public partial class PayBack : System.Web.UI.Page
{
public static readonly string PgwSite = ConfigurationManager.AppSettings["PgwSite"];
public static readonly string CallBackUrl = ConfigurationManager.AppSettings["CallBackUrl"];
public static readonly string TerminalId = ConfigurationManager.AppSettings["TerminalId"];
public static readonly string UserName = ConfigurationManager.AppSettings["UserName"];
public static readonly string UserPassword = ConfigurationManager.AppSettings["UserPassword"];
protected void Page_Load(object sender, EventArgs e)
{
//RefIdLabel.Text = Request.Params["RefId"];
//ResCodeLabel.Text = Request.Params["ResCode"];
//SaleOrderIdLabel.Text = Request.Params["SaleOrderId"];
//SaleReferenceIdLabel.Text = Request.Params["SaleReferenceId"];
string RefId = Request.Params["RefId"];
string ResCode = Request.Params["ResCode"];
string SaleOrderId = Request.Params["SaleOrderId"];
string SaleReferenceId = Request.Params["SaleReferenceId"];
if (ResCode=="0")
{
try
{
string result;
BypassCertificateError();
ir.shaparak.bpm.PaymentGatewayImplService bpService = new ir.shaparak.bpm.PaymentGatewayImplService();
result = bpService.bpVerifyRequest(Int64.Parse(TerminalId),
UserName,
UserPassword,
Int64.Parse(SaleOrderId),
Int64.Parse(SaleOrderId),
Int64.Parse(SaleReferenceId));
VerifyOutputLabel.Text = result;
if (result == "0")
{
//پرداخت با موفقیت صورت گرفت
lbl_TransactionNumber.Text =SaleReferenceId;
try
{
string SettelResult;
BypassCertificateError();
ir.shaparak.bpm.PaymentGatewayImplService SettelbpService = new ir.shaparak.bpm.PaymentGatewayImplService();
SettelResult = bpService.bpSettleRequest(Int64.Parse(TerminalId),
UserName,
UserPassword,
Int64.Parse(SaleOrderId),
Int64.Parse(SaleOrderId),
Int64.Parse(SaleReferenceId));
SettleOutputLabel.Text = SettelResult;
}
catch (Exception exp)
{
SettleOutputLabel.Text = "Error: " + exp.Message;
}
}
}
catch (Exception exp)
{
VerifyOutputLabel.Text = "Error: " + exp.Message;
}
}
}
void BypassCertificateError()
{
ServicePointManager.ServerCertificateValidationCal lback +=
delegate(
Object sender1,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
};
}
}
طبق مستندات به این نتیجه رسیدم که تابع bpPayRequest باید در صفحه رفت
و توابع
bpVerifyRequest
bpSettleRequest
در صفحه برگشت از بانک باید فراخوانی بشوند، درسته؟
............................
2
در یک قسمت از مستندات گفته شده
همچنین اگر به هر دلیلی پذیرنده مقدار بازگشتی از bpVerifyRequest را دریافت ننماید (وضعیت تایید خرید برایش مشخص نباشد) باید از متد bpInquiryRequest برای استعلام آن استفاده نماید.
حالا می خواستم بدونم چطور چک کنیم bpVerifyRequest مقدار بازگشتی نداشته؟ مقدار بازگشتی از
به این شکل درسته؟ یعنی اگه برگشتی نداشته باشه null هست؟
if (result==null)
...............................................
3
در یک قسمت از مستندات گفته شده:
نكته: در صورتي كه مقدار بازگشتي تابع bpSettleRequest برابر " 45 " باشد به منزله موفق بودن عمليات
واريز مي باشد. در واقع تراكنش واريز، قبلا ارسال شده و موفق بوده است. به عبارت ديگر، كليه تراكنشهايي كه
مقدار بازگشتي " 0" و يا " 45 " داشته باشند به حساب واريز مي شوند.
خوب ما درخواست واریز رو هم دادیم و فرضاً نتیجه رویداد bpSettleRequest هم صفر یا 45 اومده و خوب این یعنی به حساب واریز خواهد شد، ولی اینکه صددرصد اومده تو حساب آیا راهی داره این چک بشه؟
لطفاً راهنمایی کنید.
این کل کدهای صفحه برگشت هم که من نوشتم لطفاً چک کنید ببینید درسته؟ البته خودم با 1000 ریال چک کردم به درگاه میره موقع برگشت هم ظاهراً همه چی اوکی هست ولی من که نمی تونم مطمئن بشم پول صد در صد به حساب کارفرما واریز شده.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using System.Security.Cryptography.X509Certificates;
using System.Net.Security;
using System.Text;
using System.Configuration;
public partial class PayBack : System.Web.UI.Page
{
public static readonly string PgwSite = ConfigurationManager.AppSettings["PgwSite"];
public static readonly string CallBackUrl = ConfigurationManager.AppSettings["CallBackUrl"];
public static readonly string TerminalId = ConfigurationManager.AppSettings["TerminalId"];
public static readonly string UserName = ConfigurationManager.AppSettings["UserName"];
public static readonly string UserPassword = ConfigurationManager.AppSettings["UserPassword"];
protected void Page_Load(object sender, EventArgs e)
{
//RefIdLabel.Text = Request.Params["RefId"];
//ResCodeLabel.Text = Request.Params["ResCode"];
//SaleOrderIdLabel.Text = Request.Params["SaleOrderId"];
//SaleReferenceIdLabel.Text = Request.Params["SaleReferenceId"];
string RefId = Request.Params["RefId"];
string ResCode = Request.Params["ResCode"];
string SaleOrderId = Request.Params["SaleOrderId"];
string SaleReferenceId = Request.Params["SaleReferenceId"];
if (ResCode=="0")
{
try
{
string result;
BypassCertificateError();
ir.shaparak.bpm.PaymentGatewayImplService bpService = new ir.shaparak.bpm.PaymentGatewayImplService();
result = bpService.bpVerifyRequest(Int64.Parse(TerminalId),
UserName,
UserPassword,
Int64.Parse(SaleOrderId),
Int64.Parse(SaleOrderId),
Int64.Parse(SaleReferenceId));
VerifyOutputLabel.Text = result;
if (result == "0")
{
//پرداخت با موفقیت صورت گرفت
lbl_TransactionNumber.Text =SaleReferenceId;
try
{
string SettelResult;
BypassCertificateError();
ir.shaparak.bpm.PaymentGatewayImplService SettelbpService = new ir.shaparak.bpm.PaymentGatewayImplService();
SettelResult = bpService.bpSettleRequest(Int64.Parse(TerminalId),
UserName,
UserPassword,
Int64.Parse(SaleOrderId),
Int64.Parse(SaleOrderId),
Int64.Parse(SaleReferenceId));
SettleOutputLabel.Text = SettelResult;
}
catch (Exception exp)
{
SettleOutputLabel.Text = "Error: " + exp.Message;
}
}
}
catch (Exception exp)
{
VerifyOutputLabel.Text = "Error: " + exp.Message;
}
}
}
void BypassCertificateError()
{
ServicePointManager.ServerCertificateValidationCal lback +=
delegate(
Object sender1,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
return true;
};
}
}