نمایش نتایج 1 تا 11 از 11

نام تاپیک: پرداخت بانک ملي

  1. #1
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    Question پرداخت بانک ملي

    کسي تا حالا با بانک ملي براي پرداخت با asp classic کار نکرده؟(ويرايش جديدش استفاده از وب سرويس)
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  2. #2
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: پرداخت بانک ملي

    من تو کار با وب سرويس بانک مشکل دارم.خطاي زير رو ميده ، کسي ميدونه يعني چي؟کجا ميتونم مرجع Soap رو گيربيارم :
    Err.Number 3 = -2147024809
    SoapMapper:Restoring data into SoapMapper string failed HRESULT=0x80070057: The parameter is incorrect. - Client:Unspecified client error. HRESULT=0x80070057: The parameter is incorrect.

    طبق گفته پشتيباني بايد در تابع PaymentUtility پارامتر آخرش يک متغيير باشه که وبسروريس مقداري رو در اون ذخيره و برگرداند.همچنين گفتن که بايد بصورت ref فرستاده بشه.اونطور که من جستجو کردم در asp بصورت پيش فرض همينطوره.
    کدي که من استفاده ميکنم :
    On Error Resume Next
    strRequestkey = ""
    strForm = ""
    SET objSoapClient = Server.CreateObject("MSSOAP.SoapClient30")
    objSoapClient.ClientProperty("ServerHTTPRequest") = True
    If Err Then Response.Write "<br>Err.Number 1 = " & Err.Number & "<br>" & Err.Description
    Call objSoapClient.mssoapinit("https://bmiutility.bmi.ir/merchantutility.asmx?WSDL","MerchantUtility")
    If Err Then Response.Write "<br>Err.Number 2 = " & Err.Number & "<br>" & Err.Description
    strForm = objSoapClient.PaymentUtility("1111",10000,123456," bbbb","11112222","http://mydomain.com/recive.asp",strRequestkey)
    If Err Then Response.Write "<br>Err.Number 3 = " & Err.Number & "<br>" & Err.Description
    Response.Write(strForm)
    Response.Write(strRequestkey)
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  3. #3
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: پرداخت بانک ملي

    نمونه کد دات نت و php اون همراهش بايد باشه.من بعد از کلي گشتن و امتحان کردن کدهاي مختلف راه حلش رو پيدا کردم.نهايي که شد اينجا قرار ميدم.
    اولي آدرس صفحه اي از سايت شماست که کاربر از سايت شما به سايت بانک ملي براي پرداخت هدايت ميشه.
    دومي آدرس صفحه اي از سايت شماست که کاربر از سايت بانک به سايت شما برگشت داده ميشه.
    در موارد خاصي از شماره پورت استفاده ميشه.
    آخري هم نوع زبان برنامه نويسي شما هست.
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  4. #4
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: پرداخت بانک ملي

    براي من مستندات کار با درگاه پرداخت اينترنتي بانک ملي نسخه 3.0 رو فرستادم به همراه يک مثال مفصل دات نت و يک مثال php
    اول اينکه کد php شون رو هاست من نه با php 4.7 و نه با php 5 کار نکرد و خطا داد که اعلام کردم بهشون اما جوابي ندادند.
    http://bmi.ir/Forums/ShowPost.aspx?PostID=4153
    دوم هم اينکه چون دات نت نميدونم رفتم سراغ اينکه با همين asp classic باهاش کارکنم.اين درگاه يک وبسرويس هست به آدرس https://bmiutility.bmi.ir/merchantutility.asmx که البته 4 خطه يعني https://bmiutility1.bmi.ir/merchantutility.asmx و ... که به شما اعلام ميکنند که شما روي کدوم Line بايد کارکنيد.
    نکته ديگه اينکه همانطور که در اين تاپيک گفتم مشکلي وجود داره براي استفاده از soap و اينکه در اين وبسرويس در اکثر متدها از متغيير out که در C#‎ تعريف ميشه استفاده شده که تقريبا مثل ref ميمونه با يکسري تفاوت که در asp classic نميشه استفاده کرد.(به نظرم اينطوري برنامه نويس وبسرويس کار خودش رو راحتتر کرده مثلا در وبسرويس بانک سامان تا جاييکه من مثالشون رو ديدم با soap متصل ميشويد و خبري از out نيست که با فراخواني يک متد بيش از 2 مقدار رو بخوان برگردونند)بنابراين گزينه soap رو کنار گزاشتم .
    کلا روند کلي اينطوريه که شما ابتدا متد PaymentUtility را با پارامترهاش صدا ميزنيد و اين متد يک رشته که فرم html هست به شما برميگردانه و کافيه شما يک دکمه submit به اون اضافه کنيد و کاربر يا تايد به سايت بانک جهت پرداخت هدايت ميشه همچنين يک کد به اسم RequestKey هم برميگردونه که شما بايد به همراه مبلغ و شماره خريد اون رو جهت چک کردن واريز ذخيره کنيد.
    پس از پرداخت موفق بانک کاربر رو به صفحه اي که شما مشخص کرده ايد برميگردونه بعلاوه شماره خريد که بصورت متد پست فرم فرستاده ميشه و شما بايد در آن صفحه تابع CheckRequestStatus را صدا بزنيد تا هم از وضعيت پرداخت مطلع بشيد و هم واريز پول را قطعي کنيد در غير اينصورت پول برگشت ميخورد.
    نکته اي رو هم که جايي ننوشته و يا بايد خودتون علم غيب داشته باشيد يا قبلا با اين سيستم ها کارکرده باشيد اينه که يک مبلغ کمي مثل 101 ريال بايد در ابتدا پرداخت کنيد تا محدوديت سقف واريز به حساب شما برداشته شود واگر نه با خطاي مواجه ميشيد و جالبيش به اينه که اگر با کارتي غير از کارت بانک ملي بخواهيد پرداخت کنيد نميتونيد،چرا؟چون براي کارتهاي شتاب حداقل 1000 ريال هست و يا بايد با کارت ملي اين محدوديت روبرداريد يا تماس بگيريد و بگيد که مبلغ محدوديت رو عوض کنند.
    پس از جستجوي زيادي کردم تونستم با روش زير با وبسرويس کار کنم :
    On Error Resume Next

    CardAcqID="1111"
    AmountTrans=1000
    OrderId=1111
    TransactionKey="1111"
    TerminalId="1111"
    ReturnURL="http://yoursite.com/recive.asp"

    SOAPRequest="<?xml version=""1.0"" encoding=""utf-8""?>"
    SOAPRequest=SOAPRequest&"<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"
    SOAPRequest=SOAPRequest&"<soap:Body>"
    SOAPRequest=SOAPRequest&"<PaymentUtility xmlns=""http://tempuri.org/"">"
    SOAPRequest=SOAPRequest&"<CardAcqID xmlns="""">"&CardAcqID&"</CardAcqID>"
    SOAPRequest=SOAPRequest&"<AmountTrans xmlns="""">"&AmountTrans&"</AmountTrans>"
    SOAPRequest=SOAPRequest&"<OrderId xmlns="""">"&OrderId&"</OrderId>"
    SOAPRequest=SOAPRequest&"<transactionKey xmlns="""">"&TransactionKey&"</transactionKey>"
    SOAPRequest=SOAPRequest&"<TerminalId xmlns="""">"&TerminalId&"</TerminalId>"
    SOAPRequest=SOAPRequest&"<RedirectURL xmlns="""">"&ReturnURL&"</RedirectURL>"
    SOAPRequest=SOAPRequest&"</PaymentUtility>"
    SOAPRequest=SOAPRequest&"</soap:Body>"
    SOAPRequest=SOAPRequest&"</soap:Envelope>"

    set objSrvHTTP = CreateObject("Msxml2.ServerXMLHTTP.3.0")
    set objXMLSend = CreateObject("Msxml2.DOMDocument.3.0")

    objXMLSend.async = "false"
    objXMLSend.loadXML SOAPRequest

    objSrvHTTP.open "POST","https://bmiutility.bmi.ir/merchantutility.asmx","false"
    objSrvHTTP.setRequestHeader "Content-Type","application/soap+xml; charset=utf-8"
    objSrvHTTP.setRequestHeader "SOAPAction","http://tempuri.org/PaymentUtility"
    objSrvHTTP.send objXMLSend

    strRequestkey=""
    strForm=""
    Set nodes = objSrvHTTP.responseXML.getElementsByTagName("Payme ntUtilityResult")
    For Each node in nodes
    strForm=node.text
    Next
    Response.Write(strForm)
    Response.Write("<br>")
    Set nodes = objSrvHTTP.responseXML.getElementsByTagName("Reque stKey")
    For Each node in nodes
    strRequestkey=node.text
    Next
    Response.Write(strRequestkey)

    If Err Then Response.Write "<br>Err.number= " & Err.number & "<br>" & Err.Description
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  5. #5
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: پرداخت بانک ملي

    من اين کدها رو براي بانک هم فرستاده بودم منتها چون جوابي نيومد اينجا گزاشتم اما امروز تعجب کردم که کد اصلاح شده رو فرستادن.انگار همه متغييرها بايسيتي رشته باشن تا درست کار کنه.تست کردم جواب داد.
    اينم کد تابع CheckRequestStatus که البته خطا ميده و منم بهشون اعلام کردم و جوابي به من ندادن و ميگن که حتما اشکال کار شماست در صورتي که من با همين رويه تابع اول رو صدا ميزنم و درست کار ميکنه خطا رو ميتونيد در آدرس زير ببينيد:
    http://reg.yadeemam.ir/recive1.asp
    لطفا اگر کسي ميتونه ببينه مشکل از چيه و از کجاست؟
    کد :

    <%
    On Error Resume Next

    str_Result=""
    str_RetrivalRefNo=""
    str_AppStatus=""

    str_Requestkey=Session("strRequestkey")
    str_AmountTrans=Session("AmountTrans")
    str_CardAcqID=Session("CardAcqID")
    str_TransactionKey=Session("TransactionKey")
    str_TerminalId=Session("TerminalId")
    str_OrderId=Session("OrderId")

    SOAPRequest="<?xml version=""1.0"" encoding=""utf-8""?>"
    SOAPRequest=SOAPRequest&"<soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">"
    SOAPRequest=SOAPRequest&"<soap:Body>"
    SOAPRequest=SOAPRequest&"<CheckRequestStatus xmlns=""http://tempuri.org/"">"
    SOAPRequest=SOAPRequest&"<OrderID xmlns="""">"&str_OrderId&"</OrderID>"
    SOAPRequest=SOAPRequest&"<CardAcqID xmlns="""">"&str_CardAcqID&"</CardAcqID>"
    SOAPRequest=SOAPRequest&"<TerminalID xmlns="""">"&str_TerminalId&"</TerminalID>"
    SOAPRequest=SOAPRequest&"<transactionKey xmlns="""">"&str_TransactionKey&"</transactionKey>"
    SOAPRequest=SOAPRequest&"<RequestKey xmlns="""">"&str_Requestkey&"</RequestKey>"
    SOAPRequest=SOAPRequest&"<AmountTrans xmlns="""">"&str_AmountTrans&"</AmountTrans>"
    SOAPRequest=SOAPRequest&"</CheckRequestStatus>"
    SOAPRequest=SOAPRequest&"</soap:Body>"
    SOAPRequest=SOAPRequest&"</soap:Envelope>"


    set objSrvHTTP = CreateObject("Msxml2.ServerXMLHTTP.3.0")
    set objXMLSend = CreateObject("Msxml2.DOMDocument.3.0")

    objXMLSend.async = "false"
    objXMLSend.loadXML SOAPRequest

    objSrvHTTP.open "POST","https://bmiutility4.bmi.ir/merchantutility.asmx","false"
    objSrvHTTP.setRequestHeader "Content-Type","application/soap+xml; charset=utf-8"
    objSrvHTTP.setRequestHeader "SOAPAction","http://tempuri.org/CheckRequestStatus"
    objSrvHTTP.send objXMLSend

    Set nodes = objSrvHTTP.responseXML.getElementsByTagName("Check RequestStatusResult")
    For Each node in nodes
    str_Result=node.text
    Next
    Set nodes = objSrvHTTP.responseXML.getElementsByTagName("Retri valRefNo")
    For Each node in nodes
    str_RetrivalRefNo=node.text
    Next
    Set nodes = objSrvHTTP.responseXML.getElementsByTagName("AppSt atus")
    For Each node in nodes
    str_AppStatus=node.text
    Next

    'Response.Write(objSrvHTTP.responseXML.xml)

    Response.Write "Result : "+str_Result
    Response.Write "<br>"
    Response.Write "RetrivalRefNo : "+str_RetrivalRefNo
    Response.Write "<br>"
    Response.Write "AppStatus : "+str_AppStatus

    If str_AppStatus="COMMIT" and str_Result=0 Then
    Response.Write "<p align='center'><font color='#008800' face='Tahoma' size='2'>با تشکر،پرداخت شما ثبت شد.</font><br>کد پيگيري پرداخت : "& str_RetrivalRefNo &"</p>"
    Else
    Response.Write "<p align='center'><font color='#FF0000' face='Tahoma' size='2'>خطا در پرداخت</font>"
    Response.Write "<br>"
    Select Case cdbl(str_Result)
    Case -1
    Response.Write("یکی از موارد مبلغ، شماره سفارش یا کلید درخواست اشتباه است")
    Case 1
    Response.Write("با بانک صادر کننده تماس حاصل نمایید")
    Case 3
    Response.Write("پذیرنده کارت فعال نیست")
    Case 12
    Response.Write("تراکنش معتبر نمی باشد")
    Case 13
    Response.Write("مبلغ تراکنش معتبر نمی باشد")
    Case 14
    Response.Write("شماره کارت اشتباه است")
    Case 33
    Response.Write("تاریخ استفاده کارت به پایان رسیده است")
    Case 41
    Response.Write("کارت مفقوده می باشد")
    Case 43
    Response.Write("کارت مسروقه می باشد")
    Case 51
    Response.Write("موجودی حساب کافی نمی باشد")
    Case 55
    Response.Write("رمز وارده صحیح نمی باشد")
    Case 56
    Response.Write("شماره کارت یا CVV2 صحیح نمی باشد")
    Case 57
    Response.Write("دارنده کارت مجاز به انجام این تراکنش نمی باشد")
    Case 58
    Response.Write("پذیرنده کارت مجاز به انجام این تراکنش نمی باشد")
    Case 61
    Response.Write("مبلغ تراکنش از حد مجاز بالاتر است")
    Case 65
    Response.Write("تعداد دفعات تراکنش از حد مجاز بیشتر است")
    Case 75
    Response.Write("ورود رمز دوم از حد مجاز گذشته است. رمز دوم جدید در خواست نمایید")
    Case 79
    Response.Write("شماره حساب نامعتبر است")
    Case 80
    Response.Write("تراکنش موفق عمل نکرده است")
    Case 84
    Response.Write("سوئیچ صادر کننده کارت فعال نیست")
    Case 88
    Response.Write("سیستم دچار اشکال شده است")
    Case 90
    Response.Write("ارتباط به طور موقت قطع می باشد")
    Case 91
    Response.Write("پاسخ در زمان تعیین شده بدست سیستم نرسیده است")
    Case 1003
    Response.Write("اطلاعات پذیرنده اشتباه است")
    Case 1004
    Response.Write("پذیرنده موجود نیست")
    Case 1006
    Response.Write("خطای داخلی")
    Case 1012
    Response.Write("اطلاعات پذیرنده اشتباه است")
    Case 1017
    Response.Write("پاسخ خطا از سمت مرکز")
    Case 1018
    Response.Write("شماره کارت اشتباه است")
    Case 1019
    Response.Write("مبلغ بیش از حد مجاز است")
    Case 9005
    Response.Write("تراکنش ناموفق ( مبلغ به حساب دارنده کارت برگشت داده شده است)")
    Case 9006
    Response.Write("تراکنش ناتمام ( در صورت کسرموجودی مبلغ به حساب دارنده کارت برگشت داده می شود)")
    Case 9008
    Response.Write("اشکالی در بررسی وضعیت تراکنش رخ داده است.")
    End Select
    Response.Write("<br>")
    Select Case str_AppStatus
    Case "NOT_SET"
    Response.Write("مقادیر تراکنش هنوز مشخص نشده است")
    Case "NOT_EXIST"
    Response.Write("تراکنش بر روی درگاه وجود ندارد")
    Case "INCOMPLET_INFO"
    Response.Write("تراکنش در مرحله تکمیل اطلاعات است")
    Case "REQUEST_DONE"
    Response.Write("تراکنش انجام شده است ولی هنوز نتیجه آن توسط پذیرنده دریافت نشده است")
    Case "WAIT_FOR_REVERSAL"
    Response.Write("در انجام تراکنش مشکلی به وجود آمده است و تراکنش در حال انتظار برای انجام عملیات بازگشت به حساب است")
    Case "WAIT_FOR_REVERSAL_ADVISE"
    Response.Write("در انجام عملیات برگشت تراکنش مشکلی به وجود آمده است و تراکنش در انتظار برگشت مجدد است.")
    Case "REVERSALED"
    Response.Write("تراکنش موفق نبوده است و مبلغ با موفقیت به حساب خریدار برگشت داده شده است.")
    Case "FAILED"
    Response.Write("خطایی در انجام تراکنش رخ داده است.جهت تشخیص نوع خطا به لیست کدهای خطا مراجه نمایید.")
    Case "CHECK_STATUS"
    Response.Write("تراکنش با موفقیت انجام شده است و در انتظار عملیات checkstatus از سمت پذیرنده میباشد")
    Case "WAIT_FOR_REVERSAL_10MINUTE"
    Response.Write("نتیجه تراکنش ظرف 10 دقیقه توسط پذیرنده دریافت نشده است و در انتظار برای عملیات برگشت پول میباشد.")
    End Select
    Response.Write("</p>")
    End If

    If Err Then Response.Write "<br>Err.number= " & Err.number & "<br>" & Err.Description
    %>
    آخرین ویرایش به وسیله binyaz2003 : پنج شنبه 29 مرداد 1388 در 18:17 عصر دلیل: کد صحيح که کار ميکنه
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  6. #6
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: پرداخت بانک ملي

    پس من از سيستم ديگري استفاده ميکنم (تفاوتشون در چيه؟)
    در مورد کد ccv2 فکر کنم بسته به بانک صادر کننده کارت باشه.
    اگر در صفحه پرداخت مشخصات شما رو بياره يعني اين مقاديري که به شما دادن درسته و از همينها بايد استفاده کنيد اگر هم مثلا اسم سداد يا چيز ديگري ميآورد، براي تست هستند.
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  7. #7
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: پرداخت بانک ملي

    کد صدا زدن CheckRequestStatus اصلاح شد.
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  8. #8

    نقل قول: پرداخت بانک ملي

    سلام
    امروز من اومدم شهریه دانشگاه بریزم
    پیغام داد (مبلغ تراکنش بیش از حد مجاز است)
    این پیغام یعنی چی؟من هربار همین مبلغ رو میریختم و مشکلی نبود الان نمیدونم چرا
    اینجوری شده
    کسی میتونه کمکم کنه؟

  9. #9
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: پرداخت بانک ملي

    دانشگاه آزاد؟
    شما بايد با مسئول سايتتون تماس بگيريد يا در اينجا http://bmi.ir/Forums/Default.aspx?tid=1 مطرح کنيد.
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  10. #10

    نقل قول: پرداخت بانک ملي

    نقل قول نوشته شده توسط binyaz2003 مشاهده تاپیک
    دانشگاه آزاد؟
    شما بايد با مسئول سايتتون تماس بگيريد يا در اينجا http://bmi.ir/Forums/Default.aspx?tid=1 مطرح کنيد.
    بله دانشگاه آزاد
    فقط میخوام بدونم مشکل از کجاست؟
    مسئول سایت یه تلفن گذاشته که اونم فقط بوغ اشغال میخور 24 ساعته
    به روزرسانی سایت هم مال 4 روز پیش هست
    اگه مشکل از من هست که اقدام کنم
    ولی اگه از سایت باشه که صبر کنم ببینم چی میشه
    ممنون میشم راهنمایی کنید
    یه چیز دیگه:آیا در تراکنش اینترنتی محدودیت قرار داده شده که این
    ارور میاد برای من یا خیر
    باز هم ممنون

  11. #11
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107

    نقل قول: پرداخت بانک ملي

    مشکل از شما نيست.بانک ملي براي هر حساب يک محدوديت سقف پرداخت ميزاره که تا اون مبلغ خاص پرداخت نشه بيشتر از اون نميشه پرداخت.اگر سايت دانشگاه شما تازه راه اندازي شده شايد هنوز نپرداختن.در کل به مسئول سايت خبر بيديد.مشکل از کاربر نيست.
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •