Skip to content

Commit

Permalink
Feature/3.7.0 (#202)
Browse files Browse the repository at this point in the history
  • Loading branch information
Sina-Soltani authored Apr 10, 2021
1 parent 32d27d6 commit be4fe84
Show file tree
Hide file tree
Showing 147 changed files with 1,874 additions and 1,136 deletions.
37 changes: 29 additions & 8 deletions Parbad.sln
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,24 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "YekPay", "YekPay", "{2A0492
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Parbad.Gateway.YekPay", "src\Parbad.Gateway\YekPay\src\Parbad.Gateway.YekPay.csproj", "{9AAFC4B2-678C-4C80-9F1E-8D97C029E598}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PayPing", "PayPing", "{1D465EDA-62B0-4F4D-A742-FB6C9B35FF4C}"
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Abstractions", "Abstractions", "{523D0310-410D-4E42-9668-4D42636094CB}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Parbad.Gateway.PayPing", "src\Parbad.Gateway\PayPing\src\Parbad.Gateway.PayPing.csproj", "{0D2BD346-EBBE-48CB-B2FA-567BB55378A5}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Parbad.Storage.Abstractions", "src\Parbad.Storage\Abstractions\Parbad.Storage.Abstractions.csproj", "{9B56707D-95BE-4D78-A4B2-511E2636BDF3}"
EndProject
Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Parbad.Shared", "src\Parbad.Shared\Parbad.Shared.shproj", "{2E124FC2-6FA6-45E1-9912-EDCA1C19CEF7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Shared", "Shared", "{3A9942B1-EC71-4A9A-971B-CFE0DEFEF531}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PayPing", "PayPing", "{B87006DA-9F5B-41D7-B23C-184B0ED567D3}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Parbad.Gateway.PayPing", "src\Parbad.Gateway\PayPing\src\Parbad.Gateway.PayPing.csproj", "{85D2588A-2990-4100-BB73-871F253BB7FC}"
EndProject
Global
GlobalSection(SharedMSBuildProjectFiles) = preSolution
src\Parbad.Shared\Parbad.Shared.projitems*{2e124fc2-6fa6-45e1-9912-edca1c19cef7}*SharedItemsImports = 13
src\Parbad.Shared\Parbad.Shared.projitems*{53d0b3cc-2fd4-4113-a368-60715fb8518e}*SharedItemsImports = 5
src\Parbad.Shared\Parbad.Shared.projitems*{9b56707d-95be-4d78-a4b2-511e2636bdf3}*SharedItemsImports = 5
EndGlobalSection
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
Expand Down Expand Up @@ -153,10 +166,14 @@ Global
{9AAFC4B2-678C-4C80-9F1E-8D97C029E598}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9AAFC4B2-678C-4C80-9F1E-8D97C029E598}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9AAFC4B2-678C-4C80-9F1E-8D97C029E598}.Release|Any CPU.Build.0 = Release|Any CPU
{0D2BD346-EBBE-48CB-B2FA-567BB55378A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0D2BD346-EBBE-48CB-B2FA-567BB55378A5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0D2BD346-EBBE-48CB-B2FA-567BB55378A5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{0D2BD346-EBBE-48CB-B2FA-567BB55378A5}.Release|Any CPU.Build.0 = Release|Any CPU
{9B56707D-95BE-4D78-A4B2-511E2636BDF3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{9B56707D-95BE-4D78-A4B2-511E2636BDF3}.Debug|Any CPU.Build.0 = Debug|Any CPU
{9B56707D-95BE-4D78-A4B2-511E2636BDF3}.Release|Any CPU.ActiveCfg = Release|Any CPU
{9B56707D-95BE-4D78-A4B2-511E2636BDF3}.Release|Any CPU.Build.0 = Release|Any CPU
{85D2588A-2990-4100-BB73-871F253BB7FC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{85D2588A-2990-4100-BB73-871F253BB7FC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{85D2588A-2990-4100-BB73-871F253BB7FC}.Release|Any CPU.ActiveCfg = Release|Any CPU
{85D2588A-2990-4100-BB73-871F253BB7FC}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down Expand Up @@ -191,8 +208,12 @@ Global
{3DE7D493-E7DF-4FEA-B589-2A38C19BC6E5} = {1EF96D66-1D9D-4D82-9094-6FE841B22BE2}
{2A049243-9D42-4B34-B6B5-1BB11C65D2B6} = {B1447D20-66E0-46FB-B0DB-BCBEBA7B337A}
{9AAFC4B2-678C-4C80-9F1E-8D97C029E598} = {2A049243-9D42-4B34-B6B5-1BB11C65D2B6}
{1D465EDA-62B0-4F4D-A742-FB6C9B35FF4C} = {B1447D20-66E0-46FB-B0DB-BCBEBA7B337A}
{0D2BD346-EBBE-48CB-B2FA-567BB55378A5} = {1D465EDA-62B0-4F4D-A742-FB6C9B35FF4C}
{523D0310-410D-4E42-9668-4D42636094CB} = {8B821C90-99A7-420E-9A3B-FB9F370C62A0}
{9B56707D-95BE-4D78-A4B2-511E2636BDF3} = {523D0310-410D-4E42-9668-4D42636094CB}
{2E124FC2-6FA6-45E1-9912-EDCA1C19CEF7} = {3A9942B1-EC71-4A9A-971B-CFE0DEFEF531}
{3A9942B1-EC71-4A9A-971B-CFE0DEFEF531} = {571BD034-8370-432B-9B18-4C6FA697121C}
{B87006DA-9F5B-41D7-B23C-184B0ED567D3} = {B1447D20-66E0-46FB-B0DB-BCBEBA7B337A}
{85D2588A-2990-4100-BB73-871F253BB7FC} = {B87006DA-9F5B-41D7-B23C-184B0ED567D3}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CBDDB699-C14A-4235-B0AE-32725230B4ED}
Expand Down
5 changes: 3 additions & 2 deletions src/Parbad.AspNetCore/src/Parbad.AspNetCore.csproj
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<PackageId>Parbad.AspNetCore</PackageId>
<Product>Parbad.AspNetCore</Product>
<VersionPrefix>1.2.0</VersionPrefix>
<TargetFrameworks>netstandard2.0;netstandard2.1;netcoreapp3.0;netcoreapp3.1;net5.0</TargetFrameworks>
<LangVersion>9</LangVersion>
<VersionPrefix>1.1.0</VersionPrefix>
<Authors>Sina Soltani</Authors>
<Copyright>Copyright © Sina Soltani 2016</Copyright>
<PackageProjectUrl>https://github.com/Sina-Soltani/Parbad</PackageProjectUrl>
Expand All @@ -18,7 +20,6 @@ For more information see: https://www.nuget.org/packages/Parbad/</Description>
<PackageTags>parbad aspnetcore Payment Gateway Bank Iran Shetab IranKish Mellat Melli Sadad Parsian Pasargad Saman Asan-Pardakht پرداخت درگاه بانک ایران شتاب ایران-کیش ملت ملی سداد پارسیان پاسارگاد سامان آسان-پرداخت</PackageTags>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<PackageLicenseExpression>LGPL-3.0-or-later</PackageLicenseExpression>
<PackageReleaseNotes>Supporting the netstandard2.1, netcoreapp3.1 and net5.0 is added.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup>
Expand Down
5 changes: 4 additions & 1 deletion src/Parbad.AspNetCore/src/readme.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
---------------------------------------------------
Parbad - Online Payment Library for .NET developers
Parbad.AspNetCore
---------------------------------------------------

Usage: https://github.com/Sina-Soltani/Parbad/wiki/Configuration#aspnet-core


GitHub: https://github.com/Sina-Soltani/Parbad
Tutorials: https://github.com/Sina-Soltani/Parbad/wiki

Expand Down
22 changes: 21 additions & 1 deletion src/Parbad.Gateway/IdPay/src/IdPayGateway.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,26 @@ public override async Task<IPaymentRequestResult> RequestAsync(Invoice invoice,
return await IdPayHelper.CreateRequestResult(responseMessage, _httpContextAccessor.HttpContext, account);
}

/// <inheritdoc />
public override async Task<IPaymentFetchResult> FetchAsync(InvoiceContext context, CancellationToken cancellationToken = default)
{
if (context == null) throw new ArgumentNullException(nameof(context));

var callbackResult = await IdPayHelper.CreateCallbackResultAsync(
context,
_httpContextAccessor.HttpContext.Request,
_messagesOptions,
cancellationToken)
.ConfigureAwaitFalse();

if (callbackResult.IsSucceed)
{
return PaymentFetchResult.ReadyForVerifying();
}

return PaymentFetchResult.Failed(callbackResult.Message);
}

/// <inheritdoc />
public override async Task<IPaymentVerifyResult> VerifyAsync(InvoiceContext context, CancellationToken cancellationToken = default)
{
Expand All @@ -78,7 +98,7 @@ public override async Task<IPaymentVerifyResult> VerifyAsync(InvoiceContext cont

if (!callbackResult.IsSucceed)
{
return callbackResult.Result;
return PaymentVerifyResult.Failed(callbackResult.Message);
}

var account = await GetAccountAsync(context.Payment).ConfigureAwaitFalse();
Expand Down
4 changes: 2 additions & 2 deletions src/Parbad.Gateway/IdPay/src/Internal/IdPayCallbackResult.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ internal class IdPayCallbackResult

public bool IsSucceed { get; set; }

public IPaymentVerifyResult Result { get; set; }
public string Message { get; set; }
}
}
}
21 changes: 7 additions & 14 deletions src/Parbad.Gateway/IdPay/src/Internal/IdPayHelper.cs
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
// Copyright (c) Parbad. All rights reserved.
// Licensed under the GNU GENERAL PUBLIC License, Version 3.0. See License.txt in the project root for license information.

using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
using Parbad.Abstraction;
using Parbad.Internal;
using Parbad.Options;
using Parbad.Http;
using Parbad.Internal;
using Parbad.Net;
using Parbad.Options;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading;
using System.Threading.Tasks;

namespace Parbad.Gateway.IdPay.Internal
{
Expand Down Expand Up @@ -66,18 +66,11 @@ public static async Task<IdPayCallbackResult> CreateCallbackResultAsync(

var (isSucceed, message) = CheckCallback(status.Value, orderId.Value, id.Value, trackId.Value, amount.Value, context, messagesOptions);

IPaymentVerifyResult verifyResult = null;

if (!isSucceed)
{
verifyResult = PaymentVerifyResult.Failed(message);
}

return new IdPayCallbackResult
{
Id = id.Value,
IsSucceed = isSucceed,
Result = verifyResult
Message = message
};
}

Expand Down
4 changes: 2 additions & 2 deletions src/Parbad.Gateway/IdPay/src/Parbad.Gateway.IdPay.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

<PropertyGroup>
<TargetFrameworks>netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0</TargetFrameworks>
<VersionPrefix>1.1.0</VersionPrefix>
<VersionPrefix>1.2.0</VersionPrefix>
<LangVersion>9</LangVersion>
<Authors>Sina Soltani</Authors>
<Copyright>Copyright © Sina Soltani 2016</Copyright>
Expand All @@ -17,11 +17,11 @@
<Description>IDPay.ir Gateway for Parbad project.

For more information see: https://www.nuget.org/packages/Parbad/</Description>
<PackageReleaseNotes>Supporting the netstandard2.1, netcoreapp3.1 and net5.0 is added.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup>
<NoWarn>1701;1702;1591</NoWarn>
<PackageId>Parbad.Gateway.IdPay</PackageId>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
Expand Down
3 changes: 3 additions & 0 deletions src/Parbad.Gateway/IdPay/src/Parbad.Gateway.IdPay.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ internal class PayIrCallbackResult

public bool IsSucceed { get; set; }

public IPaymentVerifyResult Result { get; set; }
public string Message { get; set; }
}
}
15 changes: 6 additions & 9 deletions src/Parbad.Gateway/PayIr/src/Internal/PayIrHelper.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
// Copyright (c) Parbad. All rights reserved.
// Licensed under the GNU GENERAL PUBLIC License, Version 3.0. See License.txt in the project root for license information.

using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Newtonsoft.Json;
using Parbad.Abstraction;
using Parbad.Http;
using Parbad.Internal;
using Parbad.Options;
using System;
using System.Threading;
using System.Threading.Tasks;

namespace Parbad.Gateway.PayIr.Internal
{
Expand Down Expand Up @@ -48,22 +48,19 @@ public static async Task<PayIrCallbackResult> CreateCallbackResultAsync(HttpRequ
var token = await httpRequest.TryGetParamAsync("Token", cancellationToken).ConfigureAwaitFalse();
var status = await httpRequest.TryGetParamAsync("Status", cancellationToken).ConfigureAwaitFalse();

IPaymentVerifyResult verifyResult = null;

var isSucceed = status.Exists && string.Equals(status.Value, OkResult, StringComparison.InvariantCultureIgnoreCase);
string message = null;

if (!isSucceed)
{
var message = $"Error {status}";

verifyResult = PaymentVerifyResult.Failed(message);
message = $"Error {status}";
}

return new PayIrCallbackResult
{
Token = token.Value,
IsSucceed = isSucceed,
Result = verifyResult
Message = message
};
}

Expand Down
5 changes: 3 additions & 2 deletions src/Parbad.Gateway/PayIr/src/Parbad.Gateway.PayIr.csproj
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<PackageId>Parbad.Gateway.PayIr</PackageId>
<Product>Parbad.Gateway.PayIr</Product>
<VersionPrefix>1.3.0</VersionPrefix>
<TargetFrameworks>netstandard2.0;netstandard2.1;netcoreapp3.0;net5.0</TargetFrameworks>
<VersionPrefix>1.2.0</VersionPrefix>
<LangVersion>9</LangVersion>
<Authors>Sina Soltani</Authors>
<Copyright>Copyright © Sina Soltani 2016</Copyright>
Expand All @@ -17,7 +19,6 @@
<Description>Pay.ir Gateway for Parbad project.

For more information see: https://www.nuget.org/packages/Parbad/</Description>
<PackageReleaseNotes>Supporting the netstandard2.1, netcoreapp3.1 and net5.0 is added.</PackageReleaseNotes>
</PropertyGroup>

<PropertyGroup>
Expand Down
3 changes: 3 additions & 0 deletions src/Parbad.Gateway/PayIr/src/Parbad.Gateway.PayIr.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 17 additions & 1 deletion src/Parbad.Gateway/PayIr/src/PayIrGateway.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using PaymentVerifyResult = Parbad.Internal.PaymentVerifyResult;

namespace Parbad.Gateway.PayIr
{
Expand Down Expand Up @@ -63,6 +64,21 @@ public override async Task<IPaymentRequestResult> RequestAsync(Invoice invoice,
return PayIrHelper.CreateRequestResult(response, _httpContextAccessor.HttpContext, account, _gatewayOptions);
}

/// <inheritdoc />
public override async Task<IPaymentFetchResult> FetchAsync(InvoiceContext context, CancellationToken cancellationToken = default)
{
if (context == null) throw new ArgumentNullException(nameof(context));

var callbackResult = await PayIrHelper.CreateCallbackResultAsync(_httpContextAccessor.HttpContext.Request, cancellationToken).ConfigureAwaitFalse();

if (callbackResult.IsSucceed)
{
return PaymentFetchResult.ReadyForVerifying();
}

return PaymentFetchResult.Failed(callbackResult.Message);
}

/// <inheritdoc />
public override async Task<IPaymentVerifyResult> VerifyAsync(InvoiceContext context, CancellationToken cancellationToken = default)
{
Expand All @@ -72,7 +88,7 @@ public override async Task<IPaymentVerifyResult> VerifyAsync(InvoiceContext cont

if (!callbackResult.IsSucceed)
{
return callbackResult.Result;
return PaymentVerifyResult.Failed(callbackResult.Message);
}

var account = await GetAccountAsync(context.Payment).ConfigureAwaitFalse();
Expand Down
14 changes: 14 additions & 0 deletions src/Parbad.Gateway/PayPing/src/Internal/PayPingCallbackResult.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// Copyright (c) Parbad. All rights reserved.
// Licensed under the GNU GENERAL PUBLIC License, Version 3.0. See License.txt in the project root for license information.

namespace Parbad.Gateway.PayPing.Internal
{
internal class PayPingCallbackResult
{
public bool IsSucceed { get; set; }

public string Message { get; set; }

public string RefId { get; set; }
}
}
Loading

0 comments on commit be4fe84

Please sign in to comment.