Nets-mobile-acceptance / Netaxept-Android-SDK

PiA Netaxept Android SDK is a library that provides the native In-App interaction to perform Netaxept payments directly from an app on Android devices while minimizing PCI DSS requirements for you.
31 stars 15 forks source link

Force selection of co/branded card #53

Closed AndreasReiff closed 1 year ago

AndreasReiff commented 2 years ago

When initialising the SDK for card tokenisation(register card to use for Easy Payments) we use:

PiaSDK.startCardProcessActivity( ... PaymentProcess.cardTokenization( ..., setOf(CardScheme.coBrandedDankort), ... )

But the user is never promoted to select the card. The documentation states that we should force the user to select the card used. How do we force the user to select between Dankort and VISA when we have a coBranded Visa/Dankort we want to use for recurring payments(Easy Payments)?

Miss-PiA commented 2 years ago

Payment method list should have separate entry for VISA and Dankort to selected by customer. Merchant needs to give these choices to end users.

// Exclude coBrandedDankort scheme from supported card scheme list. var cardPayment = PaymentProcess.CardPayment( withMerchant: merchantDetails, Set.of(CardScheme.coBrandedDankort), amount: amountInCents, currency: currencyCode, cardPaymentRegistration: CardPaymentRegistration);

By Default, Dankort is used.

AndreasReiff commented 2 years ago

How do we include the separated VISA and Dankort in the Payment method list? Does each card have a destinct panhash from NetAxept?

PaymentProcess.CardPayment is not an EasyPayment is it? PaymentProcess.cardTokenPayment is (as i've understood) an EasyPayment and it is NOT possible to include Set.of(CardScheme.coBrandedDankort) in that type of payment. How do we force it there?

Miss-PiA commented 2 years ago

@AndreasReiff For saved card, card selection is not possible. Panhash is unique for each saved card and it is received from Netaxept.

AndreasReiff commented 2 years ago

@Miss-PiA just to be totally clear.

1) If we use PaymentProcess.CardPayment with Set.of(CardScheme.coBrandedDankort) then the NetAxept SDK will promt the user to select either Dankort or VISA, right?

2) VISA/Dankort saved with PaymentProcess.cardTokenization (with setOf(CardScheme.coBrandedDankort) as parameter) will have a panhash (from NetAxept) for both the Dankort card AND the VISA card, right?

Miss-PiA commented 2 years ago

@AndreasReiff

  1. If we use PaymentProcess.CardPayment with Set.of(CardScheme.coBrandedDankort) then the NetAxept SDK will promt the user to select either Dankort or VISA, right? No.

    • The payment method list is always provided by merchant app. Our SDK will take the payment method/card payment with selected scheme choice to start corresponding payment flow. The user is preselect which scheme the end user wants to use for the transaction and then inform SDK if their choice by exclude dankort or by default using dankort.
  2. VISA/Dankort saved with PaymentProcess.cardTokenization (with setOf(CardScheme.coBrandedDankort) as parameter) will have a panhash (from NetAxept) for both the Dankort card AND the VISA card, right?

    • Netaxept generate the unique Panhash per each save card operation. Only one scheme is mapped to each generated panhash based on end user choice. The chosen scheme will be used to process subsequent transactions.
      • Let’s say, if the cobranded card is saved with dankort scheme, Netaxept will process this panhash as dankort transaction for the subsequent transactions. One card can be saved multiple times with multiple unique panhash to be charged for the future transactions.
      • Merchant need to fetch from Netaxept through Query API call and store & manage the lifetime of panhash in their database.
Miss-PiA commented 1 year ago

Hi, Closing this issue. Please re-open in case of doubt. Thanks