GithubHelp home page GithubHelp logo

sina-soltani / parbad Goto Github PK

View Code? Open in Web Editor NEW
347.0 347.0 77.0 8.92 MB

A free, open-source, integrated and extensible library which connects your web applications to online payment gateways. Gateways can be added or developed by you.

License: GNU Lesser General Public License v3.0

C# 99.06% HTML 0.94%
asan-pardakht asp aspnetcore bank dotnet gateway iran iran-kish mellat melli parsian pasargad payir payment sadad saman sepehr shetab virtual-gateway zarinpal

parbad's People

Contributors

alty-ir avatar anushiravani avatar azaferany avatar azhdari avatar dependabot[bot] avatar mdp66 avatar mohammad-ashrafi2020 avatar mohammadmokhtarii avatar mrmashal avatar sina-soltani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

parbad's Issues

خطای برگشت به سایت درگاه پارسیان

باسلام. زمانی که از درگاه پارسیان بعد از پرداخت بازگشت میخورد به سایت خطای زیر رو نشون میده
در صورتی که در زمانی که در درگاه دکمه انصراف رو میزنی و برمیگرده به سمت سایت همچین خطایی نمیده و اوکی به نظر میرسه

#asp.core #درگاه_پارسیان

{ "TransactionCode": null, "TrackingNumber": 1159, "Amount": {}, "IsSucceed": false, "GatewayName": "ParsianGateway", "GatewayAccountName": "گیمستان", "Message": "Invalid data is received from the gateway", "AdditionalData": {}, "DatabaseAdditionalData": {} }

و اصلا تایید نمیشه در صورتی که پرداخت موفق آمیز بوده ولی خطا میده

این مورد مشکلش برطرف نشد؟

مستندات نسخه‌های قبلی

سلام.
مستندات و آموزش‌های مربوط به نسخه‌های قدیم موجود نیست؟
من می‌خوام ازش تو یه پروژه قدیمی استفاده کنم.

متد استعلام خرید

سلام دوست عزیز

متد استعلام تراکنش خرید رو ندارید ؟

متدش در بانک ملت با این نام هست :
bpInquiryRequest

Bank Gateways enum Missing

سلام . تو نسخه جدیدی که توی ناگت گذاشتید انتخاب بانک بر اساس استرینگ نام بانک هستش
اگه مثله قبل از اینام استفاده بشه بهتر نیست ؟
که دلیلشم احتمالا بخاطر اضافه کردن درگاه بانک جدید توسط دولوپر های دیگست
و دیگه اینکه اگه قراره که همینجوری بمونه لیست نام درگاه ها رو اگه میشه توی داکیومنت قرار بدید. متشکر

چگونه از SQLServer استفاده کنیم؟

در مستندات این نمونه کد نوشته شده است.

services.AddParbad()
        .ConfigureStorage(builder => builder.UseParbadSqlServer("ConnectionString"));

UseParbadSqlServer اما انگار
وجود ندارد.
آیا جایگزینی دارد؟

جواب اشتباه از بانک سامان

سلام . وقت بخیر
وقتی در درگاه بانک سامان دکمه انصراف انتخاب میشه هنگام برگشت در متد وری فای جواب رو به صورت تصویر زیر دریافت میکنم

samanProblem

افزودن بانک های جدید

سلام. خسته نباشید
آیا بانک های جدید هم اضافه میشن؟ مثل مبنا کارت بانک صادرات و یا ایران کیش؟

CORS policy

سلام و خسته نباشید البته این ایراد در کد نیست اما گفتم شاید شما راحت بتونید حلش کنید چون دو روزه من رو گیر انداخته ور هرچی سرچ کردم و امتحان کردم نتونستم حلش کنم با ویرچوال هیچ مشکلی ندارم و خیلی راحت روی لوکال فرایند به درستی طی میشه اما روی سرور پروداکشن با ایراد زیر برخورد میکنم که البته تلاش زیاد کردم برای حلش اما نشد
Access to XMLHttpRequest at 'https://pec.shaparak.ir/NewIPG/?Token=470472695' (redirected from 'https://betaapi.2ristpanel.com/api/v1/TRMS/Financial/AddCredit') from origin 'null' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: Redirect is not allowed for a preflight request.

توی استارت اپ پروژه اکسس به * دادم
services.AddCors(options =>
{
options.AddPolicy("CorsPolicy",
builder => builder.AllowAnyOrigin()
.AllowAnyMethod()
.AllowAnyHeader()
.SetIsOriginAllowedToAllowWildcardSubdomains().WithOrigins("https://*.2ristpanel.com")
);
});
و بالای متد هم اتریبیوت
[EnableCors("CorsPolicy")]
به کار بردم و خیلی را های دیگه اما نشد اگر راهنمایی بفرمایید خیلی ممنون میشم

درگاه پارسیان

زمانی که از درگاه پارسیان بعد از پرداخت بازگشت میخورد به سایت خطای زیر رو نشون میده
در صورتی که در زمانی که در درگاه دکمه انصراف رو میزنی و برمیگرده به سمت سایت همچین خطایی نمیده و اوکی به نظر میرسه

#asp.core #درگاه_پارسیان

{ "TransactionCode": null, "TrackingNumber": 1159, "Amount": {}, "IsSucceed": false, "GatewayName": "ParsianGateway", "GatewayAccountName": "گیمستان", "Message": "Invalid data is received from the gateway", "AdditionalData": {}, "DatabaseAdditionalData": {} }

مبلغ واریزی

سلام با عرض خسته نباشید
وقتی از صفحه بانک برگشت داده میشه به سایت خودمون مبلغ واریزی از بانک به ما داده میشه ؟
اگه میشه تو کدوم متد و چطوری اون مبلغ واریزی رو بگیرم و بررسی کنم ببینم طرف هزینه رو موقع ارسال دستکاری نکرده باشه و درست واریز کرده باشه
با تشکر

How to add gateway (or change gateway settings) right before payment request?

Hi,

I want somehow set the gateway settings dynamically for each payment separately. In other words, I need to add a gateway or change the predefined gateways' settings, just before doing a payment.
Is this possible with your package?

Let's say I have hundreds of bank accounts and I cannot add all of them in advance with services.AddParbad().ConfigureGateways.

The gateway settings should be set when a payment operation have to be done...

Thank you for your great work.

RefId & SaleReferenceId

با سلام
فیلد های برگشتی از بانک مثل مقادیر
RefId & SaleReferenceId
در چه بخشی قابل دستیابی می باشد؟

درگاه پرداخت پاسارگاد

سلام وقتتون بخیر درگاه پرداخت پاسارگاد برای دات نت کور راه اندازی نشده ؟

`

Tracking number 1002
Amount 2500
Gateway PasargadGateway
Gateway account name  
Is succeed False
Message Operation is not supported on this platform.

`

چون من همچین خطایی رو دارم دریافت میکنم.

VerifyResultStatus یکسان در تمامی حالت ها

سلام آقای سلطانی، خسته نباشید. متشکر بابت این کتابخانه خیلی خوب. ما در پروژمون (ASP.NET MVC) داریم از پرباد (و بانک پاسارگاد) استفاده می کنیم، منتها چند تا مشکل وجود داره:
  1. یک اینکه در "اینام" VerifyResultStatus، در تمامی وضعیت ها، مقدار AlreadyVerified باز گردونده میشه، یعنی هم هنگام پرداخت موفق، هم هنگام کنسل کردن. اصلا این گزینه به چه معناست و چرا این مشکل وجود داره؟

  2. چرا در اینام PaymentDataStatus، مقدار Cancelled وجود نداره، و اصلا تفاوت اون با VerifyResultStatus چی هست؟

  3. طبق چیزی که من دیدم، Transaction ID ذخیره نمیشه. یعنی حتی در صفحه تأیید پرداخت نمایش داده میشه اما بعد از اون به متد Update در Storage ارسال نمیشه.

ضمنا من چون دیدم Issue قبلی دیروز باز شده و شما سریع پاسخ دادید تصمیم گرفتم این Issue رو باز کنم، وگرنه مجبور میشدم از API خود بانک پاسارگاد استفاده کنم.
ممنون میشم اگر پاسخ بدید.

نحوه عملکرد اپلیکیشن

سلام
با عرض معذرت از این که وقت شما رو می گیرم
می خواستم از شما این سوال بپرسم
که چطور بدون اضافه کردن وب سرویس بانک میشه از در گاه پرداختش استفاده کرد.؟
اگر لطف کنید مقاله و سر نخ برای تحقیق ارایه بدید
تشکر
مرسی

ایدی دیتابیس

با سلام
در کدوم قسمت و کدوم متد میتونم
ایدی دیتابیس که guid
هستش رو بگیرم
چون میخوام تو جدول دیگه ای ب غیر جدول مورد نظر شما هم کلید خارجی بدم
این مورد خیلی واجبه
با تشکر

Error On Create and migrate database

سلام و وقت بخیر . بعد از انجام تنظیمات اولیه در هر حالتی که تلاش میشه خطای
"Error: The new name 'transaction' is already in use as a object name and would cause a duplicate that is not permitted."}
دریافت میشه

error

اصلاح داینامیک اطلاعات حساب درگاه

سلام
من از این بخش استفاده کردم
gateways
.AddMellat()
.WithAccounts(accounts =>
{
accounts.Add(ServiceLifetime.Transient);
});
اگر تغییری در اطلاعات درگاه در سیستم رخ دهد با فراخوانی کلاس
MellatAccountSource
اطلاعات دوباره بروزرسانی می شود؟

خطا در استفاده از درگاه مجازی

بعد از ریدارکت به سمت درگاه مجازی این پیفام نمایش داده می شود
..\Resources\VirtualGatewayRequestHtml.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1256

دریافت کد وضعیت بازگشتی از بانک

با سلام
چطور میتوان به کد وضعیت بازگشتی از سمت بانک نیز دسترسی پیدا کرد
من نیاز دارم تا کد وضعیت را پس از
call back
در پایگاه داده ذخیره کنم

عدم وجود متد FetchAsync

توضیح خطا

در مثالها برای تایید یک تراکنش، تابعی به نام FetchAsync صدا زده شده است اما چنین تابعی ظاهرا وجود ندارد.

نسخه پَرباد

1.0.1

نوع برنامه

ASP.NET CORE

بازگرداندن مبلغ به چندین حساب

گاها نیاز پیدا میشه مبلغ به چند حساب برگشت داده بشه
به عنوان مثال دکتر 20 نفر انلاین ویزیت کرده بعد کنسل شده و میخواد به 20 نفر پولشون رو برگردونه
منشی که نمیتونه بشینه کارت به کارت بزنه دونه به دونه
البته شنیده بودم که فقط بانک ملی شماره کارت ها رو به صورت ارایه میگیره و هزینه رو میگیره و انجامش میده ولی فک کنم بقیه بانک ها هم داشته باشن همچین چیزی
اگه بشه تو پکیج اضافه بشه خیلی عالی میشه

ایراد در AddAdditionalData

توضیح خطا

در هر دو حالت رو امتحان کردم کار نمیکنه AddAdditionalData متد

   Dictionary<string, object> data = new Dictionary<string, object>();
   data.Add("PaymentRequestId", Payment.Id.ToString());

var result = _onlinePayment.Request(invoice =>
{
invoice
.SetTrackingNumber(Payment.Id)
.SetAmount((decimal)amount)
.SetCallbackUrl(callBackBaseUrl + "/api/IPGCallBack/Verify")
.UseGateway(Gateway)
.UseAccount(Payment.IPG.ClientId.ToString())
// حالت اول
.AddAdditionalData(data)
//حالت دوم
.AddAdditionalData("PaymentRequestId", Payment.Id.ToString())

                      .BuildAsync();
            });

var invoice = await _onlinePayment.FetchAsync();
وقتی توی وریفای اینویس رو میگیریم ادیشنال دیتا خالیه

حتی خاستم استوریج رو به دیتابیسم وصل کنم ولی فکر کنم توی دات نت کور 3 یه کانفیلیکتی وجود داره و نشد

(لطفا جهت تسریع روند یافتن خطا، مشخصات زیر را وارد کنید)

نام و نسخه پکیج

Parbad
3.1.1
Parbad.AspNetCore
1.0.1

نوع برنامه وب

ASP.NET CORE

اضافه کردن پروکسی

در بخشنامه جدید بانک مرکزی سرور های خارج از کشور فیلتر می شوند و احتیاج به یک پروکسی داخل ایران برای اتصال می باشد

افزودن زرین پال

سلام
توی موارد قبلی دیدم که نوشتید قصد اضافه کردن زرین پال و درگاه های واسط رو به این کتابخانه عالی دارید، اما خبری نیست ظاهرا خواستم اطلاعات بگیرم و ببینم که کاری در این باره در جریان هست یا نه؟
و اگر نیست اجازه هست که زرین پال رو اضافه کنم و پول ریکوئست بفرستم خدمتتون؟!

با تشکر

فرم های اجاکسی

سلام
آیا در فرم هایی که به صورت اجاکسی فراخوانی می شود
مییشه از پرباد استفاده کرد؟ به چه شکل؟

تنظیمات پایگاه داده

با سلام
میشه راهنمایی کنید در اپدیت جدید چرا مثل نسخه قدیمی فیلد های جداول رو تو اموزش نذاشتید
چون نیاز دارم یه جدول براش ایجاد کنم تا ordernumber
رو کلید خارجی کنم
الان مسئله برام گنگ هستش
در ضمن در نسخه جدید فقط برای donet core
گذاشتید
services.AddParbad()
.ConfigureStorage(builder => builder.UseParbadSqlServer("ConnectionString"));
خبری از dotnet framework
نیستش

Unable to resolve service

توضیح خطا

Saman.txt

Unable to resolve service for type 'AVS.ServiceLayer.Services.BankGatewayService' while attempting to activate 'AVS.ServiceLayer.Services.SamanGatewayAccountService'.

 services.AddParbad()
            .ConfigureGateways(gateways =>
            {
                //gateways
                //    .AddMellat()
                //    .WithAccounts(accounts =>
                //    {
                //        accounts.Clear();
                //        accounts.Add<MellatGatewayAccountService>(ServiceLifetime.Transient);
                //    });
                gateways
                    .AddSaman()
                    .WithAccounts(accounts =>
                    {
                        accounts.Clear();
                        accounts.Add<SamanGatewayAccountService>(ServiceLifetime.Transient);
                    });
                //gateways
                //    .AddMelli()
                //    .WithAccounts(accounts =>
                //    {
                //        accounts.Clear();
                //        accounts.Add<MelliGatewayAccountService>(ServiceLifetime.Transient);
                //    });
                gateways
                    .AddParbadVirtual()
                    .WithOptions(options => options.GatewayPath = "/virtualgateway");
            })

نام و نسخه پکیج

[Parbad.AspNetCore]
[1.0.1]

نوع برنامه وب

ASP.NET CORE 3.1

برگشت هزینه

وقتی از متد CancelAsync استفاده مکنیم آیا لازم هست متد RefundCompletelyAsync رو فراخوانی کنیم؟

EntityFrameworkCore 3 Exception

I had updated my project to .net core 3 but in my program.cs i get this exception :

◢ | $exception | {"Method not found: 'Microsoft.EntityFrameworkCore.Metadata.Builders.IndexBuilder Microsoft.EntityFrameworkCore.Metadata.Builders.EntityTypeBuilder1.HasIndex(System.Linq.Expressions.Expression1<System.Func`2<!0,System.Object>>)'."} | System.MissingMethodException

when i remove this line from configuration the error will gone:
.ConfigureDatabaseInitializer(a => a.CreateAndMigrateDatabase())

Please help to solve this issue.

Thanks

پیاده سازی برای Asp.Net Core 2.x

در ابتدا تشکر برای تلاش قابل ستایش شما.
لطفا پیاده سازی پرباد برای نسخه دات نت کور رو هم مدنظر داشته باشید.

موفق باشید.

خطا در Register کردن سرویس

با سلام و عرض ادب
من با استفاده از آموزش های شما توی همین گیت هاب و ویکی پرباد رو به پروژه ام اضافه کردم ولی یه ایرادی داره و موقعی که اینترفیس IOnlinePayment رو به کنترلرم اضافه میکنم این خطا رو میده.
میشه لطفا راهنمایی کنید؟

None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'Parbad.Internal.DefaultOnlinePayment' can be invoked with the available services and parameters: Cannot resolve parameter 'Parbad.Storage.Abstractions.IStorageManager storageManager' of constructor 'Void .ctor(System.IServiceProvider, Parbad.Storage.Abstractions.IStorageManager, Parbad.PaymentTokenProviders.IPaymentTokenProvider, Parbad.Abstraction.IGatewayProvider, Microsoft.Extensions.Options.IOptions1[Parbad.Options.MessagesOptions], Microsoft.Extensions.Logging.ILogger1[Parbad.IOnlinePayment])'.

البته از ورژن قدیمیش استفاده کرده بودم مشکلی نداشت ولی با این ورژن مشکل دارم.

به درگاه مجازی منتقل نمی شود!

در مثال های انتقال به درگاه از خط زیر استفاده شده است:

return result.GatewayTransporter.TransportToGateway();
ولی به نظر میاد که در آخرین نسخه این متد عوض شده و خروجی هم ندارد:
result.GatewayTransporter.Transport();
آیا نمونه ای که با آخرین نسخه پرباد و MVC باشه جایی هست؟

خطا در ارسال به بانک پاسارگاد

با سلام
در متد
_onlinePayment.Request(Gateway.Pasargad, Convert.ToInt64(myclass.classes.FirstOrDefault().intClassId), (decimal)myclass.classes.FirstOrDefault().dPrice, "http://........./registerClass/Verify");

به خطای
Operation is not supported on this platform
میرسم.

لطفا راهنمایی نمایید

اطلاعات درگاه ها در کجا ذخیره شود؟

سلام. اولا تشکر و تبریک، واقعا همچین چیزی نیاز بود.
سوال اینکه اطلاعات درگاه ها رو از کجا میخونه؟؟ مثل مرچنت آیدی یا نام کاربری و رمز و...
درگاه واسط مثل زرین پال هم اضافه کنید.
تشکر

اضافه کردن درگاه آسان پرداخت

اولا ممنون بابت پرباد!

دوستان درگاه هایی رو گفتن اضافه بشن که خیلی عالین اما یه درگاه پرکاربرد که این روزا خیلی ازش استفاده میشه آسان پرداخت هستش. ممنون میشم این درگاه رو هم به پرباد اضافه کنید

استفاده از چندین درگاه بانک

سلام دوست عزیز

این پروژه امکان این رو داره که بشه از چندین حساب یک بانک استفاده کنه و در متد مشخص بشه که کدوم حساب هست ؟؟

در داکیومنت دیدم که باید در StartUp اطلاعات بانک رو مشخص کرد .

من میخوام بصورت داینامیک اطلاعات بانک رو در متد شما وارد کنم نه در کانفیگ برنامه .

ایراد در متد SelectByOrderNumber و SelectByOrderNumberAsync

نام تیبل رو در این دو متد استاتیک [TbPayments] در نظر گرفتید
const string query = "SELECT * FROM [TbPayments] WHERE OrderNumber=@OrderNumber";
در صورتی که چیزی شبه به این باید باشه
const string query = $"SELECT * FROM [{PaymentsTableName}] WHERE OrderNumber=@OrderNumber";
وقتی نام تیبل رو چیزی غیر از TbPayments میگرم ارور System.Data.SqlClient.SqlException: 'Invalid object name 'TbPayments'.' بهم بر میگردونه که فکر میکنم ناشی از این دو متد باشه

استفاده از پروژه بدونه دیتابیس

سلام.

میشه از این پروژه بدون دیتابیس استفاده کرد و اطلاعاتی که قراره در دیتابیس ذخیره بشه رو بصورت خروجی از متد ها بگیریم و خودمون تو دیتابیس ذخیره کنیم ؟

بیلد و انتشار پکیج به صورت اتوماتیک

به دلیل استفاده نکردن از CI، هر زمان که سورس آپدیت می‌شه باید پکیج nuget به صورت مجزا آپدیت بشه. پیشنهاد من استفاده از appveyor و اتوماتیک کردن پروسه build و انتشار پکیج در nuget.org است. من پیشتر این کار رو برای پروژه‌های دیگه‌ای انجام داد و اگر نیاز به راهنمایی بود در خدمتم

سوال در مورد نحوه تنظیم DistributedCache

و یک سوال دیگه داشتم
من فلسفه storage رو درک نکردم، الان ما خودمون در جدول تنظیمات اطلاعات اکانتهای درگاه رو ثبت کردیم و برای استفاده هم یه AccountSource ساختیم و معرفی کردیم، حالا چه لزومی به استفاده از storage هست؟ و اگر قصد استفاده از dist cache داشته باشیم تنظیم خاصی باید برای انجام بدیم؟
ما از ردیس توی پروژه استفاده کردیم اما چیزی ندیدم که مثلا ردیس رو معرفی کنم.

خطای رمزنگاری دیتا در هنگام SignRequestData

با سلام متد
SignRequestData
در هنگام استفاده از درگاه بانک ملی سداد خطای زیر را می دهد

The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters

که نمیتواند مقدار terminalKey را بصورت Base64 تبدیل کند

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.