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

Easy payment - cards just seems expired in PIA view #7

Closed mortenholmgaard closed 4 years ago

mortenholmgaard commented 4 years ago

When I start a easy payment with a previously saved card it just states that is is expired in the PIA payment UI. I have saved test cards from her: https://shop.nets.eu/web/partners/test-cards I have tried both with the first visa card as expressed below but also with the dankort - both same problem. One think I noticed is that the Visa image in the UI showing expired also shows a masked cardnumber but it is not the cardnummer that is masked - it is the panHashs last 4 digits that is shown!

What is the reason this does not work? It seems to be done just like the docs describe and the sample project. Should I just do a register call directly without showing the UI, but then we might get in to trouble if 3DS is needed later?

val bundle = Bundle()
bundle.putParcelable(PiaActivity.BUNDLE_MERCHANT_INFO, MerchantInfo(Constants.Payment.merchantId(), Constants.Api.IsTest))
bundle.putParcelable(PiaActivity.BUNDLE_ORDER_INFO, OrderInfo(amount, "DKK"))
bundle.putParcelable(PiaActivity.BUNDLE_TOKEN_CARD_INFO, TokenCardInfo("*myPanHash*", SchemeType.VISA, "2112", false))

PiaSDK.getInstance().start(this, bundle) { saveCard ->
    ...
}

Some aditional questions:

@Miss-PiA

Miss-PiA commented 4 years ago

Hi @mortenholmgaard ,

Thank you for reaching out to us. Regarding your concern for the expired card, the expiry format that you have used may be incorrect. The correct format is "MM/YY".

1) How to know if the user click the abort button? -> You will get a RESULT_CANCELED in your Activity method "onActivityResult" by which you will know that the transaction is cancelled using the abort button

2) The save credit card info switch is very poorly styled as it is not really possible to see if it is selected or not. No color change when switched! -> You can customize the colors, please refer to UI customization section of the SDK. Parameters are:

3) If a redirectUrl is not specified a strange dialog after payment will show up with a X in the bottom center but no content - that must be a bug. But when specifying it it will work, but the url doesn't even seem to be called. -> Indeed, we had to keep this has a placeholder, even if no URL is called. It is expected behaviour

4) I am starting to consider to skip using this SDK, because of the things above and that it does not seem like I can put an alert dialog above it, for payment timeout handling. Is there a way to do that? -> Currently the SDK does not allow you to add a custom alert for transaction timeout but you will be notified that the transaction was not successful and you can get the status via a QUERY call.

mortenholmgaard commented 4 years ago

@Miss-PiA One think I forgot getting a answer for is this: "I noticed is that the Visa image in the UI shows a masked cardnumber but it is not the cardnummer that is masked - it is the panHashs last 4 digits that is shown!" Is this not an error in the SDK?

Miss-PiA commented 4 years ago

Hello @mortenholmgaard ,

The number displayed is the masked card number itself. You can try in our the sample app and using the test cards given in the link https://shop.nets.eu/web/partners/test-cards to check the same.

Thank you

mortenholmgaard commented 4 years ago

@Miss-PiA That is not what I see. When I save VISA 4925000000000004 and try to pay with that I get this: payment I expected to see XXX XXXX XXXX 0004 and not XXXX XXXX XXXX TDy=

Miss-PiA commented 4 years ago

Hello @mortenholmgaard ,

From the image you shared it seems that you are not passing the tokenId (the card number) to the SDK. Screenshot1 Screenshot2

mortenholmgaard commented 4 years ago

@Miss-PiA Okay yes that was it

Miss-PiA commented 4 years ago

@mortenholmgaard thank you for confirming that it works now.

mortenholmgaard commented 4 years ago

@Miss-PiA I will add a few further questions here:

Miss-PiA commented 4 years ago

Hello @mortenholmgaard

1) If you have gone through the SampleApp you will get the "Disable card scanner" in the settings screen. The UX for the permission is the default that the Android SDK provides.

2) For the skip confirmation, if you check the sample app implementation you will find the isSkipConfirmationSelected and setSkipConfirmationSelected methods in the PiaInterfaceConfiguration to be used for the "Skip Confirmation" process.

mortenholmgaard commented 4 years ago

Thanks @Miss-PiA. The reason I could not find the isSkipConfirmationSelected was the it was first added in version 1.6.0.

When I refer the the UX about the permission, it was not the dialog it self, missing user info to what it should be used. You should really add an other dialog before it telling why you should giv this permission - the user will not know that it is because they have the option to skip typing in the card number and just scan them. But without that info they will most likely just refuse to give the permission! Also we would want to use it, if it was possible to have an option to start showing the manual type card number view, and then have the option in the top bar to switch to the card scanner. Nowdays people have autofill for credit card numbers in apps as well, so we do not want to show the scanner first. We would like a setting to select the starting view.

Miss-PiA commented 4 years ago

Hello @mortenholmgaard,

The "Skip confirmation" was added in both platforms (Android and iOS) at the same time.

Regarding the UX part, thank you for your suggestions. We can't commit about the implementation right away since we are on some high priority task that we intent to finish first. But we will inform you once we have implemented it.

Thank you

Nets-LAKA-Mobile-SDK commented 4 years ago

Hi @mortenholmgaard We have discussed your UX comments regarding the card scanner with the team today.

We think they are all relevant and would like to share our position: - Permission for using the camera:

Best regards Tim