diff --git a/Craftgate/Adapter/PaymentAdapter.cs b/Craftgate/Adapter/PaymentAdapter.cs index 08e3da7..4c6b2fc 100644 --- a/Craftgate/Adapter/PaymentAdapter.cs +++ b/Craftgate/Adapter/PaymentAdapter.cs @@ -572,6 +572,23 @@ public Task RetrieveActiveBanksAsync() CreateHeaders(path, RequestOptions)); } + + public object CreateApplePayMerchantSession( + ApplePayMerchantSessionCreateRequest applePayMerchantSessionCreateRequest) + { + var path = "/payment/v1/apple-pay/merchant-sessions"; + return RestClient.Post(RequestOptions.BaseUrl + path, + CreateHeaders(applePayMerchantSessionCreateRequest, path, RequestOptions), applePayMerchantSessionCreateRequest); + } + + public Task CreateApplePayMerchantSessionAsync( + ApplePayMerchantSessionCreateRequest applePayMerchantSessionCreateRequest) + { + var path = "/payment/v1/apple-pay/merchant-sessions"; + return AsyncRestClient.Post(RequestOptions.BaseUrl + path, + CreateHeaders(applePayMerchantSessionCreateRequest, path, RequestOptions), applePayMerchantSessionCreateRequest); + } + public bool Is3DSecureCallbackVerified(string threeDSecureCallbackKey, Dictionary parameters) { string hash = parameters["hash"]; diff --git a/Craftgate/Model/TokenizedCardType.cs b/Craftgate/Model/TokenizedCardType.cs new file mode 100644 index 0000000..e81c15c --- /dev/null +++ b/Craftgate/Model/TokenizedCardType.cs @@ -0,0 +1,9 @@ +using System.Runtime.Serialization; + +namespace Craftgate.Model +{ + public enum TokenizedCardType + { + [EnumMember(Value = "APPLE_PAY")] APPLE_PAY, + } +} \ No newline at end of file diff --git a/Craftgate/Request/ApplePayMerchantSessionCreateRequest.cs b/Craftgate/Request/ApplePayMerchantSessionCreateRequest.cs new file mode 100644 index 0000000..a0b6b5d --- /dev/null +++ b/Craftgate/Request/ApplePayMerchantSessionCreateRequest.cs @@ -0,0 +1,11 @@ +namespace Craftgate.Request +{ + public class ApplePayMerchantSessionCreateRequest + { + public string MerchantIdentifier { get; set; } + public string DisplayName { get; set; } + public string Initiative { get; set; } + public string InitiativeContext { get; set; } + public string ValidationUrl { get; set; } + } +} \ No newline at end of file diff --git a/Craftgate/Request/Dto/Card.cs b/Craftgate/Request/Dto/Card.cs index 102c7a4..5dbb47c 100644 --- a/Craftgate/Request/Dto/Card.cs +++ b/Craftgate/Request/Dto/Card.cs @@ -17,5 +17,6 @@ public class Card public string LastFourDigits { get; set; } public string CardHolderIdentityNumber { get; set; } public Loyalty Loyalty { get; set; } + public TokenizedCard TokenizedCard { get; set; } } } \ No newline at end of file diff --git a/Craftgate/Request/Dto/TokenizedCard.cs b/Craftgate/Request/Dto/TokenizedCard.cs new file mode 100644 index 0000000..d14fd24 --- /dev/null +++ b/Craftgate/Request/Dto/TokenizedCard.cs @@ -0,0 +1,11 @@ +using System.Collections.Generic; +using Craftgate.Model; + +namespace Craftgate.Request.Dto +{ + public class TokenizedCard + { + public TokenizedCardType? Type { get; set; } + public Dictionary Data { get; set; } + } +} \ No newline at end of file