Skip to content

Commit a772cea

Browse files
committed
Merge branch 'release/3.869.0'
2 parents 777ca65 + 15c63a3 commit a772cea

4 files changed

Lines changed: 27 additions & 2 deletions

File tree

Directory.Build.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<Project>
33
<!-- These properties will be shared for all projects -->
44
<PropertyGroup>
5-
<VersionPrefix>3.868.0</VersionPrefix>
5+
<VersionPrefix>3.869.0</VersionPrefix>
66
<VersionSuffix>
77
</VersionSuffix>
88
<VersionSuffix Condition=" '$(VersionSuffix)' != '' AND '$(BuildNumber)' != '' ">$(VersionSuffix)-$(BuildNumber)</VersionSuffix>

src/VirtoCommerce.OrdersModule.Core/ModuleConstants.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public static class Permissions
2929
public const string CapturePayment = "order:capture_payment";
3030
public const string RefundPayment = "order:refund";
3131
public const string ViewDashboardStatistics = "order:dashboardstatistics:view";
32+
public const string PaymentExecuteCallback = "order:payment:execute_callback";
3233

3334
public static string[] AllPermissions { get; } = {
3435
Read,
@@ -41,6 +42,7 @@ public static class Permissions
4142
CapturePayment,
4243
RefundPayment,
4344
ViewDashboardStatistics,
45+
PaymentExecuteCallback,
4446
};
4547
}
4648
}

src/VirtoCommerce.OrdersModule.Web/Controllers/Api/OrderModuleController.cs

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,7 @@ public async Task<ActionResult<DashboardStatisticsResult>> GetDashboardStatistic
553553
/// <param name="callback">payment callback parameters</param>
554554
[HttpPost]
555555
[Route("~/api/paymentcallback")]
556+
[Authorize(ModuleConstants.Security.Permissions.PaymentExecuteCallback)]
556557
public async Task<ActionResult<PostProcessPaymentRequestResult>> PostProcessPayment([FromBody] PaymentCallbackParameters callback)
557558
{
558559
var parameters = paymentRequestConverter.GetPaymentParameters(callback);
@@ -570,6 +571,7 @@ public async Task<ActionResult<PostProcessPaymentRequestResult>> PostProcessPaym
570571
/// </summary>
571572
[HttpPost]
572573
[Route("~/api/paymentcallback-raw")]
574+
[Authorize(ModuleConstants.Security.Permissions.PaymentExecuteCallback)]
573575
public async Task<ActionResult<PostProcessPaymentRequestResult>> PostProcessPaymentRaw()
574576
{
575577
var parameters = paymentRequestConverter.GetPaymentParameters(await GetRequestBody(), Request.QueryString.Value);
@@ -582,6 +584,27 @@ public async Task<ActionResult<PostProcessPaymentRequestResult>> PostProcessPaym
582584
: BadRequest(response);
583585
}
584586

587+
/// <summary>
588+
/// Payment callback operation used by external payment services to inform post process payment in our system
589+
/// </summary>
590+
[HttpPost]
591+
[Route("~/api/paymentcallback-form")]
592+
[Authorize(ModuleConstants.Security.Permissions.PaymentExecuteCallback)]
593+
public async Task<ActionResult<PostProcessPaymentRequestResult>> PostProcessPaymentForm([FromForm] IFormCollection form)
594+
{
595+
var callbackParameters = new PaymentCallbackParameters()
596+
{
597+
Parameters = form.Select(kvp => new KeyValuePair()
598+
{
599+
Key = kvp.Key,
600+
Value = kvp.Value.FirstOrDefault() ?? string.Empty,
601+
})
602+
.ToArray(),
603+
};
604+
605+
return await PostProcessPayment(callbackParameters);
606+
}
607+
585608
private async Task<string> GetRequestBody()
586609
{
587610
using var reader = new StreamReader(Request.Body, Encoding.UTF8, detectEncodingFromByteOrderMarks: true, 1024, leaveOpen: true);

src/VirtoCommerce.OrdersModule.Web/module.manifest

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<module>
33
<id>VirtoCommerce.Orders</id>
4-
<version>3.868.0</version>
4+
<version>3.869.0</version>
55
<version-tag />
66

77
<platformVersion>3.917.0</platformVersion>

0 commit comments

Comments
 (0)