2 ضمیمه
ارتباط با درگاه پرداخت اینترنتی
با سلام خدمت دوستان گرامی
جهت ارتباط با درگاه پرداخت اینترنتی (بانک پاسارگاد) از طریق شاپرک توسط دلفی آیا سورس آماده ای وجود داره؟
من کمی جستجو کردم برای زبانهای C# و PHP و ASP نمونه سورس زیاده ولی برای دلفی نتونستم چیزی پیدا کنم
اگه از دوستان کسی در این زمینه اطلاعاتی داره لطفا کمک کنه
در فایل ضمیمه شده یک نمونه برای پیاده سازی درگاه بانک ملی در asp.net قرار دادم
ضمیمه 150826
نقل قول: ارتباط با درگاه پرداخت اینترنتی
منظورت سورس برای استفاده در ASP.NET است؟
نوشتنش کار سختی نیست، کل پروسه کار رو در راهنماش توضیح داده.
نقل قول: ارتباط با درگاه پرداخت اینترنتی
نه سورس دلفی میخوام
سورس برای asp توی نت زیاده
با چه کدهایی مقادیر مورد نیاز رو به شاپرک ارسال کنم و بازخورد رو چه جوری دریافت کنم ؟
من با اینتراوب توی دلفی یه فرمی طراحی کردم که با یه آیپی میشه از نت بهش دسترسی داشت و ثبت سفارش کرد، حالا در این فرم میخوام پس از مشخص شدن مبلغ، داده ها به شاپرک ارسال و پرداخت اینترنتی صورت بگیره و بازخورد رو هم به کاربر نشون بدم
از طریق بانک پاسارگاد ثبت نام و درگاه پرداخت اینترنتی رو دریافت کردم حالا توی پیاده سازیش موندم
نقل قول: ارتباط با درگاه پرداخت اینترنتی
با سلام،
انجام این کار زیاد هم سخت نیست. هر سایتی یک وبسرویس برای این کار داره و معمولاً وبسرویس های بانکها به صورت Soap هستند. در ویدئوهایی که در زیر لینکش رو قرار دادم کار با وبسرویس در دلفی رو آموزش دادم و برای بانک هم روش کاملاً مشابه هست فقط باید مستنداتش رو بخونید و بیشتر دقت کنید. چند وقت پیش با دلفی برای زرین پال رو انجام دادم و کار عجیب و غریبی هم نبود و خیلی راحت انجام شد.
https://www.aparat.com/v/7SB5R
https://www.aparat.com/v/I7nxi
موفق باشید ...
نقل قول: ارتباط با درگاه پرداخت اینترنتی
بانک پاسارگاد اصلا وب سرویس نداره. تمام کارهاش به این صورت انجام میشه که چند تا صفحه داره که شما برای تعامل با اونها، اطلاعات رو با روش پست به اون صفحات می فرستید و اطلاعات رو از پاسخ تولید شده توسط اون صفحات می خوانید.
من برای پست کردن اطلاعات، فرم HTML به صورت ران تایم درست کردم و مقدارهای مورد نظر اونها را در قالبی input های type='hidden' داخل فرم قرار دادم، در نهایت هم فرم رو از طریق جاوا اسکریپت Submit کردم.
نقل قول: ارتباط با درگاه پرداخت اینترنتی
این روش درسته
من از کد زیر برای ارسال استفاده می کنم ولی خطای UnKnown Protocol میده !!!
procedure TForm1.Button2Click(Sender: TObject);
var
lJSO : ISuperObject;
lRequest: TStringStream;
lResponse: String;
begin
IdHTTP := TIdHTTP.Create;
lJSO := SO('"{ "InvoiceNumber": "123456", "InvoiceDate":"2019/10/20","TerminalCode":'+
' "2222222", "MerchantCode": "1111111", "Amount":"10000","RedirectAddress":" https://www.'+
'Test.ir/PaymentResult","Timestamp":"2019/10/20 15:15:13", "Action":"1003",\'+
'"Mobile":"09122222222", "Email":"BuyerName@Sample.ir" }";');
lRequest := TStringStream.Create(lJSO.AsString, TEncoding.UTF8);
try
IdHTTP.Request.ContentType := 'application/json';
IdHTTP.Request.Charset := 'utf-8';
try
lResponse := IdHTTP.Post('"https://pep.shaparak.ir/Api/v1/Payment/GetToken', lRequest);
Memo1.Text := (lResponse);
except
on E: Exception do
ShowMessage('Error on request:'#13#10 + E.Message);
end;
finally
lRequest.Free;
end;
lJSO := nil;
end;
جناب آقای کرامتی اگه امکانش هست نمونه کدی که شما استفاده می کنید جهت راهنمایی به بنده هم ارسال کنید
ممنون
نقل قول: ارتباط با درگاه پرداخت اینترنتی
به صفحه تستی که خود بانک ارائه کرده یه سر بزنید https://www.pep.co.ir/ipgtest
منم میخوام چیزی مشابه همین فقط برای خرید با سورس دلفی توی اینتراوب ایجاد کنم
نقل قول: ارتباط با درگاه پرداخت اینترنتی
نقل قول:
نوشته شده توسط
دلفــي
این روش درسته
من از کد زیر برای ارسال استفاده می کنم ولی خطای UnKnown Protocol میده !!!
procedure TForm1.Button2Click(Sender: TObject);
var
lJSO : ISuperObject;
lRequest: TStringStream;
lResponse: String;
begin
IdHTTP := TIdHTTP.Create;
lJSO := SO('"{ "InvoiceNumber": "123456", "InvoiceDate":"2019/10/20","TerminalCode":'+
' "2222222", "MerchantCode": "1111111", "Amount":"10000","RedirectAddress":" https://www.'+
'Test.ir/PaymentResult","Timestamp":"2019/10/20 15:15:13", "Action":"1003",\'+
'"Mobile":"09122222222", "Email":"BuyerName@Sample.ir" }";');
lRequest := TStringStream.Create(lJSO.AsString, TEncoding.UTF8);
try
IdHTTP.Request.ContentType := 'application/json';
IdHTTP.Request.Charset := 'utf-8';
try
lResponse := IdHTTP.Post('"https://pep.shaparak.ir/Api/v1/Payment/GetToken', lRequest);
Memo1.Text := (lResponse);
except
on E: Exception do
ShowMessage('Error on request:'#13#10 + E.Message);
end;
finally
lRequest.Free;
end;
lJSO := nil;
end;
جناب آقای
کرامتی اگه امکانش هست نمونه کدی که شما استفاده می کنید جهت راهنمایی به بنده هم ارسال کنید
ممنون
دلیلش اینه که دارید از https استفاده میکنین.
باید dll های مربوطه کنار پروژتون باشه و کامپوننتهای ssl رو بر روی فرم گزاشته و به http اساین کنین.
نقل قول: ارتباط با درگاه پرداخت اینترنتی
فایل libeay32.dll رو آپدیت کردم مشکل پیغام خطای UnKnown Protocol حل شد، الان طبق کد زیر اطلاعات رو به صورت JSon ارسال می کنم ولی در
Request دوباره یه خطای جدید میده! (
HTTP/1.1 500 Internal Server Error
)
procedure TForm1.Button1Click(Sender: TObject);
var
HTTP: TIdHTTP;
RequestBody: TStream;
ResponseBody: string;
begin
Memo1.Lines.Clear;
HTTP := TIdHTTP.Create;
try
try
RequestBody := TStringStream.Create('{'+
'"InvoiceNumber":"9999999",'+
'"InvoiceDate":"1398/11/08 11:45:12",'+
'"TerminalCode":"88888888",'+
'"MerchantCode":"7777777",'+
'"Amount":"200000",'+
'"RedirectAddress":"https://www.test.ir",'+
'"Timestamp":"2019/02/10 11:15:13",'+
'"Action":"1003",'+
'"Mobile":"0911111111",'+
'"Email":"info@test.ir",' +
'"sign":"aMfVa...zlaRt"'+
'}', TEncoding.UTF8);
try
HTTP.Request.Accept := 'application/json';
HTTP.Request.ContentType := 'application/json';
ResponseBody := HTTP.Post('https://pep.shaparak.ir/gateway.aspx',RequestBody);
Memo1.lines.add(ResponseBody);
Memo1.lines.add(HTTP.ResponseText);
finally
RequestBody.Free;
end;
except
on E: EIdHTTPProtocolException do
begin
Memo1.lines.add(E.Message);
Memo1.lines.add(E.ErrorMessage);
end;
on E: Exception do
begin
Memo1.lines.add(E.Message);
end;
end;
finally
HTTP.Free;
end;
ReadLn;
ReportMemoryLeaksOnShutdown := True;
end;