PDA

View Full Version : اتصال به درگاه بانک



korosh00
پنج شنبه 03 بهمن 1392, 15:03 عصر
سلام
قبلا بگم من از نمونه های دوستان بازدید کردم .
ولی چیزی متوجه نشدم .
لطفا یکی از دوستان یک درگاه بگذاره که کار کن باشه بدون ارور برای تست کردن .
من الان مشکلم اتصال به درگاه بانکی و شارژ یا خرید اینترنتی است .
یک نمونه کار کن که به درگاه تست بانک وصل بشه .
ممنون هستم .

kazaminasab
پنج شنبه 03 بهمن 1392, 23:34 عصر
سلام دوست عزیز منم مشکل شما را دارم ولی هیچکس درست نوضیح نمیده که چجوره و فقط فایل آن را میزارن واسه دانلود برای اتصال به بانک مختلف که اصلا نمیتونی درست و حسابی چیزی ازش بفهمنی الان من میخواهم با بانک پاسارگاد پرداخت انجام بدم ولی چیزی از اون فایل پی دی اف که بود نفهمیدم دوستان که اتصال با هر درگاهی انجام دادند توضیحی بدن که ما هم بتونیم این کار را کنیم ودعاشون میکنیم

mostafa_tak2000
پنج شنبه 03 بهمن 1392, 23:47 عصر
سلام : دوست عزیز من چند تا پرداخت اینتنرتی بانک ملت کار کردم و آخرین آن مربوط به 3 هفته پیش می باشد. اگه بانک ملت کارتونو راه میاندازه بگید .

korosh00
جمعه 04 بهمن 1392, 00:14 صبح
لطفا بدید فرقی نداره برای من .

mostafa_tak2000
جمعه 04 بهمن 1392, 00:47 صبح
اول از همه باید از بانک ملت ترمینال تهیه کرده باشید . آیا ترمینال پرداخت تهیه کردید و مستندات دروازه پرداخت بانک ملت را دارید ؟

setareh2013
جمعه 04 بهمن 1392, 07:24 صبح
من با payline کار می کنم اگه در این مورد راهنمایی خواستید بگید . دردسرهای بانک و ترمینال و مدارکی که باید به بانک بدید و ... رو هم نداره

moslem.hady
جمعه 04 بهمن 1392, 07:56 صبح
اول از همه باید از بانک ملت ترمینال تهیه کرده باشید . آیا ترمینال پرداخت تهیه کردید و مستندات دروازه پرداخت بانک ملت را دارید ؟
درست میگن. تا وقتی مرچنت آیدی(کدی که بانک بهتون میده) رو نداشته باشید درگاهتون کارنمیکنه و حتی تست نمیشه کرد.
مستندات درگاه هربانکی فرق میکنه و معمولا همه یه کد مثال دارند که میتونید از اون استفاده کند.
بگید چه درگاهی دارید تا دوستان کمک کنند.

korosh00
جمعه 04 بهمن 1392, 10:40 صبح
اگه کد بانک را بهم بدند (هنوز یکماهه همه کارها را کردم جوابی ندادند) حله ؟قبلش نمیشه با یک کدی تست کرد باید حتما اون رمز بانک باشه ؟

korosh00
جمعه 04 بهمن 1392, 10:43 صبح
این payline چجوری کار می کنه . فقط یک قسمته که افراد وجه را واریز می کنند و بعد من باید برم ببینم کی واریز کرده و حسابش را شارژ کنم یا اینکه خودکار هر کسی وجه بریزه یک چیزی میفرسته که ثبت شه و حساب طرف تو سایتم شارژ شه . دقیقا مثل دروازه پرداخت بانکها کار می کنه ؟

kazaminasab
جمعه 04 بهمن 1392, 11:26 صبح
دوستان تاپیک را به بی راه نکشانید دوستانی که اگر با هر درگاهی کار کردند اگه لطف کنند اونو توضیح بدهند به صورت یک تاپیک جداگانه الان به نظر من در مورد کد اتصال به درگاه بانکی چه ملت وپارسیان وپاسارگاد وسامان و... در این تاپیک بحث شود البته الان فقط اتصال به یک بانک مطرح بشه و کامل در مورد کدش و چگونگه این دوستان با کدشون به درگاه وصل شدند وپرداخت وبرگشت و صفحاتی آن خوبه منظور این نیست که کلش بگن فقط تمرکز از صفحه تایید نهایی واتصال به بانک وبرگشت وبررسی
امیدوارم این تایپیک خوب به نتیجه برسه وهر کی نیاد یک درگاه اتصال راتوضیح دهدو اخر هیچ کدوم به نتیجه نرسه مثل تایپیک قبل
باتشکر

setareh2013
جمعه 04 بهمن 1392, 12:26 عصر
این payline چجوری کار می کنه . فقط یک قسمته که افراد وجه را واریز می کنند و بعد من باید برم ببینم کی واریز کرده و حسابش را شارژ کنم یا اینکه خودکار هر کسی وجه بریزه یک چیزی میفرسته که ثبت شه و حساب طرف تو سایتم شارژ شه . دقیقا مثل دروازه پرداخت بانکها کار می کنه ؟
وقتی کسی پولی واریز می کنه یک کد رهگیری بهتون میده . داخل همان صفحه ی واریز کد ذخیره سازی کد رهگیری داخل پایگاه داده رو می نویسید و بنابراین هر موقع کسی پولی واریز کرد تاریخ و مقدار واریز شده رو داخل سایت خودتون می تونید ببینید .

korosh00
جمعه 04 بهمن 1392, 12:40 عصر
و معلومه کی پول را پرداخت کرده ؟ منظورم آی دی پرداخت کننده مشخصه . یعنی فلانی پرداخت را انجام داد و حسابش خود به خود شارژ بشه . نه اینکه ما ببینیم فلانی وجه را واریز کرده بعد بریم دستی حساب کاربریش را شارژ کنیم . متوجه شدید منظورم را ؟

mostafa_tak2000
جمعه 04 بهمن 1392, 23:48 عصر
بله دوست عزیز . البته شما باید زحمتشو بکشید بانک اسم و فامیل و ... بهت نمیده . بانک فقط به شما دو تا کد برگشت میده . شماباید قبل از اینکه کاربر به سمت دروازه پرداخت بره یک فرم دریافت اطلاعات فردی بزاری که کاربر پر کنه و سپس دکمه پرداخت را بزنه و به سمت دروازه پرداخت هدایت بشه و در صفحه callback که در پایان خرید نمایش داده میشه و بانک کد رهگیری به شما برمیگردونه بایستی کد رهگیری را به رکورد مورد نظر متصل و ذخیره کنی . نکته مهم که باید بگم اینه که خرید از بانک ملت با سه مرحله دستور انجام میشه یعنی شما باید هر مرحله را بایک کد نویسی مختصر انجام بدید تا پرداخت انجام بشه .

مرحله اول در خواست انجام تراکنش به بانک است که تابع آن به نام bpPayRequest : در این مرحله درواقع به بانک می گوئید که میخواهید تراکنشی را انجام بدید و دستور به سمت بانک میره

مرحله دوم مرحله bpVerifyRequest است که درواقع شما پیگیری می کنید که آیا دستور پرداخت شما توسط بانک به درستی انجام شده است یا نه

مرحله سوم که مرحله اصلی و پایانی می باشد مرحله bpSettleRequest است که توسط این تابع به بانک میگوئید که دستور خرید را انجام بده و وجه را به حساب شما واریز کنه

دقت داشته باش که اگر این سه مرحله پشت سر هم انجام نشه و کدهای تائید هر سه مرحله مورد تائید هم دیگر نباشند هیچ مبلغی واریز نمیشه

mostafa_tak2000
جمعه 04 بهمن 1392, 23:51 عصر
پاسخ نکته آخرت یادم رفته بود بگم
بله دوست عزیز وقتی مرحله واریز هم به درستی انجام شده و کد رهگیری و همچنین کد تائید واریز به سایت شما برگشت داده شد بایبستی کد های مربوطه خودتو بنویسی که چطوری حساب طرف و چه مقدار انجام بشه . نمیدونم تونستم بهتر توضیح بدم یا نه

mostafa_tak2000
جمعه 04 بهمن 1392, 23:59 عصر
من نمونه کد صفحه callback یکی از سایتهام را برات گذاشتم . ببین به دردت میخوره یانه
Label27.Text = Session("meli")
Dim chkpaym As String
Dim chkverify As String
Dim chksatt As String
'RefIdLabel.Text = Request.Params("RefId")
chkpaym = Request.Params("ResCode")
SaleOrderId.Text = Request.Params("SaleOrderId")
SaleReferenceId.Text = Request.Params("SaleReferenceId")

'****************** ثبت مشخصات واریزی به بانک *********************
cmd.Parameters.Clear()
cmd.CommandText = "update payment set payid=@payid,chekpay=@chekpay where ordid=@ordid"
cmd.Parameters.AddWithValue("payid", SaleReferenceId.Text)
cmd.Parameters.AddWithValue("chekpay", chkpaym)
cmd.Parameters.AddWithValue("ordid", Val(SaleOrderId.Text))
accon.Open()
cmd.ExecuteNonQuery()
accon.Close()
' دراین جا گفتم اگر درخواست پرداخت به سمت بانک رفته ادامه بده در واقع همون مرحله اول را چک میکنه
If chkpaym = "0" Then

Try
Dim result As String

BypassCertificateError()

Dim bpService As BPService.PaymentGatewayImplService = New BPService.PaymentGatewayImplService()

result = bpService.bpVerifyRequest(Int64.Parse(TerminalId), UserName, UserPassword, Int64.Parse(SaleOrderId.Text), Int64.Parse(SaleOrderId.Text), Int64.Parse(SaleReferenceId.Text))
chkverify = result
Catch exp As Exception
chkverify = "Error: " + exp.Message
End Try
cmd.Parameters.Clear()
cmd.CommandText = "update payment set chekver=@chekver where ordid=@ordid"
cmd.Parameters.AddWithValue("chekver", chkverify)
cmd.Parameters.AddWithValue("ordid", Val(SaleOrderId.Text))
accon.Open()
cmd.ExecuteNonQuery()
accon.Close()
' اینجا همان مرحله دوم است و بررسی کرده آیا بانک دستور پرداخت شما را انجام داده ؟
If chkverify = "0" Then

Dim result As String

BypassCertificateError()

Dim bpService As New BPService.PaymentGatewayImplService()
result = bpService.bpSettleRequest(Int64.Parse(TerminalId), UserName, UserPassword, Int64.Parse(SaleOrderId.Text), Int64.Parse(SaleOrderId.Text), Int64.Parse(SaleReferenceId.Text))
chksatt = result
cmd.Parameters.Clear()
cmd.CommandText = "update payment set cheksett=@cheksett where ordid=@ordid"
cmd.Parameters.AddWithValue("cheksett", chksatt)
cmd.Parameters.AddWithValue("ordid", Val(SaleOrderId.Text))
accon.Open()
cmd.ExecuteNonQuery()
accon.Close()
' این جا هم مرحله سوم است که بررسی کرده که آیا واریز هم به درستی انجام شده یا نه و اگر صحیح بوده کارهای ثبتی را انجام میده و مشخصات کاربر را در بانک ثبت و همچنین کلمه عبور کاربر را در جدول مربوطه در بانک ثبت میکنه و کارهای دیگری که در پایین مشاهده می کنید .
If chksatt = "0" Then
'*************************** ثبت اطلاعات جزئی در جدل لوگین
cmd.Parameters.Clear()
cmd.CommandText = "insert into login (id,idmeli,username,password,lock) values (@id,@idmeli,@username,@password,@lock)"
cmd.Parameters.AddWithValue("id", SaleOrderId.Text)
cmd.Parameters.AddWithValue("idmeli", Label27.Text)
cmd.Parameters.AddWithValue("username", FormsAuthentication.HashPasswordForStoringInConfig File(SaleReferenceId.Text, "sha1"))
cmd.Parameters.AddWithValue("password", FormsAuthentication.HashPasswordForStoringInConfig File(SaleReferenceId.Text, "sha1"))
cmd.Parameters.AddWithValue("lock", "0")
accon.Open()
cmd.ExecuteNonQuery()
accon.Close()
'************************ اختصاص کد پرونده بایگانی به فرد
Dim idpp As Integer
cmd.Parameters.Clear()
cmd.CommandText = ("select max(id0) as idp from jobseeker")
Dim dr2 As SqlDataReader
accon.Open()
dr2 = cmd.ExecuteReader
If dr2.Read Then
idpp = Val(dr2("idp"))
End If
idpp = Val(idpp) + 1
accon.Close()
'************************ ثبت اطلاعات در جدول اصلی مشخصات
cmd.Parameters.Clear()
cmd.CommandText = "insert into jobseeker (id0,id,id2,idmeli) values (@id0,@id,@id2,@idmeli)"
cmd.Parameters.AddWithValue("id0", idpp)
cmd.Parameters.AddWithValue("id", SaleReferenceId.Text)
cmd.Parameters.AddWithValue("id2", SaleOrderId.Text)
cmd.Parameters.AddWithValue("idmeli", Label27.Text)
accon.Open()
cmd.ExecuteNonQuery()
accon.Close()
'***************************

توجه میکنی که همه کارها بعداز تائید مرحله سوم یعنی واریز وجه انجام شده است و تا قبل از واریز فقط کارهای بررسی و دستور انجام می دادیم

eidazha
شنبه 05 بهمن 1392, 00:50 صبح
با سلام
اكثرا درگاه ها الگوريتماشون با هم فرق ميكنه مثلا پاسارگاد الگوريتمش رو يكم پيچيده كرده (براي امنيت بيشتر) مثلا بانك سامان از soap استفاده كرده اما كلا اتصال بانك به اين صورت انجام ميشه
بانك بهتون دو تا شماره ميده يكي merchant code و ديگري terminal code و يك آدرس اينترنتي جهت ارسال داده ها به آن آدرس (با متد post)
حالا شما بايد طبق فايل راهنما اسامي درخواستي را براي بانك ارسال كنيد كه شامل اين موارد مي باشد
1- شماره فاكتور (كه بايد خودتون به صورت اتوماتيك ايجاد كنيد)
2-شماره مرچنت
3-كد ترمينال
4-مبلغ پرداختي
5-آدرس صفحه اي از وب سايت خود جهت redirect كردن كاربر بعد پرداخت

حالا مشتري مياد اطلاعات پرداخت رو وارد ميكنه مثلا نام و نام خانوادگي ، نام محصول ، مبلغ پرداخت ، ... شما حالا بايد اين اطلاعات رو قبل از ارسال مشتري به صفحه پرداخت بانك در ديتابيس ذخيره كنيد + شماره فاكتور
حالا مشتري ميره به صفحه پرداخت بعد انجام پرداخت بانك مشتري را به صفحه اي كه شما جهت redirect انتخاب كرده ايد ميفرسته به همراه شماره فاكتور و شماره رفرنس و .. كه شما بايد با تابع request اونها رو بخونيد و از آنجا كه بانك شماره فاكتوري كه شما برايش فرستاده بوديد رو هم براي شما فرستاده ميتونيد بفهميد كه اين پرداخت براي كدام ركورد مي باشد. و از طريق كد رفرنسي كه فرستاده شما بايد اون كد رو دوباره به صفحه اي كه تو فايل راهنما جهت تشخيص موفق بودن يا نبودن پرداخت بفرستيد كه يك كد بهتون ميده به صورت عدد مي باشد ، مثلا اگر عدد 1 بود پرداخت موفقه ، اگر 2 بود پرداخت ناموفق به دليل نبود اعتبار در كارت ، 3 پرداخت ناموق به خاطر اشتباه وارد كردن اطلاعات حساب و ...

مثال بالا حالت كلي از نحوه كار يك پرداخت اينترنتي هست كه اكثرا به اين شكل مي باشد.

در كل كار زياد سختي نيست اونم با asp.net ، با asp classic پدر آدمو در مياره :))

دوستمان مصطفي كامل توضيح دادن

eidazha
شنبه 05 بهمن 1392, 01:01 صبح
و معلومه کی پول را پرداخت کرده ؟ منظورم آی دی پرداخت کننده مشخصه . یعنی فلانی پرداخت را انجام داد و حسابش خود به خود شارژ بشه . نه اینکه ما ببینیم فلانی وجه را واریز کرده بعد بریم دستی حساب کاربریش را شارژ کنیم . متوجه شدید منظورم را ؟

شما يك كد كه اين كد بايد براي هر خريد متفاوت باشه براي درگاه ميفرستيد درگاه بعد پرداخت اون كد رو براي وب سايت شما ميفرسته كه شما ميتوانيد از اين كد بفهميد كه اين پرداخت براي كدام مشتري ميباشد كه اگر پرداختش موفق بوده حساب كاربريش شارژ بشه اگر ناموفق بوده بگه كه پرداخت شما ناموفق بوده و هيچ عملي رو انجام نده

korosh00
شنبه 05 بهمن 1392, 08:48 صبح
تشکر از همه دوستان . کدهای بالا برای وی بی هست گذاشتید ؟