@@ -9,7 +9,7 @@ namespace GlobalPayments.Api.Entities {
9
9
internal class GpApiAuthorizationRequestBuilder {
10
10
internal static GpApiRequest BuildRequest ( AuthorizationBuilder builder , GpApiConnector gateway ) {
11
11
var paymentMethod = new JsonDoc ( )
12
- . Set ( "entry_mode" , GetEntryMode ( builder ) ) ; // [MOTO, ECOM, IN_APP, CHIP, SWIPE, MANUAL, CONTACTLESS_CHIP, CONTACTLESS_SWIPE]
12
+ . Set ( "entry_mode" , GetEntryMode ( builder , gateway . Channel ) ) ; // [MOTO, ECOM, IN_APP, CHIP, SWIPE, MANUAL, CONTACTLESS_CHIP, CONTACTLESS_SWIPE]
13
13
if ( builder . PaymentMethod is CreditCardData && ( builder . TransactionModifier == TransactionModifier . EncryptedMobile || builder . TransactionModifier == TransactionModifier . DecryptedMobile ) )
14
14
{
15
15
var digitalWallet = new JsonDoc ( ) ;
@@ -100,7 +100,7 @@ internal static GpApiRequest BuildRequest(AuthorizationBuilder builder, GpApiCon
100
100
if ( builder . PaymentMethod is ITokenizable && ! string . IsNullOrEmpty ( ( builder . PaymentMethod as ITokenizable ) . Token ) ) {
101
101
verificationData . Remove ( "payment_method" ) ;
102
102
verificationData . Set ( "payment_method" , new JsonDoc ( )
103
- . Set ( "entry_mode" , GetEntryMode ( builder ) )
103
+ . Set ( "entry_mode" , GetEntryMode ( builder , gateway . Channel ) )
104
104
. Set ( "id" , ( builder . PaymentMethod as ITokenizable ) . Token )
105
105
) ;
106
106
}
@@ -273,6 +273,57 @@ internal static GpApiRequest BuildRequest(AuthorizationBuilder builder, GpApiCon
273
273
} ;
274
274
}
275
275
276
+ private static string GetEntryMode ( AuthorizationBuilder builder , Channel channel )
277
+ {
278
+ if ( channel == Channel . CardPresent )
279
+ {
280
+ if ( builder . PaymentMethod is ITrackData ) {
281
+ var paymentMethod = ( ITrackData ) builder . PaymentMethod ;
282
+ if ( builder . TagData != null )
283
+ {
284
+ if ( paymentMethod . EntryMethod == EntryMethod . Proximity )
285
+ {
286
+ return "CONTACTLESS_CHIP" ;
287
+ }
288
+ return "CHIP" ;
289
+ }
290
+ if ( paymentMethod . EntryMethod == EntryMethod . Swipe )
291
+ {
292
+ return "SWIPE" ;
293
+ }
294
+ }
295
+ if ( builder . PaymentMethod is ICardData && ( ( ICardData ) builder . PaymentMethod ) . CardPresent )
296
+ {
297
+ return "MANUAL" ;
298
+ }
299
+ return "SWIPE" ;
300
+ } else
301
+ {
302
+ if ( builder . PaymentMethod is ICardData )
303
+ {
304
+ var paymentMethod = ( ICardData ) builder . PaymentMethod ;
305
+ if ( paymentMethod . ReaderPresent )
306
+ {
307
+ return "ECOM" ;
308
+ }
309
+ else
310
+ {
311
+ switch ( paymentMethod ? . EntryMethod ) {
312
+ case ManualEntryMethod . Phone :
313
+ return "PHONE" ;
314
+ case ManualEntryMethod . Moto :
315
+ return "MOTO" ;
316
+ case ManualEntryMethod . Mail :
317
+ return "MAIL" ;
318
+ default :
319
+ break ;
320
+ }
321
+ }
322
+ }
323
+ return "ECOM" ;
324
+ }
325
+ }
326
+
276
327
private static string GetEci ( CreditCardData creditCardData )
277
328
{
278
329
@@ -300,27 +351,6 @@ private static string GetEci(CreditCardData creditCardData)
300
351
301
352
}
302
353
303
- private static string GetEntryMode ( AuthorizationBuilder builder ) {
304
- if ( builder . PaymentMethod is ICardData card ) {
305
- if ( card . ReaderPresent ) {
306
- return card . CardPresent ? "MANUAL" : "IN_APP" ;
307
- }
308
- else {
309
- return card . CardPresent ? "MANUAL" : "ECOM" ;
310
- }
311
- }
312
- else if ( builder . PaymentMethod is ITrackData track ) {
313
- if ( builder . TagData != null ) {
314
- return track . EntryMethod . Equals ( EntryMethod . Swipe ) ? "CHIP" : "CONTACTLESS_CHIP" ;
315
- }
316
- else if ( builder . HasEmvFallbackData ) {
317
- return "CONTACTLESS_SWIPE" ;
318
- }
319
- return "SWIPE" ;
320
- }
321
- return "ECOM" ;
322
- }
323
-
324
354
private static string GetCaptureMode ( AuthorizationBuilder builder ) {
325
355
if ( builder . MultiCapture ) {
326
356
return "MULTIPLE" ;
0 commit comments