PDA

View Full Version : سوال: پرداخت درون برنامه ای در سی شارپ



rezakhakpour
جمعه 25 اردیبهشت 1394, 12:26 عصر
با سلام
من یه برنامه ای نوشتم که قسمتی داره که باید کاربر پرداختی انجام بدهد
ونسبت به اون مقدار پرداختی وپرداخت موفقش قسمتهایی از برنامه فعال بشه
من تاجایی که به درگاهها سر زدم وب سرویسشون با سایتها میتونن در ارتباط باشن نه نرم افزار
لطفا راهنمایی فرمایید.

ebrahim.rayatparvar
جمعه 25 اردیبهشت 1394, 14:03 عصر
بستگی داره تو سایتها جستجو کنی هست مثلا اگه درگاه پی لاین باشه خود سایت پی لاین رو یه نگاهی بنداز کد نمونه گذاشته برای سی شارپ

https://www.payline.ir/plugins

rezakhakpour
جمعه 25 اردیبهشت 1394, 14:24 عصر
گشتم ولی نمونه کدهایی که واسه سی شارپ گذاشتن
واسه asp هست وقتی توی asp از سی شارپ استفاده کنی
واسه برنامه تحت ویندوز نیست

ebrahim.rayatparvar
جمعه 25 اردیبهشت 1394, 14:36 عصر
تو لینکی که من دادم نمونه کد #C نوشته دیدیش؟؟؟

rezakhakpour
جمعه 25 اردیبهشت 1394, 14:46 عصر
آره اونو قبلا دانلود کردم
اگه خودتم دانلود کنی چند کیلوبایته
میبینی
پروژه asp هست

pouria_bayat
جمعه 25 اردیبهشت 1394, 19:30 عصر
آره اونو قبلا دانلود کردم
اگه خودتم دانلود کنی چند کیلوبایته
میبینی
پروژه asp هست
فایل Cs هم توی پوشه هست. خب باید اتصال به اینترنت هم داشته بشاه در نتیجه باید اتصال به درگاه اینترنتی انجام بشه که Webbrowser و .... لازمه که کلا اماده گذاشتن کافیه add کنید به پروژه.

rezakhakpour
جمعه 25 اردیبهشت 1394, 21:01 عصر
سلام فایل cs با زیان asp هست
لطف میکنی بیشتر توضیح بدی ویا یه نمونه کد یا نمونه پروژه ارائه بدی؟

pouria_bayat
جمعه 25 اردیبهشت 1394, 21:06 عصر
سلام فایل cs با زیان asp هست
لطف میکنی بیشتر توضیح بدی ویا یه نمونه کد یا نمونه پروژه ارائه بدی؟

سلام، یک فایل Cs توی پوشه App_Code قرار داده شده که کدهاشو من برات میزارم:


using System;
using System.Collections.Generic;
using System.Web;
using System.Net;
using System.Text;
using System.IO;

/// <summary>
/// Summary description for PayLine
/// </summary>
public class PayLine
{
public PayLine()
{
//
// TODO: Add constructor logic here
//
}



public string Send(string url, string api, double amount, string redirect)
{
string URI = url;
WebRequest webRequest = WebRequest.Create(URI);

webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";

string parameters = "api=" + api + "&amount=" + amount + "&redirect=" + redirect ;
byte[] bytes = Encoding.UTF8.GetBytes(parameters);

webRequest.ContentLength = bytes.Length;
Stream dataStream = webRequest.GetRequestStream();
dataStream.Write(bytes, 0, bytes.Length);
dataStream.Close();


WebResponse webResponse = webRequest.GetResponse();
dataStream = webResponse.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFields = reader.ReadToEnd();
reader.Close();

string result = "-1";

try
{
result = responseFields.ToString();

}
catch
{
return "-1";
}


return result;
}


public string Get(string url, string api, string trans_id, string id_get)
{
string URI = url;
WebRequest webRequest = WebRequest.Create(URI);

webRequest.Method = "POST";
webRequest.ContentType = "application/x-www-form-urlencoded";

string parameters = "api=" + api + "&trans_id=" + trans_id + "&id_get=" + id_get;
byte[] bytes = Encoding.UTF8.GetBytes(parameters);

webRequest.ContentLength = bytes.Length;
Stream dataStream = webRequest.GetRequestStream();
dataStream.Write(bytes, 0, bytes.Length);
dataStream.Close();


WebResponse webResponse = webRequest.GetResponse();
dataStream = webResponse.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFields = reader.ReadToEnd();
reader.Close();


string result = "-1";

try
{
result = responseFields.ToString();

}
catch
{
return "-1";
}


return result;
}


}

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

rezakhakpour
جمعه 25 اردیبهشت 1394, 21:12 عصر
اصلا کلاس رو ندیده بودم
ممنون
باهاش ارتباط رو بررسی میکنم
متشکرم
این روشی که شما میگی با توجه به پاسخ قبلیتون واستفاده از وب براوزیر
اینه که صفحه بانک رو درون برنامه نشون میده
و احساس امنیت رو از کاربر میگیره
من هدف اصلیم اینه که اطلاعات مبلغ و.. رو بجز اطلاعات محرمانه رو توی برنامه دریافت کنه وبه درگاه بفرسته
ومرورگر باز بشه وصفحه پرداخت کاملا در شرایط امن طی بشه
وبعد از پرداخت موفق
برنامه از پرداخت موفق اون تراکنش مطلع بشه

CsharpNevisi
شنبه 26 اردیبهشت 1394, 12:24 عصر
پرداخت انلاین به این شکل است که شما مشخصات رو برای بانک ارسال میکنید ... مثلا .. ترمینا ای.دی .. نام کاربری .. گذرواژه ... پس از تایید شما ریدارکت میشید به صفحه پرداخت و پس از انجام عملیات یه صفحه callBack داریم که به آن صفحه با مشخصات و جزئییات پرداخت برمیگردیم .. حالا صفحه callBack َما باید رو بستر وب باشه .. اطلاعات رو تو دیتابیس سرور ذخیره کنه و برنامه یا مستقیما یا به وسیله (وب سرویس (پیشنهاد من)) به بانک اطلاعاتی متصل بشه و جزئیات پرداخت رو چک کنه !!!!!

بیتا حکمت
شنبه 26 اردیبهشت 1394, 12:50 عصر
پیشنهاد من این هست که اصلا" دنبال روش پرداخت از داخل برنامه نباشید . قطعا" اینکه فعالسازی از طریق سایت شما باشه ، رسمی تر هست و مشتری ها بیشتری به شما اعتماد می کنن .

rezakhakpour
شنبه 26 اردیبهشت 1394, 13:44 عصر
من دنبال پرداخت اینترنتی
با اطلاع پیدا کردن نرم افزار هستم
نه پرداخت درون براوزیر سی شارپ

CsharpNevisi
شنبه 26 اردیبهشت 1394, 13:51 عصر
این pdf رو بخون . نحوه اتصال به درگاه و عملکرد درگاه رو بفهمی بقیه راهو خودت پیدا میکنی
اتصال به درگاه پرداخت بانک ملت (http://learn.wenda.ir/Post.aspx?id=43)

mhntah
جمعه 01 خرداد 1394, 01:53 صبح
...........