Coder Social home page Coder Social logo

sina-soltani / parbad Goto Github PK

View Code? Open in Web Editor NEW
347.0 22.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%
mellat melli parsian pasargad saman iran-kish sadad iran gateway payment

parbad's Issues

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

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

با تشکر

عدم وجود متد FetchAsync

توضیح خطا

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

نسخه پَرباد

1.0.1

نوع برنامه

ASP.NET CORE

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

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

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

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

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

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

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

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

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

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

خطا در 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])'.

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

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": {} }

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

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

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

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

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

با سلام
در متد
_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
میرسم.

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

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

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

Bank Gateways enum Missing

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

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

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

موفق باشید.

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

RefId & SaleReferenceId

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

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

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

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

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

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

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

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

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

`

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

`

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

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.

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

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

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

ایدی دیتابیس

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

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

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

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

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

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

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

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

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

ایراد در 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

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

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

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

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

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

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

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

مبلغ واریزی

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

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

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

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

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

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

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

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

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

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

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

samanProblem

ایراد در متد 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'.' بهم بر میگردونه که فکر میکنم ناشی از این دو متد باشه

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

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

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

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

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

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

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

برگشت هزینه

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

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

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

خطای رمزنگاری دیتا در هنگام 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 تبدیل کند

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

سلام.

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

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

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.