نحوه نوشتن verification در سیستم پرداخت آنلاین بانک ملی (دامون)

persepolise7

New Member
سلام به همه دوستان. من یه مشکلی در نوشتن verification پرداخت آنلاین بانک ملی برام پیش اومده که اگر کمک کنین خیلی ممنون میشم. من دارم این سیستم رو با asp کلاسیک پیاده سازی می کنم.
سیستم به این شکل کار میکنه : من باید یه مقادیری رو که مربوط به یک تراکنش هست رو به سایت بانک ملی (دامون) پاس بدم و سپس اونها اطلاعات مربوط به همون تراکنش رو از دیتابیس شون استخراج کنن و به من پاس بدن و من هم این اطلاعات رو برای کاربر چاپ کنم.
این سیستم در واقع یک برنامه پیگیری پرداخت آنلاین هست که به کاربر میگه وضعیت پرداختی که انجام داده در سایت بانک ملی چگونه است (موفقیت آمیز بوده، یا پرداخت با شکست مواجه شده و دوباره باید انجام بشه). کاربر ابتدا شماره پیگیری رو که پس از اتمام مراحل پرداخت آنلاین بهش داده شده رو توی یک textbox وارد میکنه و روی دکمه submit کلیک میکنه و مراحلی که در بالا توضیح داده اتفاق میافته.
حالا مشکل کجاست :
من اطلاعات مورد نظر رو به صورت یک فرم با متد پست به بانک ملی میفرستم. کارشناس بانک ملی میگه که من برای این کار نباید این اطلاعات رو به صورت مستقیم برای بانک بفرستم. یعنی در بخش action فرم نباید آدرس سایت بانک ملی (دامون) رو قرار بدم. بلکه باید این کار رو به صورت یک کلاس (class) که در .net مرسوم هست انجام بدم.
بانک ملی یک sample برای این موضوع ارائه کرده که با C#‎‎‎ هست و من نمیتونم از اون در ASP کلاسیک استفاده کنم.
آیا کسی از دوستان هست که بتونه این کلاس C#‎‎‎ رو در جاوا اسکریپت یا ASP کلاسیک پیاده کنه؟
-------------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text;
using System.Net.Security;
using System.Collections;
using System.Net.Sockets;
using System.Security.Authentication;
using System.Security.Cryptography.X509Certificates;
using System.Net;
using System.Security.Cryptography;

namespace ResiptPage
{
public partial class ChechSSL : System.Web.UI.Page
{



protected void Page_Load(object sender, EventArgs e)
{

}
private string createfpHash(string signacher)
{
string key = "eoXaEm2LUnz2OiyQ";
System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();

byte[] keyByte = encoding.GetBytes(key);

HMACMD5 hmacmd5 = new HMACMD5(keyByte);

byte[] messageBytes = encoding.GetBytes(signacher);

byte[] hashmessage = hmacmd5.ComputeHash(messageBytes);

return signacher = ByteToString(hashmessage);



}
private string ByteToString(byte[] buff)
{
string sbinary = "";

for (int i = 0; i < buff.Length; i++)
{
sbinary += buff.ToString("X2"); // hex format
}
return (sbinary);
}


protected void Button2_Click(object sender, EventArgs e)
{
using (var client = new WebClient())
{
var datatopost = Encoding.Default.GetBytes(""); //encoding.default.getbytes("param1=value1&param2=value2");
string emza =
createfpHash("737218180013^577^1265011576^1^Rial");
var result = client.UploadData

(@"https://Damoon.bsi.ir/DamoonVerificationController?x_description=damoon
test&x_login=737218180013&x_fp_sequence=577&x_fp_timestamp=1265011576&x_amount=1&x_currency_code=Rial&x_fp_hash="
+
emza, "post", datatopost);
// do something with the result
string dd = Encoding.ASCII.GetString(result);
Response.Write("<Div>");

Response.Write(dd.Remove(dd.IndexOf("<")));

Response.Write("</Div>");
string[] arrayofdata =
dd.Remove(dd.IndexOf("<")).Split(new char[2] { '&','=' });
foreach (string ssss in arrayofdata)
{
Response.Write(ssss);
Response.Write("</br>");
}
}
}
}
}

-------------------------------------------------------------------
با استفاده از کلاس بالا ارسال اطلاعات به سایت بانک ملی به صورت مخفی اتفاق میافته و کاربر در آدرس بار Browser تغییری رو مشاهده نمیکنه. (یعنی همه وقایع در همان یک صفحه اتفاق میافته)
اطلاعاتی که من باید برای سایت بانک ملی ارسال کنم تا نتیجه یک تراکنش رو بفهمم اینها هستند:
x_currency_code
x_amount
x_login
x_description
x_fp_sequence
x_fp_timestamp
x_fp_hash
و آدرسی که باید این اطلاعات رو بهش ارسال کنم:
https://Damoon.bankmelli-iran.com/DamoonVerificationController
 

جدیدترین ارسال ها

بالا