Skip to content

Commit 7479156

Browse files
authored
Feature/cleanup pasargad gateway (#410)
* cleanup & fixed Pasargad gateway remaining issues
1 parent ac44693 commit 7479156

13 files changed

+195
-170
lines changed

src/Parbad/src/Gateway/Pasargad/Api/IPasargadApi.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,20 +19,23 @@ Task<PasargadGetTokenResponseModel> GetToken(PasargadGetTokenRequestModel model,
1919
CancellationToken cancellationToken);
2020

2121
/// <summary>
22-
/// Send payment request to Pasargad Bank.
22+
/// Sends a payment request to Pasargad Gateway.
2323
/// </summary>
24-
Task<PasargadPurchaseResponseModel> PurchasePayment(PasargadPurchaseRequestModel model, string token,
25-
CancellationToken cancellationToken);
24+
Task<PasargadPurchaseResponseModel> PurchasePayment(PasargadPurchaseRequestModel model,
25+
string token,
26+
CancellationToken cancellationToken);
2627

2728
/// <summary>
2829
/// Verifies a payment.
2930
/// </summary>
30-
Task<PasargadVerifyPaymentResponseModel> VerifyPayment(PasargadVerifyPaymentRequestModel model, string token,
31+
Task<PasargadVerifyPaymentResponseModel> VerifyPayment(PasargadVerifyPaymentRequestModel model,
32+
string token,
3133
CancellationToken cancellationToken);
3234

3335
/// <summary>
3436
/// Refunds an already paid invoice.
3537
/// </summary>
36-
Task<PasargadRefundPaymentResponseModel> RefundPayment(PasargadRefundPaymentRequestModel model, string token,
38+
Task<PasargadRefundPaymentResponseModel> RefundPayment(PasargadRefundPaymentRequestModel model,
39+
string token,
3740
CancellationToken cancellationToken);
3841
}

src/Parbad/src/Gateway/Pasargad/Api/Models/PasargadGetTokenRequestModel.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
// Copyright (c) Parbad. All rights reserved.
22
// Licensed under the GNU GENERAL PUBLIC License, Version 3.0. See License.txt in the project root for license information.
33

4-
using Newtonsoft.Json;
5-
64
namespace Parbad.Gateway.Pasargad.Api.Models;
75

86
public class PasargadGetTokenRequestModel

src/Parbad/src/Gateway/Pasargad/Api/Models/PasargadPurchaseRequestModel.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,3 @@ public class PasargadPurchaseRequestModel
7171
/// </summary>
7272
public string Pans { get; set; }
7373
}
74-

src/Parbad/src/Gateway/Pasargad/Internal/Models/PasargadCallbackResultModel.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ internal class PasargadCallbackResultModel
1313
/// <summary>
1414
/// وضعیت پرداخت
1515
/// </summary>
16-
public PasargadCallbackStatusResult Status { get; set; }
16+
public PasargadCallbackResultStatus Status { get; set; }
1717

1818
/// <summary>
1919
/// شماره ارجاع شاپرکی
@@ -26,7 +26,7 @@ internal class PasargadCallbackResultModel
2626
public string TrackId { get; set; }
2727
}
2828

29-
public enum PasargadCallbackStatusResult
29+
internal enum PasargadCallbackResultStatus
3030
{
3131
/// <summary>
3232
/// پرداخت موفق

src/Parbad/src/Gateway/Pasargad/Internal/PasargadApi.cs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
// Copyright (c) Parbad. All rights reserved.
22
// Licensed under the GNU GENERAL PUBLIC License, Version 3.0. See License.txt in the project root for license information.
33

4-
using Microsoft.Extensions.Options;
5-
using Parbad.Gateway.Pasargad.Api;
6-
using Parbad.Gateway.Pasargad.Api.Models;
7-
using Parbad.Net;
84
using System.Net.Http;
95
using System.Net.Http.Headers;
106
using System.Threading;
117
using System.Threading.Tasks;
8+
using Microsoft.Extensions.Options;
9+
using Parbad.Gateway.Pasargad.Api;
10+
using Parbad.Gateway.Pasargad.Api.Models;
11+
using Parbad.Net;
1212

1313
namespace Parbad.Gateway.Pasargad.Internal;
1414

@@ -30,22 +30,25 @@ public Task<PasargadGetTokenResponseModel> GetToken(PasargadGetTokenRequestModel
3030
return PostJsonAsync<PasargadGetTokenResponseModel>(_options.ApiGetTokenUrl, model, "", cancellationToken);
3131
}
3232

33-
public Task<PasargadPurchaseResponseModel> PurchasePayment(PasargadPurchaseRequestModel model, string token,
34-
CancellationToken cancellationToken)
33+
public Task<PasargadPurchaseResponseModel> PurchasePayment(PasargadPurchaseRequestModel model,
34+
string token,
35+
CancellationToken cancellationToken)
3536
{
3637
return PostJsonAsync<PasargadPurchaseResponseModel>(_options.ApiPurchaseUrl, model, token, cancellationToken);
3738
}
3839

39-
public Task<PasargadVerifyPaymentResponseModel> VerifyPayment(PasargadVerifyPaymentRequestModel model, string token,
40+
public Task<PasargadVerifyPaymentResponseModel> VerifyPayment(PasargadVerifyPaymentRequestModel model,
41+
string token,
4042
CancellationToken cancellationToken)
4143
{
4244
return PostJsonAsync<PasargadVerifyPaymentResponseModel>(_options.ApiVerificationUrl, model, token, cancellationToken);
4345
}
4446

45-
public Task<PasargadRefundPaymentResponseModel> RefundPayment(PasargadRefundPaymentRequestModel model, string token,
47+
public Task<PasargadRefundPaymentResponseModel> RefundPayment(PasargadRefundPaymentRequestModel model,
48+
string token,
4649
CancellationToken cancellationToken)
4750
{
48-
return PostJsonAsync<PasargadRefundPaymentResponseModel>(_options.ApiRefundUrl, model, token, cancellationToken);
51+
return PostJsonAsync<PasargadRefundPaymentResponseModel>(_options.ApiReverseUrl, model, token, cancellationToken);
4952
}
5053

5154
private Task<TResponse> PostJsonAsync<TResponse>(string url,
@@ -63,6 +66,9 @@ private void AddDefaultHeaders(string token)
6366
_httpClient.DefaultRequestHeaders.Accept.Clear();
6467
_httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
6568

66-
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
69+
if (!string.IsNullOrEmpty(token))
70+
{
71+
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token);
72+
}
6773
}
6874
}
Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
// Copyright (c) Parbad. All rights reserved.
22
// Licensed under the GNU GENERAL PUBLIC License, Version 3.0. See License.txt in the project root for license information.
33

4+
using System;
5+
using System.Threading;
6+
using System.Threading.Tasks;
47
using Microsoft.AspNetCore.Http;
58
using Parbad.Gateway.Pasargad.Internal.Models;
69
using Parbad.Http;
710
using Parbad.Internal;
8-
using System;
9-
using System.Threading;
10-
using System.Threading.Tasks;
1111

1212
namespace Parbad.Gateway.Pasargad.Internal;
1313

@@ -22,16 +22,11 @@ public static async Task<PasargadCallbackResultModel> BindCallbackResultModel(Ht
2222
var trackId = await httpRequest.TryGetParamAsync("trackId", cancellationToken).ConfigureAwaitFalse();
2323

2424
return new PasargadCallbackResultModel
25-
{
26-
InvoiceId = invoiceId.Value,
27-
Status = (PasargadCallbackStatusResult)Enum.Parse(typeof(PasargadCallbackStatusResult), status.Value),
28-
ReferenceNumber = referenceNumber.Value,
29-
TrackId = trackId.Value,
30-
};
31-
}
32-
33-
public static string GetTimeStamp()
34-
{
35-
return DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
25+
{
26+
InvoiceId = invoiceId.Value,
27+
Status = (PasargadCallbackResultStatus)Enum.Parse(typeof(PasargadCallbackResultStatus), status.Value),
28+
ReferenceNumber = referenceNumber.Value,
29+
TrackId = trackId.Value,
30+
};
3631
}
3732
}

0 commit comments

Comments
 (0)